如何为每个节点使treeView不可选(不突出),但可以检查C#中的复选框?

时间:2014-04-04 05:43:57

标签: c# wpf checkbox treeview

C#中的表单上有一个treeView。它的checkBox属性为true,用户可以检查每个节点的复选框。当用户单击某个节点时,它将被选中,我想禁用此属性。我的意思是用户只需检查复选框,当他/她点击节点时就不能选中它。我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

通过defult就是这样,用户无法选择Node但只能通过双击扩展。可以选中复选框

 <TreeView.ItemTemplate>
    <HierarchicalDataTemplate ItemsSource="{Binding Children}">
      <CheckBox x:Name="cbTree" IsChecked="{Binding Checked}" Checked="" Loaded="">
        <TextBlock x:Name="txtTree" Text="{Binding Name}"></TextBlock>
      </CheckBox>
    </HierarchicalDataTemplate>
  </TreeView.ItemTemplate>

你想让它不被聚焦(突出显示)吗?

然后添加此

 <TreeView Name="MyTreeview" ..... >

   <TreeView.Resources>
                            <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}"
                  Color="Transparent" />
                            <SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}"
                  Color="Black" />
                            <SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}"
                  Color="Transparent" />
                            <SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightTextBrushKey}"
                  Color="Black" />
                        </TreeView.Resources>
 </TreeView>

答案 1 :(得分:-1)

我找到的最简单方法是:

private void treeView1_BeforeSelect(object sender, TreeViewCancelEventArgs e)
{
    e.Cancel = true;
}

在TreeView的BeforeSelelect事件中,我们必须使Cancel属性为真。