ResourceDictionary中定义的样式引用同一ResourceDictionary中的模板

时间:2015-11-08 15:41:04

标签: wpf xaml

我在我的WPF应用程序中创建了一个ResourceDictionary,如下所示:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                xmlns:local="clr-namespace:WpfRibbonApplication1"
                xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                xmlns:sys="clr-namespace:System;assembly=mscorlib"
                xmlns:vsm="http://schemas.microsoft.com/netfx/2007/xaml/presentation" >
</ResourceDictionary>

在这个资源字典里面,我为自定义文本框控件定义了一个样式,如下所示:

<Style TargetType="{x:Type local:SimpleSwingTextBox}" x:Key="SimpleSwingTextBoxStyle">
</style>

在样式中有一个工具提示:

<ToolTip x:Name="validationTooltip" Template="{StaticResource ValidationToolTipTemplate}">
</Tooltip>

同样在同一个ResourceDictionary中,我在样式中引用了上面引用的模板:

<ControlTemplate x:Key="ValidationToolTipTemplate">
</ControlTemplate>

然后在我的C#代码中,我创建了一个自定义文本框控件的实例,并将其样式设置为资源字典中定义的样式:

SimpleSwingTextBox textBox = new SimpleSwingTextBox(textPoint);

Uri resourceLocator = new Uri("Assets/SimpleSwingResourceDictionary.xaml", System.UriKind.Relative);
ResourceDictionary rd = (ResourceDictionary)Application.LoadComponent(resourceLocator);
textBox.Style = rd["SimpleSwingTextBoxStyle"] as Style;

我遇到的问题是立即抛出异常,其中包含以下消息:

“找不到名为'ValidationToolTipTemplate'的资源。资源名称区分大小写。”

我不明白我创建的样式如何在同一个ResourceDictionary xaml文件中找不到'ValidationToolTipTemplate'?

谁能看到我在这里做错了什么?感谢

0 个答案:

没有答案