【发布时间】:2019-12-01 09:59:27
【问题描述】:
我有一个类似"<B>Objective</B> &cl To validate requirement"的字符串
如何在工具提示中以 HTML 格式显示它
【问题讨论】:
标签: c# wpf wpf-controls
我有一个类似"<B>Objective</B> &cl To validate requirement"的字符串
如何在工具提示中以 HTML 格式显示它
【问题讨论】:
标签: c# wpf wpf-controls
我一直想在一些应用中自己做这件事,并认为我已经做到了。
首先,您需要一个可以显示 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
干杯,迈克尔。
【讨论】: