如何为用户控件设置工具提示(从样式文件)

时间:2010-08-22 09:45:17

标签: wpf controls tooltip styles

我创建了我的控件,看起来像

<UserControl BorderBrush="#A9C2DE" HorizontalAlignment="Left" x:Class="WPFDiagramDesignerControl.Components.UcWBSBlock"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Height="86" Width="151" >

<UserControl.Resources>
    <ResourceDictionary Source="Tooltip.xaml"/>
</UserControl.Resources>
    <Grid x:Name="MainGrid">

    <TextBox Name="txtBox"  Style="{StaticResource DefaultStyle}" >
    </TextBox>

</Grid>

我还有一个工具提示样式的文件“Tooltip.xaml” 如何将此样式用于整个UserControl? 通常我用这个代码做了这个

<TextBox ToolTip="{StaticResource tooltipname}"/>

但是这很简单,因为带有样式的文件在放置文本框的控制的资源字典中。但是我不能那样做

 <UserControl BorderBrush="#A9C2DE" HorizontalAlignment="Left" ToolTip="{StaticResource tooltipname"}/>

因为在这一点上我的风格还不是资源专家。 我试图使用这种语法

<UserControl.ToolTip>  </UserControl.ToolTip>

但我不知道如何引用静态资源

也许这是一个蹩脚的问题,但我只是不知道怎么做:)

1 个答案:

答案 0 :(得分:1)

一种选择是使用DynamicResource而不是StaticResource将查找推迟到运行时,然后使用属性语法:

<UserControl ... ToolTip="{DynamicResource tooltipname}" ...

您还可以使用元素语法编写StaticResourceExtension,以便您可以在参考资料部分之后编写它:

<UserControl.Resources>
    <ResourceDictionary Source="Tooltip.xaml"/>
</UserControl.Resources>
<UserControl.ToolTip>
    <StaticResourceExtension ResourceKey="tooltipname"/>
</UserControl.ToolTip>