In einem verschachtelten WPF ToolBarPanel-ToolBar-Menü möchten wir den Griff links und den Überlaufbereich rechts entfernen. Sie sind beide ausgegraut, aber wir möchten, dass sie überhaupt nicht angezeigt werden.
Irgendwelche Ideen, wie man das erreicht?
Nur für den Fall, dass meine Begriffe nicht ganz korrekt sind. Wenn Sie sich das Bild in Abbildung 3 des folgenden Links ansehen, befindet sich auf der untersten der drei Symbolleisten der Griff links vom Dropdown und rechts vom rechten Rand Knopf gibt es den Überlauf.
Antworten:
Der Griff kann durch Festlegen der angehängten Eigenschaft
ToolBarTray.IsLocked="True"
in der Symbolleiste entfernt werden.Um den Overflow ToggleButton zu entfernen, müssen Sie ihn in einer benutzerdefinierten ControlTemplate entfernen, wie es die Sixletter-Variablen vorschlagen. Wenn Sie die Blend 3-Vorschau haben oder herunterladen können, ist dies nicht allzu schwierig.
Sie können die Schaltfläche auch einfach im geladenen Ereignis der ToolBar ausblenden. Unabhängig von der Route sollten Sie jedoch auch die angehängte Eigenschaft
ToolBar.OverflowMode="Never"
im Menü der ToolBar festlegen, damit Elemente nicht versehentlich in einen nicht erreichbaren Bereich überlaufen.Und setzen Sie den Overflow ToggleButton auf reduziert:
quelle
Sie können Blend verwenden, um die ControlTemplate für das ToolBarPanel, das Menü oder die ToolBar einfach zu überschreiben .
Sie bearbeiten jetzt die Steuerungsvorlage für das ToolBarPanel und können die Sichtbarkeit für das Griff- und Überlaufsignal auf Reduziert einstellen. Sie können für die anderen Steuerelemente spülen und wiederholen. Es ist ein bisschen zeitaufwändig, aber mit Blend ist es nicht besonders schwer.
quelle
Sie können den Überlauf "entfernen", ohne eine neue Steuerungsvorlage anzugeben, indem Sie festlegen
ToolBar
, dass negative rechte Ränder vorhanden sind (und einen negativen linken Rand einwerfen, damit er mit abgerundeten linken Kanten, aber quadratischen rechten Kanten nicht seltsam aussieht). Fügen Sie dann hinzuClipToBounds="True"
,ToolBarPanel
welche die Kanten der Symbolleiste abschneiden, die jetzt außerhalb des Bedienfeldbereichs haften.quelle
Anstatt den Überlaufknopf vollständig auszublenden, ist es meiner Meinung nach besser, ihn nur bei Bedarf anzuzeigen. Dies kann erreicht werden, indem sein
Visibility
Eigentum an seinIsEnabled
Eigentum gebunden wird :(Dasselbe kann in XAML durch Neudefinition der Vorlage erfolgen.)
quelle
Ich fange gerade mit WPF an und konnte keine der oben genannten Methoden zum Ausblenden meines Überlaufpfeils (Visual Studio 2010) finden. Das einzige, was den Pfeil zu beeinflussen schien, war das obige Beispiel Toolbar_Load, aber alles, was dazu führte, war, den Pfeil in zu verwandeln ein leerer Raum, der so schlecht aussah wie der Pfeil. Der einfachste Weg, den ich mir vorstellen konnte, bestand darin, die Ränder der Symbolleiste festzulegen.
quelle
Die oben beschriebenen Methoden verbergen den Überlauf. Ich habe Folgendes verwendet, um den Greifer zu verstecken:
für ein horizontales Layout und
für ein vertikales Layout. Platzieren Sie das Obige hinter der Symbolleiste (oder ToolbarTray, falls verwendet)
Verwenden Sie die für Ihre Schaltflächen erforderliche Breite und Höhe.
Kaxaml eignet sich hervorragend zum Spielen mit diesem Zeug.
quelle