【问题标题】:I just need a simple WPF ToolTip Style that displays multiple lines我只需要一个显示多行的简单 WPF 工具提示样式
【发布时间】:2012-06-18 21:13:08
【问题描述】:

由于所有关于花式、超级、巨大和等等、等等、等等、工具提示的噪音,我找不到答案。

我只需要一个简单的 style 来设置TextWrapping="Wrap" 并允许我设置宽度。

一个复制现有/默认样式,但只是自动换行。

【问题讨论】:

    标签: wpf styles tooltip


    【解决方案1】:
    <Window.Resources>
        <Style TargetType="{x:Type ToolTip}">
            <Setter Property="ContentTemplate">
                <Setter.Value>
                    <DataTemplate>
                        <TextBlock TextWrapping="Wrap" Text="{Binding}" />
                    </DataTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </Window.Resources>
    <Grid>
        <Rectangle Width="100" Height="100" Fill="Red">
            <Rectangle.ToolTip>
                <ToolTip Width="100">
                    This is some text with text wrapping.
                </ToolTip>
            </Rectangle.ToolTip>
        </Rectangle>
    </Grid>
    

    此示例假设您希望能够根据使用情况设置宽度。如果要将其设置为样式的一部分,请将其添加到 TextBlock 元素中。

    【讨论】:

    • 导致工具提示显示“System.Windows.Controls.ContentControl: for the DevExpress PivotGrid.
    【解决方案2】:

    此样式可防止在空字符串上弹出工具提示。

    <Style TargetType="ToolTip">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="ToolTip">
                    <TextBlock Text="{TemplateBinding Content}"
                               MaxWidth="400"
                               TextWrapping="Wrap"/>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
        <Style.Triggers>
            <Trigger Property="Content" Value="">
                <Setter Property="Visibility" Value="Collapsed" />
            </Trigger>
        </Style.Triggers>
    </Style>
    

    或使用 ContentTemplate:

    <Style TargetType="{x:Type ToolTip}">
        <Setter Property="ContentTemplate">
            <Setter.Value>
                <DataTemplate>
                    <StackPanel>
                        <TextBlock Text="{Binding}"
                                   MaxWidth="400"
                                   TextWrapping='Wrap' />
                    </StackPanel>
                </DataTemplate>
            </Setter.Value>
        </Setter>
        <Style.Triggers>
            <Trigger Property="Content" Value="">
                <Setter Property="Visibility" Value="Collapsed" />
            </Trigger>
        </Style.Triggers>
    </Style>
    

    【讨论】:

      【解决方案3】:

      如果您只想获得以下效果,请阅读this post。

      【讨论】:

        猜你喜欢
        • 2010-11-10
        • 1970-01-01
        • 2021-06-23
        • 1970-01-01
        • 1970-01-01
        • 2011-05-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多