问题标签 [mergeddictionaries]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 使用具有在不同字典中定义的 Style 的 BasedOn 属性
我正在处理的应用程序有 2 个 ResourceDictionary、DefaultStyles.xaml 和 CustomStyles.xaml。
CustomStyles 字典中的样式是否可能使用其他字典中定义的基本样式?
DefaultStyles.xaml:
CustomStyles.xaml:
应用程序.xaml:
当代码运行时,会抛出以下异常:
找不到具有名称/键 TextBlockDefaultStyle 的资源。
如果两种样式都在同一个文件中,它会很好地工作。
wpf - 来自外部程序集的问题参考转换器
我正在创建一个资源字典,我在其中引用了所有转换器,因此无需引用每个单独的转换器。我的转换器位于不同的程序集中,要导入它们,我执行以下操作:
- 添加对外部程序集的引用
- 创建资源字典
- 添加引用转换器程序集的 xml 命名空间
- 参考转换器
所以我的字典看起来像:
但是,在尝试构建时出现以下异常:
任何想法为什么会这样?
注意:从智能感知看来,转换器程序集的命名空间是正确的,因为所有转换器在键入后都会显示在建议列表中<Converter:
编辑:在渲染控件预览时,VS 和混合设计器都能够找到该转换器。
编辑:我已经弄清楚,这与合并字典无关。将转换器添加到Window 的 Resources时,会出现同样的问题。
wpf - 合并字典和资源查找
我一般对资源字典和合并字典有疑问,尤其是在资源查找性能方面。经过一些性能测试后,我发现 ResourceDictionary.get_MergedDictionaries 是点击次数最多的调用(在 ANTS 分析器中检查)。我们有大约 300 个资源字典 xamls,其中很多都使用合并字典来“包含”其他样式。好吧,get_MergedDictionaries 依赖于我们应用程序的一部分,其中没有发生太多事情,大约有 1000 万次点击。所以我的猜测是我们对资源字典做的完全错误。所以我试图重构一切,我想尝试摆脱所有合并的字典。
现在到实际的问题。我试图摆脱合并的字典,但失败了。我的理解是,当您使用 StaticResource 时,查找需要在当前资源之前定义资源。我做了以下简短的例子:
一个主项目和一个自定义控件库。
自定义控件库包含 2 个 xamls。
现在在主项目中,MainWindow.xaml 看起来像这样
That is the desired goal. but unfortunately this crashes because the resource "myColor" cannot be found. I of course know how to fix it, add a mergeddictionary in Templates.xaml and reference Colors.xaml but i always thought, well i never really checked, that resources are looked up depending on the logical tree and the resources of the element. My understanding is; Button is created; try to lookup template .. found; try to lookup color, not found on own resources, walk up and use the windows resources.
It seems that i'm wrong. So i hope someone can shed some light on this for me. We make heavy use of WPF and despite of this we accomplished a lot with it, but because of some wrong learned behaviour in the beginning, our performance is pretty bad just because of the resource lookup. Any help would be greatly appreciated
Thanks in advance Best regards Nico
wpf - 静态资源查找不适用于合并字典
我已经阅读了一段时间,但我似乎找不到可以帮助我的答案,所以我希望我能在这里有更多的运气。
在我的项目中,我有一个包含许多控件样式的库。这些样式使用资源作为静态资源。所以“资源树”基本上是这样的:
- 主题.xaml
- 大小资源.xaml
- 颜色资源.xaml
- ControlStyles.xaml
- 控件1.xaml
- Control2.xaml
Theme.xaml 合并 SizeResources、ColorResources 和 ControlStyles。ControlStyles 合并特定控件的所有 xamls。
现在在我的应用程序中,我想应用该主题,因此 OnStartup 我将 Theme.xaml 添加到我的 Application.Current.Resources.MergedDictionaries。效果很好,所有的钥匙都在那里。当我现在尝试使用控件时,我得到一个异常,例如找不到大小或颜色资源。具体例子:
我有一个特殊的按钮,它的背景颜色在 ColorResources 中定义,我的 ButtonStyle 将此资源用作静态资源。当我在我的应用程序项目中使用该按钮时,我得到一个异常,即找不到背景资源。当我在 control1.xaml 中将静态资源更改为动态资源时,它就可以工作了。
任何想法为什么我不能用静态资源做到这一点?据我了解,静态也应该起作用。
c# - 从 Silverlight 中的不同 ResourceDictionary 引用 ResourceDictionary 中的资源
我的 App.xaml 中有以下代码集:
NavigationPanel.xaml包含如下所示的样式:
{StaticResource DarkBackground}在Brushes.xaml文件(即第一个资源字典)中定义。它被定义为
在资源字典中。
在运行时,我收到以下错误:
行号和位置引用 app.xaml 中的NavigationPanel.xaml资源字典。
我可以从其他控件引用画笔,而不是包含的资源字典。
为什么我不能引用或为什么不能解析对合并资源字典层次结构中更高资源的引用?我在这里想念什么?
windows-phone-7 - WP7 Mango ResouceDictionary MergedDictionaries
我在 WP7 Mango 中遇到 ResourceDictionary 的问题。
我在互联网上能找到的大部分内容都很简单:
1) 带有正文的 Xaml 文件:
2) 添加到 App.xaml 如下:
不知道为什么它不起作用。当这样做时,我得到异常:
'ResourceDictionary' 类型位于 ResourceDictionary 内部,并且没有键。
当我在步骤 2 中将 ked 添加到第二个 xaml 行时,它会运行,但会因未指定的错误而崩溃。看起来它没有从 MyResources.xaml 文件中添加资源。
有人可以在这里指出解决方案吗?
wpf - 将资源合并到 app.xaml 中?
面向 .NET Framework 4.0。
我有一个 UserControl ( usercontrol.xaml
),其中包含一些我希望可以从应用程序的资源 ( app.xaml
) 中访问的资源。(我的 UserControl 被实例化了MainWindow.xaml
。)
到目前为止,我已经在 app.xaml 中尝试过:
但 Visual Studio 对此抱怨: 查找资源字典“usercontrol.xaml”时出错。
问:如何将 UserControl 的资源添加到应用程序中,以便在运行时执行此操作:
c# - XAML 资源处理慢慢让我发疯
我正在使用松散的 XAML(构建操作无,但始终复制到输出目录)。我还有一个“根”xaml,它是一个资源字典,它引用了一些位于子文件夹中的合并字典。这是我的文件夹结构:
我需要能够在不重新编译的情况下将其他 xaml 文件添加到文件夹中,这就是我需要使用松散 xamls 的原因。
在应用程序中,我加载了根 xaml,但总是得到无法找到合并字典的异常。我尝试了很多不同的变体来分配相对路径作为源。其中一些包括:
令我惊讶(和持续的恐惧)他们都没有奏效。
我开始质疑我的理智,所以我什至编写了一个小型测试应用程序来为我生成相对路径,使用 URI:
正如预期的那样,生成的相对路径是 SubFolder1/MergedDict1.xaml,也不起作用。谁能教我获得正确相对路径所涉及的黑魔法?
.net - 无法在 app.xaml 中找到 MergedDictionaries
我创建了一个 WPF 应用程序(名为“Ferhad.Wpf”)。然后我在解决方案中添加了两个名为“Ferhad.Wpf.Core”和“Ferhad.Wpf.SystemStyles”的类库。
“Ferhad.Wpf.Core”中只有“Resources.xaml”。
但是“Ferhad.Wpf.SystemStyles”中也有“ButtonStyles.xaml”和“Styles.xaml”。这是“ButtonStyles.xaml”:
和“Styles.xaml”:
这里是 app.xaml:
在 MainWindow.xaml 的设计时一切似乎都很好,但是在运行应用程序时会引发异常:Set property 'System.Windows.ResourceDictionary.Source' threw an exception.
我已经用谷歌搜索了它,但没有任何帮助。我曾尝试更改文件的 BuildAction,但这也无济于事。
更新:
例外是行号“8”和行位置“18”。
内部的例外是:{"Could not load file or assembly 'Ferhad.Wpf.SystemStyles, Culture=neutral' or one of its dependencies. The system cannot find the file specified.":"Ferhad.Wpf.SystemStyles, Culture=neutral"}
xaml - winrt xaml 合并资源
我需要将应用程序样式分成几个 xaml 文件。但我还需要定义一些共享值,例如
在单个文件中用于在其他文件中定义的样式中使用此值。例如:
在另一个资源字典文件中:
但是当我尝试在 App.xaml 文件中定义合并的资源字典时
我得到这个运行时异常:“消息 =”找不到具有名称/键 SharedValue 的资源”
你能告诉我这样做是否可行以及我做错了什么?谢谢。