【问题标题】:Create custom controls without generic.xaml?创建没有 generic.xaml 的自定义控件?
【发布时间】:2011-12-15 19:38:13
【问题描述】:

我的 PRISM 应用程序中出现不同的 XAML 设计器错误,这让我发疯了。 我在基础设施项目中有自定义控件,似乎所有引用项目在某些时候加载控件模板都有问题。

在运行时一切都运行良好,但 VS2010 无法处理所有类型的错误。 我确定它与自定义控件有关,由于某种原因无法从 generic.xaml 正确加载样式。

我想尝试将generic.xaml 全部删除并切换到为我的自定义控件使用命名模板。这样我就可以随时合并资源文件,让 VS 知道去哪里找东西。

  1. 您认为这是可行的解决方案吗?

  2. 如何从命名样式填充DefaultStyleKey

【问题讨论】:

    标签: c# silverlight xaml custom-controls


    【解决方案1】:

    这不是一个可行的解决方案:自定义控件从 Themes/generic.xaml 中提取其信息。这已融入运行时。

    如果您正在构建 WPF/Silverlight 复合应用程序,您需要将 generic.xaml 放入您的 WPF 项目并将其链接到您的 Silverlight 项目。这与 Prism 指南相反,但由于链接的 XAML 文件存在错误,这些文件不在 WPF 项目的根级别。

    【讨论】:

      【解决方案2】:

      如果没有 generic.xaml,这会有些困难,但在 generic.xaml 的帮助下,您可以切换到为自定义控件使用命名模板。只需在 generic.xaml 中添加以下代码

      <ResourceDictionary.MergedDictionaries>
          <ResourceDictionary Source="/CPMS.Utility.Controls;component/Controls/MyUc/Style/DBLoginForm.xaml" />
      
      </ResourceDictionary.MergedDictionaries>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-09
        • 1970-01-01
        • 2017-05-16
        • 2018-03-06
        • 2012-05-25
        相关资源
        最近更新 更多