【问题标题】:WPF Treeview - Weird UI issue on child clickWPF Treeview - 子点击时出现奇怪的 UI 问题
【发布时间】:2010-12-07 02:01:59
【问题描述】:

我有一个树视图,其中每个项目使用一个 DataTemplate 和 2 个 HierarchicalDataTemplates 复选框(我的绑定列表由 2 或 3 个级别组成,复选框仅出现在叶级别 - 最后一个)。

叶子是这样的:

<TreeView ItemsSource="{Binding}">
<DataTemplate DataType="{x:Type local:MatchDataLeaf}">
    <Grid Margin="3">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="240"/>
            <ColumnDefinition Width="100"/>
            <ColumnDefinition Width="150"/>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="60"/>
        </Grid.ColumnDefinitions>

        <StackPanel Grid.Column="0" Orientation="Horizontal">
            <CheckBox x:Name="selectCheckBtn" Grid.Column="0" IsChecked="True" Click="select_Click"
                      Tag="{Binding}" CommandParameter="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type TreeViewItem}}}"/>
            <TextBlock Grid.Column="1" Margin="5,0,0,0" Text="{Binding Path=Name}" FontFamily="Arial" FontSize="12" FontWeight="Bold" Foreground="Black" VerticalAlignment="Center"/>
        </StackPanel>
    </Grid>
</DataTemplate>

当我单击叶子项目的 TextBlock 部分之一时会出现我的问题 - 如果我单击复选框,一切正常。当我单击该项目时,整个树向左移动,隐藏了 + 展开按钮,我无法将其取回。它有点将复选框对齐到容器的左侧,从而隐藏了它上方和左侧的所有内容。

我意识到这是一个奇怪的 UI 问题,我怀疑有人以前见过这个问题。所以让我问这个问题:有没有办法以某种方式禁止该点击?如果我单击项目的那部分,我可以告诉 WPF 什么都不做吗?我尝试在 Textblock 的 MouseLeftButtonUp 处理程序上将 Handled 设置为 true,但这对我没有任何用处。

欢迎任何其他建议 - 我不知道如何处理这个问题。

【问题讨论】:

    标签: wpf treeview


    【解决方案1】:

    尝试将整个 TreeView 放入 ScrollViewer 对我来说听起来内容太大以适应可用区域:

    <ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto">
            <TreeView ..../>
    </ScrollViewer>
    

    【讨论】:

    • 添加滚动查看器对我没有帮助 - 但你是对的 - 我只是将所有宽度/高度设置为自动并扩展了整个窗口,它就在那里 - 谢谢。
    • 顺便说一句,有没有办法将项目的选定状态更改为无?我知道我可以使用 Trigger 来改变选中状态的样式,但是我怎么让它完全不选中呢?
    • 感谢您标记答案!我不确定您所说的“项目的选定状态为 NOTHING”是什么意思,无论如何发布另一个问题会更好,因为它是一个不同的主题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-08
    • 1970-01-01
    • 1970-01-01
    • 2010-10-16
    • 1970-01-01
    相关资源
    最近更新 更多