gpt4 book ai didi

Silverlight 4 - 在另一个 ResourceDictionary 中使用 StaticResource

转载 作者:行者123 更新时间:2023-12-04 11:59:49 25 4
gpt4 key购买 nike

如果我有这些词典:

dict1.xaml:<Color x:Key="Color1">Red</Color>
dict2.xaml:<SolidColorBrush x:Key="Brush1" Color={StaticResource Color1} />
这个作品:

应用程序.xaml:

<MergedDictionaries>
<ResourceDictionary Source="dict1.xaml"/>
<MergedDictionaries>

SomePage.xaml:
<UserControl.Resources>
<MergedDictionaries>
<ResourceDictionary Source="dict2.xaml"/>
</MergedDictionaries>
</UserControl.Resources>

这不是:

App.xaml 在应用程序级别合并。

我收到有关未找到 Color1 的错误消息。

为什么是这样 ?/有办法解决吗?我知道这个例子很简单,但真正的例子太长了。基本上我只是想在不同的文件中组织我的样式和模板:
  • 一种颜色
  • 一种隐式风格
  • 许多显式样式

  • 编辑:奇怪的是,如果我在 Application_Startup 上的代码中执行此操作, 在设置 RootVisual 之前属性(property),我没有得到错误......我只是不知道为什么!

    最佳答案

    不幸的是,您在 Silverlight 资源系统中遇到了令人讨厌的限制,我只能想象这是一些优化问题。这里似乎有一些异步行为,其中 MergedDictionaries 中的每个字典是并行加载的,因此在加载“dict2.xaml”时,您不能依赖“dict1.xaml”的内容存在。

    最简单的解决方案是将 Dict1 合并到 Dict2 中:-

    应用程序.xaml:

    <ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="dict2.xaml" />
    <ResourceDictionary.MergedDictionaries>

    字典2.xaml:
    <ResourceDictionary>
    <ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="dict1.xaml" />
    </ResourceDictionary.MergedDictionaries>
    .... <!-- dict2 resource -->
    </ResourceDictionary>

    关于Silverlight 4 - 在另一个 ResourceDictionary 中使用 StaticResource,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5755282/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com