是的,您可以在C#中使用WinForms或WPF中的TreeNode
来自定义样式。以下是两个平台上的示例:
WinForms:
在WinForms中,您可以通过设置TreeNode
的BackColor
、ForeColor
、Font
等属性来自定义样式。例如:
TreeNode node = new TreeNode("Custom Node");
node.BackColor = Color.Red;
node.ForeColor = Color.White;
node.Font = new Font("Arial", 12);
如果您想要为所有TreeNode
设置相同的样式,可以重写TreeView
的DrawNode
方法:
public class CustomTreeView : TreeView
{
protected override void DrawNode(DrawTreeNodeEventArgs e)
{
if (e.Node == null) return;
e.Graphics.FillRectangle(Brushes.LightGray, e.Bounds);
e.Graphics.FillRectangle(Brushes.White, e.Bounds.Left, e.Bounds.Top, e.Bounds.Width - 1, e.Bounds.Height - 1);
e.Graphics.DrawString(e.Node.Text, this.Font, Brushes.Black, e.Bounds.Left, e.Bounds.Top);
}
}
WPF:
在WPF中,您可以使用Style
和Template
来自定义TreeNode
的样式。首先,在Resources
中定义一个Style
:
<Window.Resources>
<Style TargetType="TreeViewItem">
<Setter Property="Background" Value="LightGray"/>
<Setter Property="Foreground" Value="Black"/>
<Setter Property="FontFamily" Value="Arial"/>
<Setter Property="FontSize" Value="12"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TreeViewItem">
<Grid>
<Rectangle x:Name="Border" SnapsToDevicePixels="True" Stroke="Black" StrokeThickness="1" Fill="White"/>
<ContentPresenter x:Name="PART_SelectedContentItem" HorizontalAlignment="Left" VerticalAlignment="Center" ContentSource="Header" Margin="3,3,23,3"/>
<TextBlock x:Name="PART_Collapsed" Visibility="Hidden" HorizontalAlignment="Center" VerticalAlignment="Center" Text="M" Margin="3,3,23,3"/>
<ItemsPresenter x:Name="ItemsHost" HorizontalAlignment="Left" VerticalAlignment="Stretch"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsExpanded" Value="False">
<Setter TargetName="PART_Collapsed" Value="Visible"/>
<Setter TargetName="ItemsHost" Value="Visibility=Hidden"/>
</Trigger>
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="Border" Value="Black"/>
<Setter TargetName="PART_SelectedContentItem" Value="Foreground=White"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
然后,在TreeView
中使用这个Style
:
<TreeView Style="{StaticResource CustomTreeViewItemStyle}">
<TreeViewItem Header="Custom Node"/>
</TreeView>
这样,您就可以根据需要自定义TreeNode
的样式了。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读:c#控件能自定义样式吗