WPF: Comment puis-je supprimer la boîte de recherche dans un DocumentViewer?
Mon code XAML est comme ceci:
<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>
Comment puis-je, en XAML ou en C#, éliminer la zone de recherche?
source d'informationauteur Cheeso
Vous devez vous connecter pour publier un commentaire.
Vlad répondre m'a conduit à regarder comment par programmation saisir le ContentControl qui tient la barre de recherche. Je n'ai pas vraiment envie d'écrire un tout nouveau modèle pour la DocumentViewer; j'ai voulu changer (masquer) un seul contrôle. Cela réduit le problème à comment récupérer un contrôle qui s'applique à l'aide d'un modèle?.
Voici ce que j'ai compris:
Vous pouvez faire quelque chose de similaire à Cheeso réponse avec un style pour
ContentControl
et un déclencheur pour le cacher lorsque le nom estPART_FindToolBarHost
.Que Vlad a souligné vous pouvez remplacer le modèle de contrôle. Malheureusement, le modèle de contrôle disponible sur MSDN n'est pas le vrai modèle de contrôle utilisé par le
DocumentViewer
de contrôle. Ici est le bon modèle modifié pour masquer la barre de recherche par la mise enVisibility="Collapsed"
surPART_FindToolBarHost
:Vous devez ajouter une référence à
PresentationUI.dll
. Cette assemblée est situé dans le dossier%WINDIR%\Microsoft.NET\Framework\v4.0.30319\WPF
.Vous pouvez remplacer un modèle de contrôle. Pour votre référence: la valeur par défaut
DocumentViewer
's modèle de contrôle est ici: http://msdn.microsoft.com/en-us/library/aa970452.aspxLa barre de recherche le nom d'
PART_FindToolBarHost
de sorte que vous pouvez également céder sesVisibility
àCollapsed
.Edit:
Comme le commentaire de @Martin suggère, le modèle de contrôle dans MSDN (référencé ci-dessus) n'est pas entièrement correct. Une meilleure façon d'extraire un modèle qui est en fait utilisé dans WPF par défaut à l'aide de Mélange (Modifier le Modèle de Contrôle dans le menu contextuel, si je ne me trompe pas).
Afin d'obtenir Cheeso la réponse de travailler dans le constructeur, j'ai dû ajouter:
autrement cc vient de valeur nulle. Voir la réponse ici
Êtes-vous sûr que vous avez besoin d'un DocumentViewer? Vous pouvez utiliser un FlowDocumentScrollViewer au lieu de cela, ou si vous aimez la pagination ou multi-affichage de la colonne, vous pouvez utiliser un FlowDocumentPageViewer.