我想创建一个 WPF 工具提示,其中包含工具提示标题的标签,然后创建一个包含更详细文本的文本块。我在资源字典中创建了以下样式:
<Style x:Key="AppToolTip"
TargetType="ToolTip">
<Setter Property="OverridesDefaultStyle" Value="true" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ToolTip">
<StackPanel>
<Label Content="{TemplateBinding Content}" FontWeight="Bold" Background="Blue" Foreground="White">
</Label>
<TextBlock Padding="10" TextWrapping="WrapWithOverflow" Width="200">
</TextBlock>
</StackPanel>
</ControlTemplate>
</Setter.Value></Setter>
</Style>
并且可以成功地将这种样式应用到像这样的按钮并显示工具提示标题:
<Button.ToolTip>
<ToolTip Style="{DynamicResource PalletToolTip}">
<Binding Source="{x:Static ResStrings.New}"/>
</ToolTip>
</Button.ToolTip>
我所困扰的是如何根据上面的用法设置额外描述性文本的内容?显示工具提示标题时,我已经将数据绑定到 Content 属性。
任何读过 Adam Nathan 的 WPF Unleashed 书的人都会认识到我正在使用他的示例工具提示 XAML,但在他的例子中,他使用了硬编码字符串来表示标签和文本块的内容。我想创建一些更可重用的东西,因此想使用数据绑定来达到相同的效果。
我会继承一个HeaderedToolTip
班级来自ToolTip
并添加一个Header
财产。我会像您所做的那样指定该控件的模板。然后我就可以像这样使用它:
<Button>
<Button.ToolTip>
<HeaderedToolTip Header="My Title" Content="My Content"/>
</Button.ToolTip>
</Button>
或者,使用绑定:
<Button>
<Button.ToolTip>
<HeaderedToolTip Header="{Binding ToolTipTitle}" Content="{Binding ToolTipText}"/>
</Button.ToolTip>
</Button>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)