我在我的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'?
谁能看到我在这里做错了什么?感谢