我是WPF的新手,所以这可能是“菜鸟”的问题,但我找不到答案(这似乎很容易)…
嗯,我正在编写WPF应用程序,我想使用smth类似于css的网页,所以我找到了ResourceDictionary,并尝试使用它…
我有一个主窗口,我在这个窗口中创建了一个框架,单击一下就会将一些样式加载到相同的框架中。我将我的样式( ResourceDictionary / UserControl /Styles.xaml)包含到我的主窗口,如下所示:
<Window.Resources>
<ResourceDictionary x:Key="styles" Source="style/Styles.xaml" />
</Window.Resources> 其中我有:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style x:Key="ProductsRequired" TargetType="{x:Type Label}">
<Setter Property="Height" Value="28" />
...我不在我的主窗口上使用它,但我想在我的UserControls上使用它,它被加载到主窗口中,我尝试这样使用它:
<Label Name="product1" Style="{DynamicResource ProductsRequired}" />我一直收到的警告是:无法解析资源"ProductsRequired“。
我甚至试着在我的UserControl中加入样式
<UserControl.Resources>
<ResourceDictionary x:Key="styles" Source="../style/Styles.xaml" />
</UserControl.Resources>什么都没发生。
我的问题很长,但我想说清楚...:)
另外,所有这些逻辑都在C#代码btw中工作
private ResourceDictionary myStyles = new ResourceDictionary();
Style ProductsRequired = myStyles["ProductsRequired"] as Style;
product1.Style = ProductsRequired;发布于 2011-12-14 06:54:48
这样做不行,当您需要将资源字典添加到资源中时,您可以将其添加为资源,不能像这样访问它。您需要将其添加到MergedDictionaries中(有关使用示例,请参阅MSDN!)。
发布于 2012-06-30 11:09:43
您引用的是正确的程序集吗?例如:
<Page.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/SecurityManagerResources;component/DictionarySecurityResources.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Page.Resources>发布于 2011-12-14 18:36:04
你需要这样做
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="style/Styles.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>https://stackoverflow.com/questions/8497373
复制相似问题