Программно скрыть панель инструментов WPF DocumentViewer

У этого вопроса есть решение: Как скрыть меню WPF DocumentViewer бары?

Однако он позволяет скрыть панель инструментов только через XAML. Мне нужно сделать это программно.

Этот ответ: WPF: Как удалить окно поиска в DocumentViewer? программно скрывает панель поиска.

Как скрыть основную панель инструментов с помощью кода, отличного от xaml?


person SharpAffair    schedule 30.08.2011    source источник
comment
Я думаю, что это самый простой и лучший способ обхода: stackoverflow.com/questions/1649325/   -  person Ali Asgari    schedule 02.08.2014


Ответы (1)


В DocumentViewer нет ничего, что могло бы гарантировать наличие панели инструментов. В этом случае программная манипуляция с элементом управления во время выполнения для удаления панели инструментов, которая может существовать, а может и не существовать, может быть не такой уж хорошей идеей. Конечно, вы можете выполнить некоторую проверку на null и обработку исключений, но это тоже не очень чисто.

Для шаблона аэро по умолчанию следующий код выбьет панель инструментов:

var contentHost = viewer.Template.FindName("PART_ContentHost", viewer) as ScrollViewer;
var grid = contentHost.Parent as Grid;
grid.Children.RemoveAt(0);

Я удаляю панель инструментов косвенно, так как это не PART, по этой причине она может даже не существовать в некоторых темах.

В идеале вы должны полностью переопределить шаблон.

person H.B.    schedule 30.08.2011