从编译中排除用户控件?

时间:2015-11-27 12:44:29

标签: c# wpf xaml user-controls

我想创建一个类库,其中包含我创建的所有应用程序的自定义样式(所以我只需要导入dll并应用所有样式)。出于设计目的,我希望在我的"主题"中有一个用户控件。项目(所以我对所有设计的控件进行了直观的表示)。但最后这个用户控件不应该编译并打包到dll中。

我已经尝试将构建操作设置为 none ,但是它找不到编译的gics文件中的方法(InitializeComponent())(显而易见)。

但我怎么能阻止它?

基本上我的项目看起来像这样:

MyTheme的

  • MyThemePreview.xaml< - usercontrol,其中每个窗口小部件定义一次    (已排除)
  • MyTheme.xaml< - 合并字典,包含样式
  • 中的所有样式
  • 样式
    • Style_Button.xaml
    • Style_TabControl.xaml
    • ...

2 个答案:

答案 0 :(得分:1)

  • BuildAction设置为无,正如您所做的那样
  • MyThemePreview.xaml.cs使用指令#if NONEXISTENT_CONSTANT .... #endif中 - #if#endif之间的代码如果没有#define NONEXISTENT_CONSTANT则不会被编译,设计师仍然可以使用。如果你想使用代码,只需定义那个常量。
  • ...或者,如果你永远不会创建MyThemePreview对象,只需删除MyThemePreview.xaml.cs中的所有代码。设计师仍然会工作。

https://msdn.microsoft.com/library/4y6tbswk(v=vs.100).aspx

答案 1 :(得分:0)

您还应该将文件MyThemePreview .cs 后面的Build Action设置为

如果您希望再次编译此文件,则应将Build Action MyThemePreview.xaml设置为 Page ,将MyThemePreview.cs设置为 Compile