【问题标题】:How do I Add a Tooltip To a DataGridTextColumn如何将工具提示添加到 DataGridTextColumn
【发布时间】:2010-11-12 22:51:17
【问题描述】:

我正在使用 WPFtoolkit DataGrid ,我必须将文本包装在 DataGridTextColumn 或 我必须在文本列中添加ToolTip。我已经搜索了网络,但我无法找到合适的解决方案。期待您的宝贵建议...

【问题讨论】:

    标签: wpf datagrid tooltip datagridtextcolumn


    【解决方案1】:

    我不确定您是否可以将工具提示添加到 DataGridTextColumn,但您可以轻松地改用 DataGridTemplateColumnToolTipService。例如

    <data:DataGrid.Columns>
        <data:DataGridTemplateColumn Header="Broker">
            <data:DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding Moniker.Abbreviation}"
                               ToolTipService.ToolTip="{Binding Moniker.Name}" />
                </DataTemplate>
            </data:DataGridTemplateColumn.CellTemplate>
        </data:DataGridTemplateColumn>
    </data:DataGrid.Columns>
    

    在此示例中,Moniker.Abbreviation 显示在列中。当用户将鼠标悬停在单元格上时,完整的代理名称 (Moniker.Name) 会显示在工具提示中。

    注意:此示例取自 Silverlight 3.0 应用程序。

    【讨论】:

    • 这也适用于 Silverlight,从谷歌搜索的前 3 名中获得。当然,如果您的代码与最新的 SL xaml 模板匹配,请将 xml ns 更改为 'sdk:' 而不是 'data:'。
    • 虽然我不使用 Silverlight,但这是唯一对我有用的答案。最受欢迎的答案导致我的应用程序出现异常。
    【解决方案2】:

    是的,您可以将工具提示文本添加到 DataGridTextColumn - 只需对其进行样式化

    <DataGridTextColumn Header="ScreenName" Binding="{Binding ScreenName}" >
        <DataGridTextColumn.CellStyle>
            <Style TargetType="DataGridCell">
                <Setter Property="ToolTip" Value="{Binding Name}" />
            </Style>
        </DataGridTextColumn.CellStyle>
    </DataGridTextColumn>
    

    【讨论】:

    • 对于 Silverlight 上的任何人,请参阅 @MarkGladdling's answer
    • 仅供参考,我为此苦苦挣扎了一段时间,直到我意识到如果数据网格工具提示上的“IsHitTestVisible”设置为 FALSE 将不起作用。
    • 在使用这种方法时,您能否以某种方式添加图像和/或编辑工具提示的背景?
    猜你喜欢
    • 2021-12-13
    • 2014-11-23
    • 2020-08-31
    • 2011-06-17
    • 2019-02-02
    • 2011-06-06
    • 1970-01-01
    • 2019-01-04
    • 2020-07-18
    相关资源
    最近更新 更多