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

Silverlight 4 – 在另一个ResourceDictionary中使用StaticResource,第1张

概述如果我有这些词典: dict1.xaml: <颜色x:键=“颜色1”>红色< /颜色> dict2.xaml: < SolidColorBrush x:Key =“Brush1”Color = {StaticResource Color1} /> 这有效: App.xaml中: <MergedDictionaries> <ResourceDictionary Source="dict1.xam 如果我有这些词典:

dict1.xaml:
<颜色x:键=“颜色1”>红色< /颜色>

dict2.xaml:
< SolIDcolorBrush x:Key =“Brush1”color = {StaticResource color1} />

这有效:

App.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属性之前,我没有收到错误…我只是为什么感到困惑!

解决方法 不幸的是,你在Silverlight资源系统中遇到了一个烦人的限制,我只能想象这是一些优化问题.这里似乎有一些异步行为,其中MergedDictionarIEs中的每个字典都是并行加载的,因此当加载“dict2.xaml”时,你不能依赖于存在的“dict1.xaml”内容.

最简单的解决方案是在Dict2中包含Dict1的合并: –

App.xaml中:

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

Dict2.xaml:

<ResourceDictionary>    <ResourceDictionary.MergedDictionarIEs>        <ResourceDictionary Source="dict1.xaml" />    </ResourceDictionary.MergedDictionarIEs>    .... <!-- dict2 resource --></ResourceDictionary>
总结

以上是内存溢出为你收集整理的Silverlight 4 – 在另一个ResourceDictionary中使用StaticResource全部内容,希望文章能够帮你解决Silverlight 4 – 在另一个ResourceDictionary中使用StaticResource所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1002758.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存