阻止 UserControl 加载 ResourceDictionaries

Prevent UserControl from loading ResourceDictionaries

我目前正在使用线程实现打印。到目前为止(几乎)没有问题。
我被 xaml 解析异常困住了一段时间,尽管我通过将 ResourceDictionaries 添加到我要打印的视图来修复它。该视图显然将尝试在其 InitializeComponent 调用中加载测试项目 app.xaml 中定义的 ResourceDictionaries。
我们使用的主题可以在运行时更改。他们也有一些全局样式。

现在的问题是... 有什么方法可以防止 UserControl 加载 app.xaml 或任何其他定义的 ResourceDictionaries位置在 InitializeComponent ?

基本上应用程序中的所有视图都使用带有样式的当前主题,用于打印的 UserControls 应该不使用样式,根本不使用 ResourceDictionary

我 "solved" 通过创建一个新主题来解决这个问题,默认情况下它会覆盖所有使用的控件样式。只有在 UserControl 资源中包含此 ResourceDictionary 才会使用 WPF 默认样式。

<UserControl.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="/MyAssembly;component/Themes/Theme.Nothing.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</UserControl.Resources>

ResourceDictionary几行:

<Style TargetType="{x:Type Slider}"/>
<Style TargetType="{x:Type TabControl}"/>
<Style TargetType="{x:Type TabItem}"/>
<Style TargetType="{x:Type TextBlock}"/>
<Style TargetType="{x:Type TextBox}"/>
<Style TargetType="{x:Type ToolTip}"/>