.net WPF-设计时的负载控制和资源

.net WPF-设计时的负载控制和资源,.net,wpf,xaml,.net,Wpf,Xaml,我有一个程序集,其中包含许多资源字典的xaml文件 然后,我有许多包含wpf自定义控件(*.cs文件)的程序集 我的所有资源字典和所有Wpf自定义控件都在运行时耦合在一起,并且都可以完美地工作。 此外,通过这种方式,我可以在设计时通过反射加载不同的主题集合来切换所有模板 问题:实际上,我在设计时看不到任何自定义控件 最简单的情况如下: 我有一个从Button类继承的自定义控件(*.cs文件)。然后,我重写OnApplyTemplate方法以加载在运行时从另一个程序集加载的资源,因此visual

我有一个程序集,其中包含许多资源字典的xaml文件

然后,我有许多包含wpf自定义控件(*.cs文件)的程序集

我的所有资源字典和所有Wpf自定义控件都在运行时耦合在一起,并且都可以完美地工作。 此外,通过这种方式,我可以在设计时通过反射加载不同的主题集合来切换所有模板

问题:实际上,我在设计时看不到任何自定义控件

最简单的情况如下: 我有一个从Button类继承的自定义控件(*.cs文件)。然后,我重写OnApplyTemplate方法以加载在运行时从另一个程序集加载的资源,因此visual studio设计器无法呈现自定义控件


是否有一些解决方法可以在设计时查看我的控件?

在设计时可能会出现一些异常,使您的控件无法显示。因此,您应该能够检测它何时处于设计模式,从而相应地处理代码。当然,如果只能在运行时加载的资源决定了控件外观的某些部分,那么它就不能在设计时正确查看。但至少你应该把它看作是一个占位符(而且足够土生土长)。要检测WPF中的设计模式,请尝试使用
System.ComponentModel.DesignerProperties.GetIsInDesignMode
方法。不,这是不可能的,因为我的自定义控件重写了应用程序模板,以便搜索在运行时加载的资源(通过反射从另一个程序集加载),因此visual studio无法在设计时呈现任何控件。我想知道是否有办法避免这种行为。