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