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

WPF中DataGrid内Label绑定文件名时下划线消失问题求助

WPF DataGrid Label绑定文件名丢失下划线问题

问题描述

在WPF项目的DataGrid中,通过DataGridTemplateColumn配置列展示FileName字段,使用Label绑定该字段同时设置ToolTip也绑定同一字段。代码如下:

<DataGridTemplateColumn Header="{Binding Data.ImageNameStrings, Source={StaticResource proxy}}" Width="50" MinWidth="48">
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <Label Content="{Binding FileName}">
                <Label.ToolTip>
                    <TextBlock Text="{Binding FileName}" Padding="6,2" Background="White" Foreground="#353535" FontSize="14"/>
                </Label.ToolTip>
            </Label>
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

实际运行时,Label中的下划线会异常消失:单个下划线直接丢失,两个下划线只保留一个,但ToolTip中的TextBlock显示完全正常。

原因分析

WPF的Label控件默认会将内容中的下划线识别为**访问键(Access Key)**的标记——单个下划线会被当作快捷键的前缀(比如_File会显示为File且F下方有下划线,按Alt+F触发),所以纯下划线或多余的下划线会被自动处理;而TextBlock没有访问键解析逻辑,会原封不动显示所有字符。

解决方案

方案1:用TextBlock替代Label

如果不需要Label的访问键功能,直接改用TextBlock是最简单的方式:

<DataGridTemplateColumn Header="{Binding Data.ImageNameStrings, Source={StaticResource proxy}}" Width="50" MinWidth="48">
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding FileName}">
                <TextBlock.ToolTip>
                    <TextBlock Text="{Binding FileName}" Padding="6,2" Background="White" Foreground="#353535" FontSize="14"/>
                </TextBlock.ToolTip>
            </TextBlock>
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

方案2:保留Label并禁用访问键解析

如果必须使用Label,可以通过以下两种方式强制字符串原样显示:

方式A:设置ContentStringFormat

<Label Content="{Binding FileName}" ContentStringFormat="{}{0}"/>

这里{}{0}的第一个空括号是为了避免WPF把格式字符串开头的{识别为绑定标记。

方式B:显式使用AccessText并关闭ShowAccessKey

<Label>
    <AccessText Text="{Binding FileName}" ShowAccessKey="False"/>
    <Label.ToolTip>
        <TextBlock Text="{Binding FileName}" Padding="6,2" Background="White" Foreground="#353535" FontSize="14"/>
    </Label.ToolTip>
</Label>

内容的提问来源于stack exchange,提问作者Ricky Chen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 04:15:42