我在ResourceDictionary中有以下内容:
<Style x:Key="BasicStyle" TargetType="ContentControl">
<Setter Property="Width" Value="100" />
<Setter Property="Height" Value="30" />
</Style>
<Style x:Key="ButtonStyle" TargetType="Button" BasedOn="{StaticResource BasicStyle}">
<Setter Property="BorderBrush" Value="Orange" />
<Setter Property="BorderThickness" Value="2" />
<Setter Property="Foreground" Value="Orange" />
</Style>
然后我尝试在MainPage.xaml中使用按钮样式,如下所示:
...但在运行时我得到,“无法找到名称/键ButtonStyle的资源”
我是否必须正式将MainPage.xaml引入ResourceDictionary?
是否必须在MainPage或App.xaml中引用ResourceDirectionary,或者...... ???
那么App.xaml中的Application.Resources的正确XML是什么?
使用下面robertos的想法,在将资源字典添加到我的项目并命名为“GlobalStylesResourceDictionary.xaml”之后,我将其添加到App.xaml:
<ResourceDictionary>
<ResourceDictionary Source="GlobalStylesResourceDictionary.xaml" />
</ResourceDictionary>
...所以我的整个App.xaml是:
<Application x:Class="Photrax.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:Photrax">
<Application.Resources>
<ai:TelemetryContext x:Key="ApplicationInsightsBootstrapper" xmlns:ai="using:Microsoft.ApplicationInsights"/>
<ResourceDictionary>
<ResourceDictionary Source="GlobalStylesResourceDictionary.xaml" />
</ResourceDictionary>
</Application.Resources>
</Application>
然而,有了这个,我得到“每个字典条目必须有一个关联的密钥。”
然而,这直接来自微软(robertos从他引用的ms页面中获取了他在下面显示的XAML)。那有什么问题?
答案 0 :(得分:1)
您必须使用以下内容在MainPage.xaml或App.xaml中引用ResourceDictionary:
<Application.Resources>
<ResourceDictionary>
<!--other resources can be here-->
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="rd1.xaml" />
<ResourceDictionary Source="rd2.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
更多信息:MSDN reference