首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPF ResourceDictionary和DynamicResource

WPF ResourceDictionary和DynamicResource
EN

Stack Overflow用户
提问于 2011-12-14 06:50:58
回答 3查看 8.6K关注 0票数 2

我是WPF的新手,所以这可能是“菜鸟”的问题,但我找不到答案(这似乎很容易)…

嗯,我正在编写WPF应用程序,我想使用smth类似于css的网页,所以我找到了ResourceDictionary,并尝试使用它…

我有一个主窗口,我在这个窗口中创建了一个框架,单击一下就会将一些样式加载到相同的框架中。我将我的样式( ResourceDictionary / UserControl /Styles.xaml)包含到我的主窗口,如下所示:

代码语言:javascript
复制
<Window.Resources>
    <ResourceDictionary x:Key="styles" Source="style/Styles.xaml" />
</Window.Resources>  

其中我有:

代码语言:javascript
复制
<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上使用它,它被加载到主窗口中,我尝试这样使用它:

代码语言:javascript
复制
<Label Name="product1" Style="{DynamicResource ProductsRequired}"  />

我一直收到的警告是:无法解析资源"ProductsRequired“。

我甚至试着在我的UserControl中加入样式

代码语言:javascript
复制
<UserControl.Resources>
  <ResourceDictionary x:Key="styles" Source="../style/Styles.xaml" />
</UserControl.Resources>

什么都没发生。

我的问题很长,但我想说清楚...:)

另外,所有这些逻辑都在C#代码btw中工作

代码语言:javascript
复制
private ResourceDictionary myStyles = new ResourceDictionary();
Style ProductsRequired = myStyles["ProductsRequired"] as Style;
product1.Style = ProductsRequired;
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-12-14 06:54:48

这样做不行,当您需要将资源字典添加到资源中时,您可以将其添加为资源,不能像这样访问它。您需要将其添加到MergedDictionaries中(有关使用示例,请参阅MSDN!)。

票数 1
EN

Stack Overflow用户

发布于 2012-06-30 11:09:43

您引用的是正确的程序集吗?例如:

代码语言:javascript
复制
<Page.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="/SecurityManagerResources;component/DictionarySecurityResources.xaml"   />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Page.Resources>
票数 1
EN

Stack Overflow用户

发布于 2011-12-14 18:36:04

你需要这样做

代码语言:javascript
复制
<UserControl.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="style/Styles.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</UserControl.Resources>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8497373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档