如何将HTML文本添加到工具提示WPF中

问题描述 投票:-1回答:1

我有一个像"<B>Objective</B> &cl To validate requirement"这样的字符串

如何在工具提示中以HTML格式显示此内容

c# wpf wpf-controls
1个回答
0
投票

我一直想在一些应用程序中自己做,并认为我已经掌握了。

首先,您需要一个可以显示HTML的控件。 WebBrowser对于工具提示绝对是太多了,因此我进行了一些挖掘,发现HtmlRenderer.WPF nuget中包含的HtmlLabel。它非常轻巧,背景透明,自从我将其与Material Design Toolkit一起使用以来,这非常好。

您可以在此处找到HtmlRenderer.WPF nuget:https://www.nuget.org/packages/HtmlRenderer.WPF或使用以下命令获取它:Install-Package HtmlRenderer.WPF -Version 1.5.0.6

其次,您可能想在多个地方使用此HTML工具提示。重用它的最简单方法(我认为)是制作样式。像这样:

<Window
    x:Class="HtmlRendererTest.Wpf.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:htmlControls="clr-namespace:TheArtOfDev.HtmlRenderer.WPF;assembly=HtmlRenderer.WPF"
    xmlns:local="clr-namespace:HtmlRendererTest.Wpf"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    Title="MainWindow"
    Width="800"
    Height="450"
    Background="#292929"
    mc:Ignorable="d">

    <Window.Resources>
        <Style TargetType="ToolTip">
            <Setter Property="ContentTemplate">
                <Setter.Value>
                    <DataTemplate>
                        <htmlControls:HtmlLabel Text="{TemplateBinding Content}" />
                    </DataTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </Window.Resources>

    <Grid>
        <Button
            Padding="10"
            HorizontalAlignment="Center"
            VerticalAlignment="Center"
            Content="Hover over me"
            ToolTip="{Binding HtmlTooltip}" />
    </Grid>

</Window>

此样式替换了显示工具提示的默认控件,并改为使用HtmlLabel进行显示。

就是这样!您现在可以将工具提示绑定到HTML文本。

这里是演示:https://github.com/michaldivis/HtmlRendererTest

干杯,米哈尔。

© www.soinside.com 2019 - 2024. All rights reserved.