W zagnieżdżonym menu WPF ToolBarPanel-ToolBar chcemy pozbyć się uchwytu po lewej stronie i obszaru przepełnienia po prawej. oba są wyszarzone, ale chcielibyśmy, aby w ogóle nie były wyświetlane.
jakieś pomysły, jak to osiągnąć?
na wypadek, gdyby moje terminy nie były całkowicie poprawne, jeśli spojrzysz na obraz na rysunku 3 z linku poniżej, na najniższym z trzech pasków narzędzi znajduje się uchwyt po lewej stronie listy rozwijanej i po prawej stronie najbardziej po prawej przycisk jest przepełnienie.
Odpowiedzi:
Uchwyt można usunąć, ustawiając dołączoną właściwość
ToolBarTray.IsLocked="True"
na pasku narzędzi.Aby usunąć Overflow ToggleButton , będziesz musiał usunąć go w niestandardowym ControlTemplate, zgodnie z sugestią sixlettervariables, co nie jest zbyt trudne, jeśli masz mieszankę lub możesz pobrać podgląd Blend 3 Preview.
Możesz także po prostu ukryć przycisk w załadowanym zdarzeniu ToolBar, chociaż niezależnie od wybranej trasy, powinieneś również ustawić dołączoną właściwość
ToolBar.OverflowMode="Never"
w menu ToolBar, aby elementy nie mogły przypadkowo przepełnić się do niedostępnego obszaru.I ustaw Overflow ToggleButton na zwinięty:
źródło
Możesz użyć Blend, aby po prostu zastąpić ControlTemplate dla ToolBarPanel, Menu lub ToolBar.
Będziesz teraz edytować szablon kontrolny dla ToolBarPanel i możesz ustawić widoczność na Zwinięty dla sygnału uchwytu i przepełnienia. Możesz przepłukać i powtórzyć dla innych kontrolek. Jest to trochę czasochłonne, ale nie jest strasznie trudne z Blendem.
źródło
Możesz „usunąć” przepełnienie bez dostarczania nowego szablonu kontrolnego, ustawiając
ToolBar
ujemne prawe marginesy (i dodając ujemny lewy margines, aby nie wyglądał dziwnie z zaokrąglonymi lewymi krawędziami, ale kwadratowymi prawymi krawędziami). Następnie dodajClipToBounds="True"
do tego,ToolBarPanel
który odetnie krawędzie paska narzędzi, które teraz wystają poza obszar panelu.źródło
Zamiast całkowicie ukrywać przycisk przepełnienia, myślę, że lepiej jest go wyświetlać tylko wtedy, gdy jest to konieczne. Można to zrobić, wiążąc jego
Visibility
właściwość z jegoIsEnabled
właściwością:(to samo można zrobić w XAML, ponownie definiując szablon)
źródło
Właśnie zaczynam od WPF i nie mogłem uzyskać żadnej z powyższych metod, aby ukryć moją strzałkę przepełnienia (Visual Studio 2010) .Jedyną rzeczą, która wydawała się wpływać na strzałkę, był powyższy przykład Toolbar_Load, ale wszystko, co zrobiło, to zmienić strzałkę pusta przestrzeń, która wyglądała tak źle jak strzała. Najłatwiejszym sposobem, jaki mogłem zrozumieć, było po prostu ustawienie marginesów paska narzędzi.
źródło
Powyższe metody działają w celu ukrycia przepełnienia; Użyłem następujących sposobów, aby ukryć chwytak:
dla układu poziomego i
dla układu pionowego. Umieść powyższe za Toolbar (lub ToolbarTray, jeśli go używasz)
Użyj dowolnej szerokości i wysokości potrzebnej dla twoich przycisków.
Kaxaml jest doskonały do zabawy z tymi rzeczami.
źródło