Dans un WPF ToolBarPanel-ToolBar-Menu imbriqué, nous voulons nous débarrasser de la poignée de poignée à gauche et de la zone de débordement à droite. ils sont tous les deux grisés, mais nous aimerions qu'ils ne s'affichent pas du tout.
des idées sur la façon d'y parvenir?
juste au cas où mes termes ne seraient pas tout à fait corrects, si vous regardez l'image de la figure 3 du lien ci-dessous, sur la plus basse des trois barres d'outils, il y a la poignée à gauche de la liste déroulante et à droite de l'extrême droite bouton il y a le débordement.
Réponses:
La poignée peut être supprimée en définissant la propriété attachée
ToolBarTray.IsLocked="True"
dans la barre d'outils.Pour supprimer le bouton à bascule de débordement , vous devrez le supprimer dans un ControlTemplate personnalisé comme le suggère sixlettervariables, ce qui, si vous avez blend ou pouvez télécharger l'aperçu de Blend 3, n'est pas trop difficile.
Vous pouvez également simplement masquer le bouton dans l'événement chargé de la barre d'outils, bien que quel que soit l'itinéraire que vous prenez, vous devez également définir la propriété jointe
ToolBar.OverflowMode="Never"
dans le menu de la barre d'outils, afin que les éléments ne puissent pas déborder accidentellement dans une zone inaccessible.Et définissez le bouton Bascule de débordement sur réduit:
la source
Vous pouvez utiliser Blend pour remplacer simplement ControlTemplate pour ToolBarPanel, Menu ou ToolBar.
Vous allez maintenant modifier le modèle de contrôle pour le ToolBarPanel et pouvez définir la visibilité sur Réduit pour le signal de poignée et de débordement. Vous pouvez rincer et répéter pour les autres commandes. Cela prend un peu de temps, mais ce n'est pas très difficile avec Blend.
la source
Vous pouvez "supprimer" le débordement sans fournir un nouveau modèle de contrôle en définissant le
ToolBar
pour avoir des marges droites négatives (et ajouter une marge gauche négative pour qu'il ne semble pas étrange avec des bords gauches arrondis mais des bords droits carrés). Ensuite, ajoutezClipToBounds="True"
auToolBarPanel
qui coupera les bords de la barre d'outils qui collent maintenant en dehors de la zone du panneau.la source
Plutôt que de masquer complètement le bouton de débordement, je pense qu'il vaut mieux ne le montrer que lorsque cela est nécessaire. Cela peut être fait en liant sa
Visibility
propriété à saIsEnabled
propriété:(la même chose peut être faite en XAML en redéfinissant le modèle)
la source
Je ne fais que commencer avec WPF et je n'ai pu obtenir aucune des méthodes ci-dessus pour masquer ma flèche de débordement (Visual Studio 2010) .La seule chose qui semblait affecter la flèche était l'exemple Toolbar_Load ci-dessus, mais tout ce qui a fait était de transformer la flèche en un espace vide qui avait l'air aussi mauvais que la flèche. Le moyen le plus simple pour moi de comprendre était simplement de définir les marges de la barre d'outils.
la source
Les méthodes ci-dessus fonctionnent pour masquer le débordement; J'ai utilisé ce qui suit pour masquer la pince:
pour une disposition horizontale, et
pour une disposition verticale. Placez ce qui précède après la barre d'outils (ou ToolbarTray, si vous l'utilisez)
Utilisez la largeur et la hauteur nécessaires pour vos boutons.
Kaxaml est excellent pour jouer avec ce genre de choses.
la source