【问题标题】:Custom control Lib with multiple controls and generic.xaml具有多个控件和 generic.xaml 的自定义控件库
【发布时间】:2011-01-18 19:54:02
【问题描述】:

如果我在一个自定义控件库中为两个不同的控件定义了两种默认样式,我会得到错误...

是否可以在一个库中包含两个或多个带有默认 generic.xaml 的控件?

谢谢

【问题讨论】:

  • 请发布(大量)更多信息。此外,如果您投票并为您提出的其他问题选择适当的答案,您更有可能得到答案。

标签: wpf controls


【解决方案1】:

是的,这是可能的。推荐的方法是将每个控件的样式放在其自己的资源字典中,并拥有一个引用其他控件的 Generic.xaml 文件。

例如,如果您的库中有两个控件:MyControl1 和 MyControl2。然后你将在你的项目的Themes文件夹中有以下文件:

  • generic.xaml
  • MyControl1.generic.xaml
  • MyControl2.generic.xaml

您的 generic.xaml 将如下所示:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

    <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="/MyControlLib;component/Themes/MyControl1.generic.xaml" />
        <ResourceDictionary Source="/MyControlLib;component/Themes/MyControl2.generic.xaml" />        
    </ResourceDictionary.MergedDictionaries>       


</ResourceDictionary>

【讨论】:

  • 是的——我个人认为这是更好的风格。我希望 IDE 中的默认行为能做到这一点。
【解决方案2】:

是的。

这不仅是可能的,而且是默认行为。

当然,这是假设这两个控件在同一个命名空间中。

你没有具体说明你得到的错误,所以我不能提供更多细节。

【讨论】:

  • 我重试,让你知道我的结果!谢谢。
  • 好的,成功了。对不起,我无法重现我的错误。我记得我创建了一个自定义控件库,其中包含 2 个类和一个 generic.xaml ......非常奇怪......无论如何感谢这个伟大的概念 => 每个控件都有自己的 rd :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-09
  • 1970-01-01
  • 2010-10-22
  • 2017-05-16
相关资源
最近更新 更多