问题标签 [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.

0 投票
3 回答
12258 浏览

silverlight - 在 Silverlight 3 的 generic.xaml 中使用 MergedDictionaries

在 WPF 中,可以通过将标记保存在主题文件夹中的单独 XAML 文件中,然后使用 MergedDictionaries 将它们导入 generic.xaml 来为多个用户控件组织 XAML:

随着 Silverlight 3 beta 的推出,引入了合并字典支持,似乎可以对 Silverlight 用户控件进行相同的操作。但是,尽管尝试了对合并字典文件的构建操作的所有组合以及 generic.xaml 中源引用的相应语法,但我似乎无法使其正常工作。

有没有其他人尝试过?有谁知道这是否可能,如果可以,我做错了什么?


好的 - 所以经过大量的测试项目,在 WPF 中获取工作示例并将 XAML 和 C# 代码移至 Silverlight 3 并且仍然失败,我完全卸载并重新安装了所有 Silverlight 2 位和所有 Silverlight 3 beta 位和终于搞定了。

我只能假设我以某种方式最终安装了错误的测试版 - 我不知道,但似乎我仍在 Silverlight 2 运行时中运行,尽管显然安装了版本 3 运行时。

感谢 Jared 查看并与 SL3 团队核对……感谢Amy DullardShawn Wildermuth为在同一台机器上运行 Silverlight 2 和 3 生成了说明和批处理文件。

0 投票
1 回答
13678 浏览

wpf - WPF:样式基于单独程序集中的另一个样式

程序集 A - ResourceDictionary 包含 StyleA 样式。
程序集 B - ResourceDictionary.MergedDictionaries 将程序集 A 中的资源合并到 B 中。

我想在“基于”StyleA 的程序集 B 中创建一个样式。是否可以?

我正在尝试创建这种风格:

但是如果我使用 StyleB,我会在运行时收到 XamlParseException 异常:

无法将属性“Style”中的值转换为“System.Windows.Style”类型的对象。只能基于目标类型为“IFrameworkInputElement”的样式。标记文件“SamSeekApp;component/mainwindow.xaml”中的对象“System.Windows.Controls.Button”出错

0 投票
1 回答
650 浏览

silverlight-3.0 - Silverlight 3 RTM 中损坏的外部合并字典?

我只想在引用的程序集中引用资源字典。

程序集名称:ResourceTest.Content

资源字典路径:./Dictionary2.xaml

这适用于 SL3 Beta 1:

<ResourceDictionary Source="ResourceTest.Content;component/Dictionary2.xaml" />

我在 Blend 3+Sketchflow 中尝试了这个,这很有效(在设计时):

<ResourceDictionary Source="pack://application:,,,/ResourceTest.Content;component/Dictionary2.xaml" />

但是,无论哪种方式,当我从 Visual Studio 运行时,都会出现以下错误:

属性 ResourceTest.Content;component/Dictionary2.xaml 值超出范围。[行:10 位置:44]

属性 pack://application:,,,/ResourceTest.Content;component/Dictionary2.xaml 值超出范围。[行:11 位置:44]

0 投票
3 回答
166 浏览

wpf - wpf中的奇怪风格行为?

好的,我正在编写一个在运行时加载合并字典的应用程序,以便在我卡住时改变外观和行为:我的表单上的一些控件只是没有对我认为它们必须做出反应的样式做出反应。

我试图尽可能地简化问题,并想出了一些如此简单的东西,我担心我忽略了明显的流血,但无论如何它是这样的:

问题是:为什么第一个文本框不是绿色的?==> 也就是设计器显示为绿色,但是运行app的时候就不再...

我知道解决这个特定问题的方法是删除合并的词典标签,但我需要知道如何使用合并词典来解决这个问题。

谢谢!

0 投票
1 回答
294 浏览

wpf - 如何在运行时加载 MergedResources?我的代码没有按预期工作

我有一个桌面 WPF 应用程序,它从 Web 加载它的资源,这使我们能够做不同的事情,比如......如果我们愿意,可以在假期前后添加一个圣诞主题。要加载主题,我只需将应用程序当前资源字典替换为我们自己的资源字典,就像这样。

好吧,我们到了我想将一些资源分成不同文件的地步,而不是只使用一个包含所有内容的大资源文件。我认为这将是相当简单的只是使用合并的资源。我认为对上面的代码进行简单的修改就可以使它工作,但事实证明它没有。这是我期望我必须做的。

当应用程序运行时,它只是使用普通样式,并没有考虑到我添加的合并资源。我在这里做错了什么?我如何能够在运行时动态添加合并的资源(和多个)并让它们正常工作?

谢谢,凯尔

0 投票
1 回答
1983 浏览

c# - 在加载 Silverlight 应用程序时替换合并的资源字典

我在我的顶级控件的 XAML 中作为 MergedDictionary 加载的 ResourceDictionary 中定义了一组样式和画笔:

如果 XAP 中存在具有其自己的 ResourceDictionary 的不同 XAML 文件,我将尝试选择性地替换其中一些样式和画笔。在我的用户控件上调用 InitializeComponent() 之前,我试图在运行时合并到这个字典中。我正在使用以下代码尝试执行此操作:

可选文件中的资源字典已加载并合并,但是我的原始样式集似乎总是覆盖它。如果我在 XAML 中注释掉合并的字典并在运行时简单地加载它们以使其完美运行:

我对这个解决方案的问题是,如果没有 XAML 中的默认样式,我无法在 Blend 中打开项目。任何人都对一种解决方案有任何想法,可以让 Blend 知道我的默认样式,但允许我在运行时使用动态加载的资源字典选择性地覆盖它们?谢谢!

0 投票
1 回答
58 浏览

wpf - Unable to attach multiple styles in Visual Studio 2008

Helo!

I create in my project a folder named 'Templates'. In this folder I store all my DataTemplates declared in various ResourceDictionary files.
I am attaching it (so it becomes a StaticResource and I can use it everywhere in the

I have many templates, and in some of theme I want to use another template, e.g. in the OrderTemplate I need to use the ContactTemplate and vice versa.
The problem is that Visual Studio 2008 (Yes, it works in run-time, and Expression Studio doesn't notify a problem) reports errors about these templates and doesn't want to show the designer (it does compile tho).
VS loads the templates in the order as they're merged in the App.xaml file, for example, in the OrderTemplate I may use ContactTemplate but not vice versa. I tried mergin the OrderTemplate individually in the ContactTemplate but then after I do so in various templates, it becomes circular and I get a SO exception.

Any experience to share? I need design-time support.
Thanks

0 投票
2 回答
10151 浏览

wpf - 如何引用在另一个库的单独程序集中定义的 WPF 样式键

我有两个库和一个应用程序程序集项目布局,我想知道如何通过它们在另一个库中定义的库中的键来引用样式。

我的解决方案布局:

  • WpfControls.dll - 包含通用的可重用控件,例如基于 WPF 的 NumericUpDown 控件以及其他基本控件和一些我希望使其可重用的样式。为了这个例子,假设我的样式键在这里定义为MyButtonStyle
  • SpecializedControls.dll - 保存专门用于我们的应用程序的控件,例如 WPF 中的自定义复合控件和 UserControl。这是我想引用WpfControls.dll 程序集中定义的MyButtonStyle样式的地方。
  • Application.exe - 此程序集使用在 SpecializedControls.dll 程序集中定义的控件。

我已经看到一些示例解释了如何使用简单的单个控件库和应用程序程序集来做到这一点,但在我的情况下,我有两个程序集和一个应用程序。所以换句话说,在我的情况下,我的第二个控件库中没有 App.xaml,我可以在其中使用 MergeDictionaries 概念。我很确定如果我想我可以将 MergedDictionaries 引用直接放在每个控件 XAML 文件中以合并 WpfControls.dll 程序集中定义的所有 Generic.xaml 但我的猜测是这会导致样式被冗余合并到各个地方在我的 SpecializedControls 程序集中,这似乎不是最好的解决方案。更糟糕的是,这些字典也可能被合并到 Application.exe 中,这是否会在运行时开始使我的应用程序膨胀?

任何人都可以澄清以最少的程序和资源开销共享此类样式的推荐或最佳方法吗?

更新:经过更多测试后,即使在同一个程序集中,我似乎也无法通过它的键来引用 Generic.xaml 中定义的任何资源。我如何理解资源密钥的工作方式可能完全错误,因此我必须进行更多研究并研究 ComponentResourceKey。如果有人有任何提示或建议,请提供帮助。

0 投票
2 回答
2841 浏览

silverlight - 在 Silverlight 3 中正确使用合并的资源字典

正如我所读到的:http: //msdn.microsoft.com/en-us/library/cc903952 (VS.95).aspx ,特别是标记为“使用 ResourceDictionary 转发引用”的部分:

来自任何给定资源字典中的静态资源引用必须引用在资源引用之前已经在词法上定义的资源。静态资源引用无法解析前向引用。因此,如果您使用静态资源引用,则必须设计资源字典结构,以便在每个相应资源字典的开头或附近定义用于进一步按资源使用的资源。

这是否意味着我不能在我的 App.xaml 中做这样的事情:

其中 Brushes.xaml 包含 SolidColorBrush、LinearColorBrush 等,这些定义引用了 Colors.xaml 中定义的颜色?

例如

?

我在 Colors.xaml 中定义我的颜色,例如:

例如,我收到一个运行时错误,指出它找不到键为“AppOrangeRed”的资源。

组织颜色和画笔的最佳实践是什么,以便它们可以重复使用(在适当的情况下,我知道颜色是结构,画笔是参考对象,在http://weblogs.manas.com.ar/spalladino/2009/中有解释03/02/silverlight-xaml-guidelines/ )

谢谢罗伯

0 投票
4 回答
2719 浏览

silverlight - Silverlight 共享合并字典

我正在使用 Silverlight 4 并尝试分享一些常见的样式(颜色、画笔)。我的做法是将它们放入“Common.xaml”资源字典,然后在所有其他资源字典中使用它。像这样引用所有内容:

问题是,我在 InitializeComponent 上收到一个异常,指出找不到常用样式(找不到具有名称/键的资源......)

我必须在我使用它的每个资源字典中明确引用“Common.xaml”......这基本上会导致“Common.xaml”中存在的每种颜色、画笔、模板和诸如此类的多个实例。

没有任何方法可以共享资源,因此只能在 Silverlight 中实例化一次吗?