c# - 样式 TreeView 标题。设置标题不可选择

标签 c# header treeview styles

如何仅设置 TreeView 标题的样式? 我想让标题变得不可选择。

类似于:

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

谢谢:)

最佳答案

在窗口或控件的资源中设置 TreeViewItem 的样式。

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

编辑:

如果您仍然需要通过三角形展开,但想要禁用标题,则解决方案有点脏。许多解决方案都显示了 HeaderedItemsControl 的复杂重新设计,您可以搜索它,或者简单地向每个 TreeViewItem 添加一个 Label 并处理鼠标按下事件。在下面的示例中,我将 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;
}

关于c# - 样式 TreeView 标题。设置标题不可选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49820050/

相关文章:

c# - 在 ASP.NET 中记录错误的最佳做法是什么?

c# - 无法从 WCF 数据服务返回自定义类

c# - 在 WPF TreeView 中分组数据

python - ttk TreeView : alternate row colors

wpf - 单击鼠标后如何停止 TreeView 折叠事件

c# - 中继器内的语音气泡

c# - 如何用值填充特定的 DataTable 列

php - 从浏览器中删除发送到服务器的 header

matlab - 将带有标题的矩阵转换为 .txt 文件

c - 包含头文件时的 undefined reference