You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改TreeView控件中行数据的字体样式?

修改TreeView行数据字体样式的方法

当然可以修改TreeView行数据的字体样式,不同框架下的实现方式有所不同,以下是主流平台的具体操作:

WinForms

  • 借助自定义绘制实现,步骤如下:
    1. 把TreeView控件的DrawMode属性设为TreeViewDrawMode.OwnerDrawText或TreeViewDrawMode.OwnerDrawAll
    2. 订阅DrawNode事件,在事件处理方法中指定行数据的字体样式:
    private void treeView1_DrawNode(object sender, DrawTreeNodeEventArgs e)
    {
        // 自定义行字体:Arial、10号、加粗
        Font customFont = new Font("Arial", 10, FontStyle.Bold);
        // 绘制节点文本
        e.Graphics.DrawString(e.Node.Text, customFont, Brushes.Black, e.Bounds);
        // 保留默认图标绘制(如果需要)
        if (e.Node.ImageIndex != -1)
        {
            e.DrawDefault = true;
        }
    }
    

WPF

  • 直接通过XAML的模板或样式设置,两种常用方式:
    1. 自定义ItemTemplate:
    <TreeView>
        <TreeView.ItemTemplate>
            <HierarchicalDataTemplate>
                <TextBlock Text="{Binding}" 
                           FontFamily="Segoe UI" 
                           FontSize="12" 
                           FontWeight="Bold"/>
            </HierarchicalDataTemplate>
        </TreeView.ItemTemplate>
    </TreeView>
    
    1. 全局Style统一设置:
    <TreeView>
        <TreeView.Resources>
            <Style TargetType="TreeViewItem">
                <Setter Property="FontFamily" Value="Arial"/>
                <Setter Property="FontSize" Value="11"/>
                <Setter Property="FontStyle" Value="Italic"/>
            </Style>
        </TreeView.Resources>
    </TreeView>
    

ASP.NET Web Forms

  • 可通过声明式设置或后台代码动态修改:
    1. 声明式设置NodeStyle:
    <asp:TreeView ID="TreeView1" runat="server">
        <NodeStyle Font-Names="Verdana" Font-Size="10pt" Font-Bold="true"/>
    </asp:TreeView>
    
    1. 后台代码动态设置(含子节点递归处理):
    protected void TreeView1_DataBound(object sender, EventArgs e)
    {
        foreach (TreeNode node in TreeView1.Nodes)
        {
            SetNodeFontStyle(node);
        }
    }
    
    private void SetNodeFontStyle(TreeNode node)
    {
        node.NodeStyle.Font.Bold = true;
        node.NodeStyle.Font.Size = FontUnit.Point(10);
        // 递归处理所有子节点
        foreach (TreeNode childNode in node.ChildNodes)
        {
            SetNodeFontStyle(childNode);
        }
    }
    

内容的提问来源于stack exchange,提问作者Varsha Kumaraguru

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 08:56:07