Architektura kontrolki ToolStrip
Klasy ToolStrip i ToolStripItem zapewniają elastyczny, rozszerzalny system wyświetlania elementów paska narzędzi, stanu i menu. Wszystkie te klasy są zawarte w przestrzeni nazw System.Windows.Forms i są one zwykle nazywane prefiksem "ToolStrip" (takim jak ToolStripOverflow) lub sufiksem "Strip" (na przykład MenuStrip).
ToolStrip
W poniższych tematach opisano ToolStrip i elementy sterujące pochodzące z niego.
ToolStrip jest abstrakcyjną klasą bazową dla MenuStrip, StatusStripi ContextMenuStrip. Poniższy model obiektowy przedstawia ToolStrip w hierarchii dziedziczenia.
Dostęp do wszystkich elementów w ToolStrip można uzyskać za pośrednictwem kolekcji Items. Dostęp do wszystkich elementów w ToolStripDropDownItem można uzyskać za pośrednictwem kolekcji DropDownItems. W klasie pochodzącej z ToolStripmożna również użyć właściwości DisplayedItems, aby uzyskać dostęp tylko do tych elementów, które są aktualnie wyświetlane. Są to elementy, które w tej chwili nie znajdują się w menu przepełnienia.
Poniższe elementy zostały specjalnie zaprojektowane tak, aby bezproblemowo współdziałały zarówno z ToolStripSystemRenderer, jak i ToolStripProfessionalRenderer we wszystkich orientacjach. Są one domyślnie dostępne w czasie projektowania dla kontrolki ToolStrip:
MenuStrip
MenuStrip to kontener najwyższego poziomu, który zastępuje MainMenu. Zapewnia również obsługę kluczy i wiele funkcji interfejsu dokumentu (MDI). Funkcjonalnie ToolStripDropDownItem i ToolStripMenuItem współpracują z MenuStrip, chociaż pochodzą one z ToolStripItem.
Poniższe elementy zostały specjalnie zaprojektowane tak, aby bezproblemowo współdziałały zarówno z ToolStripSystemRenderer, jak i ToolStripProfessionalRenderer we wszystkich orientacjach. Są one domyślnie dostępne w czasie projektowania dla kontrolki MenuStrip:
StatusStrip
StatusStrip zastępuje kontrolkę StatusBar. Specjalne funkcje StatusStrip obejmują niestandardowy układ tabeli, obsługę uchwytów do zmiany rozmiaru i przesuwania formularza oraz właściwość Spring
, która umożliwia ToolStripStatusLabel automatyczne wypełnienie dostępnej przestrzeni.
Poniższe elementy zostały specjalnie zaprojektowane tak, aby bezproblemowo współdziałały zarówno z ToolStripSystemRenderer, jak i ToolStripProfessionalRenderer we wszystkich orientacjach. Są one domyślnie dostępne w czasie projektowania dla kontrolki StatusStrip:
ContextMenuStrip
ContextMenuStrip zastępuje ContextMenu. Można skojarzyć ContextMenuStrip z dowolną kontrolką, a kliknięcie prawym przyciskiem myszy automatycznie wyświetla menu kontekstowe (lub menu skrótów). Programowo można wyświetlić ContextMenuStrip przy użyciu metody Show. ContextMenuStrip obsługuje anulowalne zdarzenia Opening i Closing, aby poradzić sobie z dynamicznym populacjami i scenariuszami wielokrotnego kliknięcia. ContextMenuStrip obsługuje obrazy, stan sprawdzania elementu menu, tekst, klucze dostępu, skróty i kaskadowe menu.
Poniższe elementy zostały specjalnie zaprojektowane tak, aby bezproblemowo współdziałały zarówno z ToolStripSystemRenderer, jak i ToolStripProfessionalRenderer we wszystkich orientacjach. Są one domyślnie dostępne w czasie projektowania dla kontrolki ContextMenuStrip:
ToolStrip — funkcje ogólne
W poniższych tematach opisano funkcje i zachowanie uniwersalne dla ToolStrip i pochodnych kontrolek.
Malarstwo
Niestandardowe malowanie można wykonywać na kilka sposobów za pomocą kontrolek ToolStrip. Podobnie jak w przypadku innych kontrolek Windows Forms, zarówno ToolStrip, jak i ToolStripItem mają zastępowalne metody OnPaint
i zdarzenia Paint
. Podobnie jak w przypadku zwykłego malowania, układ współrzędnych jest powiązany z obszarem klienta kontrolki; oznacza to, że lewy górny róg kontrolki to 0, 0. Zdarzenie Paint
oraz metoda OnPaint
dla ToolStripItem zachowują się jak inne zdarzenia związane z rysowaniem kontrolki.
Kontrolki ToolStrip umożliwiają bardziej precyzyjne dostosowanie renderowania elementów i kontenera przez klasę ToolStripRenderer, która ma zastępowalne metody rysowania tła, tła elementu, obrazu elementu, strzałki elementu, tekstu elementu oraz obramowania ToolStrip. Argumenty zdarzeń dla tych metod uwidaczniają kilka właściwości, takich jak prostokąty, kolory i formaty tekstu, które można dostosować zgodnie z potrzebami.
Aby dostosować tylko kilka aspektów sposobu malowania elementu, zazwyczaj zastępujesz ToolStripRenderer.
Jeśli piszesz nowy element i chcesz kontrolować wszystkie aspekty obrazu, przesłoń metodę OnPaint
. Z poziomu OnPaint
można użyć metod z ToolStripRenderer.
Domyślnie ToolStrip jest dwukrotnie buforowany, korzystając z ustawienia OptimizedDoubleBuffer.
Rodzicielstwo
Koncepcja własności kontenera i elementu nadrzędnego jest bardziej złożona w ToolStrip kontrolkach niż w innych kontrolkach kontenera Windows Forms. Jest to niezbędne do obsługi dynamicznych scenariuszy, takich jak przepełnienie, udostępnianie elementów rozwijanych w wielu elementach ToolStrip, a także do wspierania generowania ContextMenuStrip za pomocą kontrolki.
Poniższa lista opisuje członków związanych z rodzicielstwem i objaśnia ich użycie.
OwnerItem uzyskuje dostęp do elementu, który jest źródłem elementu z listy rozwijanej. Jest to podobne do SourceControl, ale zamiast zwracać kontrolkę, zwraca ToolStripItem.
SourceControl określa, która kontrolka jest źródłem ContextMenuStrip, gdy wiele kontrolek ma ten sam ContextMenuStrip.
GetCurrentParent jest akcesorem tylko do odczytu właściwości Parent. Rodzic różni się od właściciela tym, że rodzic wskazuje bieżący zwrócony ToolStrip, w którym element jest wyświetlany, co może oznaczać, że znajduje się on w obszarze przepełnienia.
Owner zwraca ToolStrip, którego kolekcja Items zawiera bieżącą ToolStripItem. Jest to najlepszy sposób na odniesienie się do ImageList lub innych właściwości w najwyższym poziomie ToolStrip bez konieczności pisania specjalnego kodu do obsługi przepełnienia.
Zachowanie odziedziczonych kontrolek
Następujące kontrolki są blokowane za każdym razem, gdy są używane w dziedziczeniu:
ToolStripPanel, które obejmują panele w ToolStripContainer, a także poszczególne kontrolki ToolStripPanel.
Na przykład utwórz nową aplikację Windows Forms przy użyciu co najmniej jednej kontrolki na poprzedniej liście. Ustaw modyfikator dostępu co najmniej jednej kontrolki na public
lub protected
, a następnie skompiluj projekt. Dodaj formularz, który dziedziczy z pierwszego formularza, a następnie wybierz dziedziczoną kontrolkę. Kontrolka jest zablokowana, zachowuje się tak, jakby jej modyfikator dostępu był private
.
ToolStripContainer — obsługa dziedziczenia
Kontrolka ToolStripContainer obsługuje ograniczone scenariusze dziedziczone, podobnie jak w poniższym przykładzie:
Utwórz nową aplikację Windows Forms.
Dodaj ToolStripContainer do formularza.
Ustaw modyfikator dostępu ToolStripContainer na
public
lubprotected
.Dodaj dowolną kombinację kontrolek ToolStrip, MenuStripi ContextMenuStrip do regionów ToolStripPanelToolStripContainer.
Skompiluj projekt.
Dodaj formularz dziedziczony z pierwszego formularza.
Wybierz dziedziczone ToolStripContainer w formularzu.
Dziedziczone zachowanie kontrolek podrzędnych
Po wykonaniu poprzednich kroków następuje następujące zachowanie dziedziczone:
W środowisku projektowym kontrolka pojawia się z ikoną dziedziczoną.
Kontrolki ToolStripPanel są zablokowane; nie można wybrać ani zmienić ich układu.
Można dodawać kontrolki do ToolStripContentPanel, przenosić je i ustawiać jako kontrolki podrzędne ToolStripContentPanel.
Zmiany są utrwalane po utworzeniu formularza.
Notatka
Usuń modyfikatory dostępu ze wszystkich kontrolek ToolStripPanel, które są częścią ToolStripContainer. Modyfikator dostępu ToolStripContainer kontroluje całą kontrolę.
Zaufanie częściowe
Ograniczenia ToolStrip
w ramach częściowego zaufania mają na celu zapobieganie niezamierzonemu wprowadzeniu danych osobowych, które mogłyby zostać wykorzystane przez nieautoryzowane osoby lub usługi. Środki ochronne są następujące:
ToolStripDropDown
kontrolki wymagają AllWindows, aby wyświetlać elementy w ToolStripControlHost. Dotyczy to zarówno kontrolek wewnętrznych, takich jak ToolStripTextBox, ToolStripComboBoxi ToolStripProgressBar, jak i kontrolek utworzonych przez użytkownika. Jeśli to wymaganie nie zostanie spełnione, te elementy nie są wyświetlane. Nie jest zgłaszany żaden wyjątek.Ustawienie właściwości AutoClose na wartość
false
jest niedozwolone, a parametr zdarzenia z możliwością anulowania Closing jest ignorowany. Uniemożliwia to wprowadzanie więcej niż jednego naciśnięcia klawisza bez zamknięcia elementu listy rozwijanej. Jeśli to wymaganie nie zostanie spełnione, takie elementy nie są wyświetlane. Nie jest zgłaszany żaden wyjątek.Wiele zdarzeń związanych z obsługą naciśnięć klawiszy nie zostanie zgłoszonych, jeśli wystąpią w kontekstach zaufania o ograniczonym dostępie innych niż AllWindows.
Klucze dostępu nie są przetwarzane, gdy nie przyznano AllWindows.
Użycie
Następujące wzorce użycia mają wpływ na układ ToolStrip, interakcję z klawiaturą i zachowanie użytkownika końcowego:
Dołączono do ToolStripPanel
ToolStrip można przemieścić w obrębie ToolStripPanel i pomiędzy ToolStripPanel. Właściwość
Dock
jest ignorowana, a jeśli właściwość Stretch jestfalse
, rozmiar ToolStrip rośnie w miarę dodawania elementów do ToolStripPanel. Zazwyczaj ToolStrip nie uczestniczy w kolejności tabulacji.Zadokowany
ToolStrip znajduje się po jednej stronie pojemnika w stałej pozycji, a jego rozmiar rozciąga się na całej krawędzi, do której jest przytwierdzony. Zazwyczaj ToolStrip nie uczestniczy w kolejności tabulacji.
Bezwzględnie rozmieszczone
ToolStrip jest podobna do innych kontrolek, w tym, że jest umieszczana przez właściwość Location, ma stały rozmiar i zazwyczaj uczestniczy w kolejności tabulacji.
Interakcja z klawiaturą
Klucze dostępu
W połączeniu z klawiszem ALT lub następującym po nim, klawisze dostępu są jednym ze sposobów na aktywowanie kontrolki przy użyciu klawiatury.
ToolStrip obsługuje zarówno jawne, jak i niejawne klucze dostępu. Definicja jawna używa znaku ampersand (&) poprzedzającego literę. Niejawna definicja używa algorytmu, który próbuje znaleźć pasujący element na podstawie kolejności znaków w danej właściwości Text
.
Klawisze skrótów
Klucze skrótów używane przez MenuStrip stosują kombinację wyliczenia Keys (które nie jest zależne od kolejności), aby zdefiniować skrót. Możesz również użyć właściwości ShortcutKeyDisplayString, aby wyświetlić klawisz skrótu tylko jako tekst, na przykład wyświetlając "Del" zamiast "Usuń".
Nawigacja
Klawisz ALT aktywuje element MenuStrip wskazywany przez MainMenuStrip. W tym miejscu ctrl+TAB przechodzi między kontrolkami ToolStrip w ToolStripPanel
s. Klawisz TAB i klawisze strzałek na klawiaturze numerycznej nawigują między elementami w ToolStrip. Specjalny algorytm obsługuje nawigację w regionie przepełnienia. Spacja wybiera ToolStripButton, ToolStripDropDownButtonlub ToolStripSplitButton.
Koncentracja uwagi i walidacja
Po aktywowaniu klawiszem ALT, MenuStrip lub ToolStrip zazwyczaj nie zyskują ani nie odejmują fokusu z kontrolki, która aktualnie ma fokus. Jeśli w MenuStrip lub na liście rozwijanej MenuStripistnieje kontrolka hostowana, kontrolka zyskuje fokus, gdy użytkownik naciska TAB. Ogólnie rzecz biorąc, zdarzenia GotFocus, LostFocus, Enteri Leave dotyczące MenuStrip mogą nie być wywoływane, gdy są uruchamiane za pomocą klawiatury. W takich przypadkach należy zamiast tego użyć zdarzeń MenuActivate i MenuDeactivate.
Domyślnie CausesValidation jest false
. Wywołaj Validate jawnie na formularzu, aby przeprowadzić walidację.
Układ
Układ ToolStrip można kontrolować, wybierając jeden z elementów członkowskich ToolStripLayoutStyle z właściwością LayoutStyle.
Układy stosu
Układanie polega na ustawianiu elementów obok siebie na obu końcach ToolStrip. Poniższa lista opisuje układy stosu.
StackWithOverflow jest wartością domyślną. To ustawienie powoduje, że ToolStrip automatycznie zmienia swój układ zgodnie z właściwością Orientation, aby obsługiwać scenariusze przeciągania i dokowania.
VerticalStackWithOverflow renderuje elementy ToolStrip obok siebie w pionie.
HorizontalStackWithOverflow renderuje elementy ToolStrip obok siebie w poziomie.
Inne funkcje układów stosów
Alignment określa koniec ToolStrip, do którego element jest wyrównany.
Gdy elementy nie mieszczą się w ToolStrip, zostanie automatycznie wyświetlony przycisk przepełnienia. Ustawienie właściwości Overflow określa, czy element jest zawsze wyświetlany w obszarze przepełnienia, w razie potrzeby, czy nigdy.
W zdarzeniu LayoutCompleted można sprawdzić właściwość Placement, aby określić, czy element został umieszczony na głównym ToolStrip, na przepełnieniowym ToolStriplub jeśli w ogóle nie jest on wyświetlany. Typowe przyczyny, dla których element nie jest wyświetlany, to to, że element nie pasuje do głównego ToolStrip, a jego właściwość Overflow została ustawiona na wartość Never.
Utwórz ToolStrip ruchomy, umieszczając go w ToolStripPanel i ustawiając GripStyle na Visible.
Inne opcje układu
Inne opcje układu to Flow i Table.
Układ przepływu
układ Flow jest domyślnym ustawieniem ContextMenuStrip, ToolStripDropDownMenui ToolStripOverflow. Jest on podobny do FlowLayoutPanel. Funkcje układu Flow są następujące:
Wszystkie funkcje FlowLayoutPanel są udostępniane przez właściwość LayoutSettings. Należy rzutować klasę LayoutSettings na klasę FlowLayoutSettings.
Możesz użyć właściwości Dock i Anchor w kodzie, aby wyrównać elementy w wierszu.
Alignment właściwość jest ignorowana.
W przypadku LayoutCompleted można sprawdzić właściwość Placement, aby określić, czy element został umieszczony na głównym ToolStrip, czy się nie zmieścił.
Uchwyt nie jest renderowany, w związku z tym ToolStrip w stylu układu Flow w ToolStripPanel nie można przenosić.
Przycisk przepełnienia ToolStrip nie jest renderowany, a Overflow jest ignorowany.
Układ tabeli
Table układ jest domyślny dla StatusStrip. Jest on podobny do TableLayoutPanel. Funkcje układu Flow są następujące:
Wszystkie funkcje TableLayoutPanel są udostępniane przez właściwość LayoutSettings. Należy rzutować klasę LayoutSettings na klasę TableLayoutSettings.
Możesz użyć właściwości Dock i Anchor w kodzie, aby wyrównać elementy w komórce tabeli.
Właściwość Alignment jest ignorowana.
W przypadku LayoutCompleted można sprawdzić właściwość Placement, aby określić, czy element został umieszczony na głównym ToolStrip, czy nie pasuje.
Uchwyt nie jest renderowany, dlatego nie można przenosić ToolStrip w stylu układu TableToolStripPanel.
Przycisk przepełnienia ToolStrip nie jest renderowany, a Overflow jest ignorowany.
ToolStripItem
W poniższych tematach opisano ToolStripItem i elementy sterujące pochodzące z niego.
ToolStripItem jest abstrakcyjną klasą bazową dla wszystkich elementów, które przechodzą do ToolStrip. Poniższy model obiektu przedstawia hierarchię dziedziczenia ToolStripItem.
Klasy ToolStripItem albo dziedziczą bezpośrednio po ToolStripItem, albo pośrednio z ToolStripItem przez ToolStripControlHost lub ToolStripDropDownItem.
ToolStripItem kontrolki muszą być zawarte w ToolStrip, MenuStrip, StatusStriplub ContextMenuStrip i nie można ich dodać bezpośrednio do formularza. Różne klasy kontenerów zostały zaprojektowane tak, aby zawierały odpowiedni podzestaw kontrolek ToolStripItem.
W poniższej tabeli wymieniono standardowe kontrolki ToolStripItem oraz komponenty, w których wyglądają najlepiej. Mimo że dowolny element ToolStrip może być hostowany w dowolnym kontenerze pochodnym ToolStrip, te elementy zostały zaprojektowane tak, aby wyglądały najlepiej w następujących kontenerach:
Notatka
ToolStripDropDown nie pojawia się w przyborniku projektanta.
Element zawarty | ToolStrip | MenuStrip | ContextMenuStrip | StatusStrip | ToolStripDropDown |
---|---|---|---|---|---|
ToolStripButton | Tak | Nie | Nie | Nie | Tak |
ToolStripComboBox | Tak | Tak | Tak | Nie | Tak |
ToolStripSplitButton | Tak | Nie | Nie | Tak | Tak |
ToolStripLabel | Tak | Nie | Nie | Tak | Tak |
ToolStripSeparator | Tak | Tak | Tak | Nie | Tak |
ToolStripDropDownButton | Tak | Nie | Nie | Tak | Tak |
ToolStripTextBox | Tak | Tak | Tak | Nie | Tak |
ToolStripMenuItem | Nie | Tak | Tak | Nie | Nie |
ToolStripStatusLabel | Nie | Nie | Nie | Tak | Nie |
ToolStripProgressBar | Tak | Nie | Nie | Tak | Nie |
ToolStripControlHost | Tak | Tak | Nie | Tak | Tak |
ToolStripButton
ToolStripButton jest elementem przyciskowym dla ToolStrip. Można go wyświetlić za pomocą różnych stylów obramowania i można go użyć do reprezentowania i aktywowania stanów operacyjnych. Można również zdefiniować ją tak, aby domyślnie miała fokus.
ToolStripLabel
ToolStripLabel zapewnia funkcje etykiet w kontrolkach ToolStrip. ToolStripLabel jest jak ToolStripButton, który domyślnie nie uzyskuje fokusu i nie jest renderowany jako wypchnięty lub wyróżniony.
ToolStripLabel jako hostowany element obsługuje klucze dostępu.
Użyj właściwości LinkColor, LinkVisitedi LinkBehavior w ToolStripLabel, aby obsługiwać kontrolkę łącza w ToolStrip.
Etykieta stanu paska narzędzi
ToolStripStatusLabel to wersja ToolStripLabel przeznaczona specjalnie do użytku w StatusStrip. Funkcje specjalne obejmują BorderStyle, BorderSidesi Spring.
SeparatorPaskaNarzędzi
ToolStripSeparator dodaje pionową lub poziomą linię do paska narzędzi lub menu w zależności od orientacji. Zapewnia grupowanie lub rozróżnienie między elementami, takimi jak te w menu.
Możesz dodać ToolStripSeparator w czasie projektowania, wybierając ją z listy rozwijanej. Można jednak również automatycznie utworzyć ToolStripSeparator, wpisując łącznik (-) w węźle szablonu projektanta lub w metodzie Add.
ToolStripControlHost
ToolStripControlHost jest abstrakcyjną klasą bazową dla ToolStripComboBox, ToolStripTextBoxi ToolStripProgressBar. ToolStripControlHost może hostować inne kontrolki, w tym kontrolki niestandardowe, na dwa sposoby:
Skonstruuj ToolStripControlHost za pomocą klasy pochodzącej z Control. Aby w pełni uzyskać dostęp do hostowanej kontrolki i właściwości, należy ponownie rzutować właściwość Control na rzeczywistą klasę, którą reprezentuje.
Rozszerz ToolStripControlHost, a w konstruktorze bez parametrów dziedziczonej klasy wywołaj konstruktor klasy bazowej przekazujący klasę pochodzącą z Control. Ta opcja umożliwia opakowywanie typowych metod kontroli i właściwości w celu łatwego dostępu w ToolStrip.
ToolStripComboBox
ToolStripComboBox jest ComboBox zoptymalizowany pod kątem hostowania w ToolStrip. Podzestaw właściwości i zdarzeń hostowanej kontrolki są widoczne na poziomie ToolStripComboBox, ale podstawowa kontrolka ComboBox jest w pełni dostępna za pośrednictwem właściwości ComboBox.
ToolStripTextBox
ToolStripTextBox jest TextBox zoptymalizowany pod kątem hostowania w ToolStrip. Podzestaw właściwości i zdarzeń hostowanej kontrolki są widoczne na poziomie ToolStripTextBox, ale podstawowa kontrolka TextBox jest w pełni dostępna za pośrednictwem właściwości TextBox.
ToolStripProgressBar
ToolStripProgressBar jest ProgressBar zoptymalizowany pod kątem hostowania w ToolStrip. Podzestaw właściwości i zdarzeń hostowanej kontrolki jest widoczny na poziomie ToolStripProgressBar, ale kontrolka bazowa ProgressBar jest w pełni dostępna za pośrednictwem właściwości ProgressBar.
ToolStripDropDownItem
ToolStripDropDownItem jest abstrakcyjną klasą bazową dla ToolStripMenuItem, ToolStripDropDownButtoni ToolStripSplitButton, która może bezpośrednio hostować elementy lub dodatkowe elementy w rozwijanym kontenerze. W tym celu należy ustawić właściwość DropDown na ToolStripDropDown i ustawić właściwość ItemsToolStripDropDown. Uzyskaj dostęp do tych elementów listy rozwijanej bezpośrednio za pośrednictwem właściwości DropDownItems.
ToolStripMenuItem
ToolStripMenuItem to ToolStripDropDownItem, która współpracuje z ToolStripDropDownMenu i ContextMenuStrip w celu obsługi specjalnego wyróżniania, układu oraz rozmieszczenia kolumn dla menu.
ToolStripDropDownButton
ToolStripDropDownButton wygląda jak ToolStripButton, ale wyświetla obszar listy rozwijanej po kliknięciu go przez użytkownika. Ukryj lub wyświetl strzałkę listy rozwijanej, ustawiając właściwość ShowDropDownArrow. ToolStripDropDownButton hostuje ToolStripOverflowButton, który wyświetla elementy przepełniające ToolStrip.
ToolStripSplitButton
ToolStripSplitButton łączy funkcje przycisków i przycisków rozwijanych.
Użyj właściwości DefaultItem, aby zsynchronizować zdarzenie Click wybranego elementu listy rozwijanej z elementem wyświetlanym na przycisku.
ToolStripItem — funkcje ogólne
ToolStripItem udostępnia następujące ogólne funkcje i opcje dziedziczenia kontrolek:
Zdarzenia podstawowe
Obsługa obrazów
Wyrównanie
Relacja tekstu i obrazu
Styl wyświetlania
Zdarzenia podstawowe
ToolStripItem kontrolki odbierają własne zdarzenia kliknięcia, myszy i malowania oraz mogą również wykonywać wstępne przetwarzanie klawiatury.
Obsługa obrazów
Właściwości Image, ImageAlign, ImageIndex, ImageKeyi ImageScaling dotyczą różnych aspektów obsługi obrazu. Użyj obrazów w kontrolkach ToolStrip, ustawiając te właściwości bezpośrednio lub konfigurując właściwość ImageList tylko w czasie działania.
Skalowanie obrazów jest określane przez interakcję właściwości zarówno w ToolStrip, jak i ToolStripItem, w następujący sposób:
ImageScalingSize to skala obrazu końcowego określona przez kombinację ustawienia ImageScaling obrazu i ustawienia AutoSize kontenera.
Jeśli AutoSize jest
true
(wartość domyślna), a ToolStripItemImageScaling jest SizeToFit, nie ma skalowania obrazu, a rozmiar ToolStrip jest rozmiarem największego elementu lub określonego minimalnego rozmiaru.Jeśli AutoSize jest
false
, a ToolStripItemImageScaling jest None, nie wystąpi ani skalowanie obrazu, ani skalowanie ToolStrip.
Wyrównanie
Wartość właściwości Alignment określa koniec ToolStrip, na którym pojawia się element. Właściwość Alignment działa tylko wtedy, gdy styl układu ToolStrip jest ustawiony na jedną z wartości przepełnienia stosu.
Elementy są umieszczane na ToolStrip w kolejności, w jakiej pojawiają się w kolekcji Items. Aby programowo zmienić lokalizację elementu, użyj metody Insert, aby przenieść element w kolekcji. Ta metoda przenosi element, ale nie duplikuje go.
Relacja tekstu i obrazu
Właściwość TextImageRelation definiuje względne rozmieszczenie obrazu w odniesieniu do tekstu na ToolStripItem. Elementy, które nie mają obrazu, tekstu lub obu, są traktowane jako przypadki specjalne, dzięki czemu ToolStripItem nie wyświetla pustego miejsca dla brakującego elementu lub elementów.
Styl wyświetlania
DisplayStyle pozwala ustawić wartości właściwości Text i Image elementu, wyświetlając tylko to, co chcesz. Jest to zwykle używane do zmiany tylko stylu wyświetlania w przypadku wyświetlania tego samego elementu w innym kontekście.
Klasy akcesoriów
Klasy, które zapewniają różne inne funkcje, obejmują:
ToolStripManager obsługuje zadania związane z ToolStripdla całych aplikacji, takich jak scalanie, ustawienia i opcje renderowania.
ToolStripRenderer umożliwia łatwe zastosowanie określonego stylu lub motywu do ToolStrip.
ToolStripProfessionalRenderer tworzy długopisy i pędzle na podstawie zastępowalnej tabeli kolorów (ProfessionalColorTable).
ToolStripSystemRenderer stosuje kolory systemowe i płaski styl wizualny w aplikacjach ToolStrip.
ToolStripContainer jest podobny do SplitContainer. Używa czterech zadokowanych paneli bocznych (wystąpień ToolStripPanel) i jednego panelu centralnego (wystąpienia ToolStripContentPanel) w celu utworzenia typowego układu. Nie można usunąć paneli bocznych, ale można je ukryć. Nie można ani usunąć ani ukryć centralnego panelu. Można rozmieścić jeden lub więcej ToolStrip, MenuStriplub StatusStrip kontrolek w panelach bocznych, i można użyć panelu centralnego dla innych kontrolek. ToolStripContentPanel zapewnia również możliwość obsługi renderera w części głównej formularza, co zapewnia spójny wygląd. ToolStripContainer nie obsługuje wielu interfejsów dokumentów (MDI).
ToolStripPanel zapewnia przestrzeń do przenoszenia i rozmieszczania kontrolek ToolStrip. Jeśli tak wybierzesz, możesz użyć tylko jednego panelu, a ToolStripPanel działa dobrze w scenariuszach MDI.
Zobacz też
.NET Desktop feedback