Мой код XAML похож на это:
<Window
xmlns ='http://schemas.microsoft.com/netfx/2007/xaml/presentation'
xmlns:x ='http://schemas.microsoft.com/winfx/2006/xaml'
Title ='Print Preview - More stuff here'
Height ='200'
Width ='300'
WindowStartupLocation ='CenterOwner'>
<DocumentViewer Name='dv1' ... />
</Window>
Как может я, в XAML или в C#, устранить поле поиска?
Ответ Влада побудил меня посмотреть, как программно получить ContentControl, содержащий панель инструментов поиска. Я действительно не хотел писать совершенно новый шаблон для DocumentViewer; Я хотел изменить (скрыть) только один элемент управления. Это уменьшило проблему до , как получить элемент управления, применяемый через шаблон? .
Вот что я выяснил:
Window window = ... ;
DocumentViewer dv1 = LogicalTreeHelper.FindLogicalNode(window, "dv1") as DocumentViewer;
ContentControl cc = dv1.Template.FindName("PART_FindToolBarHost", dv1) as ContentControl;
cc.Visibility = Visibility.Collapsed;
Для него можно заменить шаблон управления. Для справки: шаблон элемента управления DocumentViewer
по умолчанию находится здесь: http://msdn.microsoft.com/en-us/library/aa970452.aspx
Название панели инструментов поиска - PART_FindToolBarHost
, поэтому вы также можете просто назначить его Visibility
для Collapsed
.
Изменить:
Как следует из комментария @Martin, шаблон элемента управления в MSDN (указанный выше) не совсем правильный. Лучший способ извлечь шаблон, который фактически используется в WPF по умолчанию, - это использовать Blend (Edit Control Template в контекстном меню, если я не ошибаюсь).
Вы уверены, что вам нужен DocumentViewer ? Вместо этого вы можете использовать FlowDocumentScrollViewer , или, если вам нравится разбиение на страницы или отображение нескольких столбцов, вы можете использовать FlowDocumentPageViewer .