【问题标题】:Show ToolTip (with custom style) of TextBlock Text显示 TextBlock 文本的 ToolTip(带有自定义样式)
【发布时间】:2016-07-04 12:08:57
【问题描述】:

我遇到了以下问题。我有一个带有 DataGridTemplateColumn 的 DataGrid,我想用弹出窗口显示单元格的文本(因为它可以被修剪)。

这是我的 xaml 代码:

                    <DataGridTemplateColumn>
                        <DataGridTemplateColumn.CellTemplate>
                            <DataTemplate>
                                <TextBlock 
                                    Text="{Binding Description}" 
                                    TextTrimming="CharacterEllipsis">
                                    <TextBlock.ToolTip>
                                        <ToolTip Style="{StaticResource ToolTipBrowserDescription}" ToolTip="test"/>
                                    </TextBlock.ToolTip>
                                </TextBlock>
                            </DataTemplate>
                        </DataGridTemplateColumn.CellTemplate>
                    </DataGridTemplateColumn>

风格:

<Style TargetType="{x:Type ToolTip}" x:Key="ToolTipBrowserDescription">
    <Setter Property="DataContext" Value="{Binding RelativeSource={x:Static RelativeSource.Self}}"/>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type ToolTip}">
                <Border BorderBrush="{StaticResource HT_Background_DarkGrey}" Background="{StaticResource HT_Background_LightGrey3}" BorderThickness="1">
                    <TextBlock Text="{Binding ToolTip}" FontWeight="Bold" TextWrapping="Wrap" Margin="5" MinWidth="50" MaxWidth="{TemplateBinding MaxWidth}"/>
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

但是当我将 ToolTip 属性从“test”设置为“{Binding Description}”时,ToolTip(如图所示)为空。

有没有人可以帮我解决。我被困了大约 2 小时..

【问题讨论】:

    标签: c# .net wpf xaml


    【解决方案1】:

    这应该可以解决问题。

    工具提示样式:

    <Style x:Key="ToolTipBrowserDescription"
           TargetType="{x:Type ToolTip}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type ToolTip}">
                    <Border BorderBrush="{StaticResource HT_Background_DarkGrey}" 
                            Background="{StaticResource HT_Background_LightGrey3}"
                            BorderThickness="1">
                        <TextBlock Text="{TemplateBinding Content}"
                                   FontWeight="Bold"
                                   TextWrapping="Wrap"
                                   Margin="5"
                                   MinWidth="50"
                                   MaxWidth="{TemplateBinding MaxWidth}" />
                    </Border>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
    

    文本块:

    <TextBlock Text="{Binding Description}">
        <TextBlock.Style>
            <Style TargetType="{x:Type TextBlock}">
                <Setter Property="ToolTip">
                    <Setter.Value>
                        <ToolTip Style="{StaticResource ToolTipBrowserDescription}"
                                 Content="{Binding Description}"/>
                    </Setter.Value>
                </Setter>
            </Style>
        </TextBlock.Style>
    </TextBlock>
    

    您应该模板绑定到内容,而不是 ToolTipToolTip

    【讨论】:

    • 非常感谢。你救了我的一天!我一直忽略 content 属性。所以我认为这是我的错 ;o) 但我仍然感兴趣,如果我的解决方案有可能/解决方案有效。
    猜你喜欢
    • 1970-01-01
    • 2021-07-25
    • 2020-12-30
    • 2020-09-02
    • 1970-01-01
    • 2016-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多