这个问题有一个解决方案: How do you hide a WPF DocumentViewer's menu bars?
但是,它只允许通过 XAML 隐藏工具栏。我需要以编程方式完成这项工作。
这个答案:WPF:如何删除 DocumentViewer 中的搜索框? 以编程方式隐藏搜索栏。
如何通过非 xaml 代码隐藏主工具栏?
这个问题有一个解决方案: How do you hide a WPF DocumentViewer's menu bars?
但是,它只允许通过 XAML 隐藏工具栏。我需要以编程方式完成这项工作。
这个答案:WPF:如何删除 DocumentViewer 中的搜索框? 以编程方式隐藏搜索栏。
如何通过非 xaml 代码隐藏主工具栏?
没有任何东西DocumentViewer
可以确保工具栏甚至在那里,在这种情况下,在运行时对控件进行编程操作以删除可能存在或可能不存在的工具栏可能不是一个好主意。当然,您可以进行一些空值检查和异常处理,但这也不是很干净。
对于默认的 aero 模板,以下代码将淘汰工具栏:
var contentHost = viewer.Template.FindName("PART_ContentHost", viewer) as ScrollViewer;
var grid = contentHost.Parent as Grid;
grid.Children.RemoveAt(0);
我间接删除了工具栏,因为它不是PART
,这就是它甚至可能不存在于某些主题中的原因。
理想情况下,您应该完全覆盖模板。