我有两个库和一个单一的应用程序集项目布局,我想知道如何通过其键引用其中一个库中定义的样式来实现我的另一个库。
我的解决方案布局: - WpfControls.dll - 包含通用可重用控件,例如基于WPF的NumericUpDown控件以及其他基本控件和一些样式,我希望这些样式可以重复使用。 - SpecializedControls.dll- 包含专门针对我们应用程序的控件,例如自定义复合控件和WPF中的UserControls。在这里我想引用WpfControls.dll程序集中定义的MyButtonStyle样式。 - Application.exe - 此程序集使用SpecializedControls.dll程序集中定义的控件。
我看过一些例子,说明如何在简单的单个控件库和应用程序集中实现此操作,但在我的情况下,我有两个库和一个应用程序。因此,在我的情况下,我的第二个控件库中没有App.xaml,我可以在其中使用MergeDictionaries概念。我相当确定如果我愿意,我可以在每个控件的XAML文件中直接放置MergedDictionaries引用,以将WpfControls.dll程序集中定义的Generic.xaml合并成一个,但我的猜测是,这将导致样式被多余地合并到SpecializedControls程序集的各个位置,这似乎不是最佳解决方案。更糟糕的是,这些字典也可能合并到Application.exe中,这会开始膨胀我的应用程序在运行时吗?
有人可以澄清使用最少量的编程和资源开销共享此类样式的推荐或最佳方法吗?
更新:经过更多测试,似乎我无法通过其键引用在Generic.xaml中定义的任何资源,即使在同一程序集中也是如此。关于我如何理解资源键是否有完全错误的地方,因此我将需要进行更多的研究,并查看ComponentResourceKey。如果有任何提示或建议,请帮忙。
我的解决方案布局: - WpfControls.dll - 包含通用可重用控件,例如基于WPF的NumericUpDown控件以及其他基本控件和一些样式,我希望这些样式可以重复使用。 - SpecializedControls.dll- 包含专门针对我们应用程序的控件,例如自定义复合控件和WPF中的UserControls。在这里我想引用WpfControls.dll程序集中定义的MyButtonStyle样式。 - Application.exe - 此程序集使用SpecializedControls.dll程序集中定义的控件。
我看过一些例子,说明如何在简单的单个控件库和应用程序集中实现此操作,但在我的情况下,我有两个库和一个应用程序。因此,在我的情况下,我的第二个控件库中没有App.xaml,我可以在其中使用MergeDictionaries概念。我相当确定如果我愿意,我可以在每个控件的XAML文件中直接放置MergedDictionaries引用,以将WpfControls.dll程序集中定义的Generic.xaml合并成一个,但我的猜测是,这将导致样式被多余地合并到SpecializedControls程序集的各个位置,这似乎不是最佳解决方案。更糟糕的是,这些字典也可能合并到Application.exe中,这会开始膨胀我的应用程序在运行时吗?
有人可以澄清使用最少量的编程和资源开销共享此类样式的推荐或最佳方法吗?
更新:经过更多测试,似乎我无法通过其键引用在Generic.xaml中定义的任何资源,即使在同一程序集中也是如此。关于我如何理解资源键是否有完全错误的地方,因此我将需要进行更多的研究,并查看ComponentResourceKey。如果有任何提示或建议,请帮忙。