我目前正在使用线程实现打印。到目前为止(几乎)没有问题
虽然我通过将ResourceDictionaries添加到我想要打印的视图中来修复它,但我在xaml解析异常中遇到了一段时间。该视图显然会尝试在app.xaml
调用中加载测试项目InitializeComponent
中定义的ResourceDictionaries。
我们正在使用可在运行时更改的主题。他们也有一些全球风格。
现在问题是...... 有一种方法可以阻止UserControl
加载app.xaml
中定义的ResourceDictionaries或{{1}中的任何其他位置}
基本上,应用程序中的所有视图都使用当前主题和样式,而用于打印的InitializeComponent
应该不使用样式而根本不使用UserControl
。
答案 0 :(得分:0)
我通过创建一个新主题“解决”了这个问题,默认情况下会覆盖所有使用的控件样式。仅在ResourceDictionary
资源中包含此UserControl
将使用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}"/>