WPF: Как я могу удалить поле поиска в DocumentViewer?

Мой код 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#, устранить поле поиска?

12
задан Cheeso 24 February 2010 в 00:01
поделиться

3 ответа

Ответ Влада побудил меня посмотреть, как программно получить 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;
14
ответ дан 2 December 2019 в 03:54
поделиться

Для него можно заменить шаблон управления. Для справки: шаблон элемента управления DocumentViewer по умолчанию находится здесь: http://msdn.microsoft.com/en-us/library/aa970452.aspx

Название панели инструментов поиска - PART_FindToolBarHost , поэтому вы также можете просто назначить его Visibility для Collapsed .


Изменить:
Как следует из комментария @Martin, шаблон элемента управления в MSDN (указанный выше) не совсем правильный. Лучший способ извлечь шаблон, который фактически используется в WPF по умолчанию, - это использовать Blend (Edit Control Template в контекстном меню, если я не ошибаюсь).

4
ответ дан 2 December 2019 в 03:54
поделиться

Вы уверены, что вам нужен DocumentViewer ? Вместо этого вы можете использовать FlowDocumentScrollViewer , или, если вам нравится разбиение на страницы или отображение нескольких столбцов, вы можете использовать FlowDocumentPageViewer .

0
ответ дан 2 December 2019 в 03:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: