样式TreeView标题。设置标题不可选

时间:2018-04-13 15:05:28

标签: c# header treeview styles

我怎样才能只设置树视图的标题? 我想让标题无法选择。

类似的东西:

 <TreeViewHeaderStyle>
        <Setter Property="Focusable"  Value="false">
 </TreeViewHeaderStyle>

谢谢:)

1 个答案:

答案 0 :(得分:3)

在Window或Control的资源中设置TreeViewItem的样式。

 <Window.Resources>
    <Style TargetType="TreeViewItem">
       <Setter Property="IsEnabled" Value="False"/>
    </Style>
 </Window.Resources>

编辑:

如果你仍然需要通过三角形扩展,但想要一个禁用的标题,解决方案有点脏。许多解决方案都显示了HeaderedItemsControl的复杂重新设置,您可以搜索该问题,或者只是向每个Label添加TreeViewItem并处理鼠标按下事件。在下面的示例中,我在网格中包含了一个Label,以便我可以根据需要设置标签的样式。单击Grid时,将处理事件以防止扩展。如果您只设置Label内容,则只需将MouseDown事件添加到Label并弃用Grid

 <TreeViewItem>
     <TreeViewItem.Header>
         <Grid MouseDown="Grid_MouseDown">
             <Label Content="TEST" IsEnabled="False" />
         </Grid>
     </TreeViewItem.Header>
     <Button Content="Random SubItem"/>
 </TreeViewItem>

背后的代码:

private void Grid_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
    e.Handled = true;
}