为了账号安全,请及时绑定邮箱和手机立即绑定

我可以避免将 TreeViewItem 的内容放在 WPF 窗口的左上角吗?

我可以避免将 TreeViewItem 的内容放在 WPF 窗口的左上角吗?

C#
UYOU 2022-07-23 17:43:39
我有一个 WPF 窗口,它在 TreeView 中有一些 ListView。每当 TreeViewItem 的内容变得太高和/或太宽时,只要我单击 TreeViewItem“内部”的空闲点,内容就会被放置在窗口的左上角(见图)。是否有任何可能性/财产可以避免这种情况?我想把滚动到哪里的选择留给用户,并且不想在他不小心点击某个地方时打断他的阅读。简化示例:    Title="MainWindow" Height="150" Width="400"><TreeView>    <TreeViewItem Header="Some Headline" IsExpanded="True">        <TreeViewItem Header="Some Text" IsExpanded="True">            <TextBlock Width="400" Height="150" Background="PaleGreen"> Some Text in a Block</TextBlock>        </TreeViewItem>    </TreeViewItem> </TreeView>
查看完整描述

1 回答

?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

这个怎么样?


<TreeView>

        <TreeView.Resources>

            <Style TargetType="TreeViewItem">

                <EventSetter Event="RequestBringIntoView" Handler="TreeViewItem_RequestBringIntoView"/>

            </Style>

        </TreeView.Resources>

        <TreeViewItem Header="Some Headline" IsExpanded="True">

            <TreeViewItem Header="Some Text" IsExpanded="True">

                <TextBlock Width="400" Height="150" Background="PaleGreen"> Some Text in a Block</TextBlock>

            </TreeViewItem>

        </TreeViewItem>

    </TreeView>

后面的代码:


private void TreeViewItem_RequestBringIntoView(object sender, RequestBringIntoViewEventArgs e)

        {

            e.Handled = true;

        }


查看完整回答
反对 回复 2022-07-23
  • 1 回答
  • 0 关注
  • 71 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信