Właściwość AutoSize – Przegląd
Właściwość AutoSize umożliwia kontrolce zmianę rozmiaru w razie potrzeby w celu uzyskania wartości określonej przez właściwość PreferredSize. Dostosowujesz zachowanie określania rozmiaru dla określonych kontrolek, ustawiając właściwość AutoSizeMode
.
Funkcja automatycznego dopasowywania rozmiaru
Tylko niektóre kontrolki obsługują właściwość AutoSize. Ponadto niektóre kontrolki obsługujące właściwość AutoSize obsługują również właściwość AutoSizeMode
.
Właściwość AutoSize generuje nieco inne zachowanie, w zależności od określonego typu kontrolki i wartości właściwości AutoSizeMode
, jeśli właściwość istnieje. W poniższej tabeli opisano zachowania, które są zawsze prawdziwe i zawiera krótki opis każdego z nich:
Zawsze prawdziwe zachowanie | Opis |
---|---|
Automatyczne ustalanie rozmiaru jest funkcją wykonywaną w czasie rzeczywistym. | Oznacza to, że nigdy nie zwiększa ani nie zmniejsza kontrolki i nie ma dalszego wpływu. |
Jeśli kontrolka zmieni rozmiar, wartość jej właściwości Location zawsze pozostaje stała. | Gdy zawartość kontrolki powoduje jej wzrost, kontrolka rośnie w prawo i w dół. Kontrolki nie rozszerzają się w lewo. |
Właściwości Dock i Anchor są respektowane, gdy AutoSize jest true . |
Wartość właściwości Location kontrolki jest dostosowywana do poprawnej wartości. Uwaga Kontrolka Label jest wyjątkiem od tej reguły. Po ustawieniu właściwości AutoSize zadokowanej kontrolki Label na true , kontrolka Label nie będzie się rozciągać. |
Właściwości MaximumSize i MinimumSize kontrolki są zawsze respektowane, niezależnie od wartości jej właściwości AutoSize. | Właściwości MaximumSize i MinimumSize nie są zależne od właściwości AutoSize. |
Domyślnie nie ma ustawionego minimalnego rozmiaru. | Oznacza to, że jeśli kontrolka jest ustawiona na zmniejszanie się w AutoSize i nie ma zawartości, wartość jej właściwości Size wynosi 0,0. W takim przypadku kontrolka zmniejszy się do punktu i nie będzie łatwo widoczna. |
Jeśli kontrolka nie implementuje metody GetPreferredSize, metoda GetPreferredSize zwraca ostatnią wartość przypisaną do właściwości Size. | Oznacza to, że ustawienie AutoSize na true nie będzie miało wpływu. |
Element sterujący w komórce TableLayoutPanel zawsze zmniejsza się, aby zmieścić się w komórce do momentu osiągnięcia jego MinimumSize. | Ten rozmiar jest wymuszany jako maksymalny rozmiar. Nie jest tak, gdy komórka jest częścią wiersza lub kolumny AutoSize. |
Właściwość AutoSizeMode
Właściwość AutoSizeMode
zapewnia bardziej szczegółową kontrolę nad domyślnym zachowaniem AutoSize. Właściwość AutoSizeMode
określa, w jaki sposób kontrolka dostosowuje swój rozmiar do swojej zawartości. Na przykład zawartość może być tekstem kontrolki Button lub kontrolek podrzędnych dla kontenera.
W poniższej tabeli przedstawiono ustawienia AutoSizeMode i opis zachowania, które każdy z nich wywołuje.
Ustawienie AutoSizeMode | Zachowanie |
---|---|
RozwijajISkurcz | Kontrolka rośnie lub zmniejsza się, aby obejmowała jego zawartość. Wartości MinimumSize i MaximumSize są honorowane, ale bieżąca wartość właściwości Size jest ignorowana. Jest to takie samo zachowanie jak kontrolki z właściwością AutoSize i bez właściwości AutoSizeMode . |
GrowOnly | Kontrolka zwiększa się na tyle, na ile to konieczne, aby obejmowała jej zawartość, ale nie zmniejszy się poniżej wartości określonej przez jej właściwość Size. To jest domyślna wartość dla AutoSizeMode . |
Kontrolki obsługujące właściwość AutoSize
W poniższej tabeli wymieniono kontrolki obsługujące właściwości AutoSize i AutoSizeMode
.
Obsługa AutoSize | Typ kontrolki |
---|---|
obsługiwana właściwość - AutoSize. - Brak właściwości AutoSizeMode . |
CheckBox DomainUpDown Label LinkLabel MaskedTextBox (TextBox baza) NumericUpDown RadioButton TextBox TrackBar |
obsługiwana właściwość - AutoSize. obsługiwana właściwość - AutoSizeMode . |
Button CheckedListBox FlowLayoutPanel Form GroupBox Panel TableLayoutPanel |
- Brak właściwości AutoSize. | CheckedListBox ComboBox DataGridView DateTimePicker ListBox ListView MaskedTextBox MonthCalendar ProgressBar PropertyGrid RichTextBox SplitContainer TabControl TabPage TreeView WebBrowser ScrollBar |
Autosize w środowisku projektowym
W poniższej tabeli opisano zachowanie rozmiaru kontrolki w czasie projektowania na podstawie wartości jej AutoSize i AutoSizeMode
właściwości.
Zastąpij właściwość SelectionRules, aby określić, czy dana kontrolka jest w stanie umożliwiającym zmianę rozmiaru użytkownika. W poniższej tabeli "nie można" oznacza tylko Moveable, "można" oznacza AllSizeable i Moveable.
Ustawienia AutoSize | Gest określania rozmiaru w czasie projektowania |
---|---|
- AutoSize = true - Brak właściwości AutoSizeMode . |
Użytkownik nie może zmienić rozmiaru kontrolki w czasie projektowania, z wyjątkiem następujących kontrolek: - TextBox - MaskedTextBox - RichTextBox - TrackBar |
- AutoSize = true - AutoSizeMode = GrowAndShrink |
Użytkownik nie może zmienić rozmiaru kontrolki w czasie projektowania. |
- AutoSize = true - AutoSizeMode = GrowOnly |
Użytkownik może zmienić rozmiar kontrolki w czasie projektowania. Po ustawieniu właściwości Size użytkownik może tylko zwiększyć rozmiar kontrolki. |
właściwość - AutoSize = false lub AutoSize jest ukryta. |
Użytkownik może zmienić rozmiar kontrolki w czasie projektowania. |
Notatka
Aby zmaksymalizować produktywność, projektant formularzy Windows w Visual Studio przesłania właściwość AutoSize dla klasy Form. W czasie projektowania formularz zachowuje się tak, jakby właściwość AutoSize jest ustawiona na false
, niezależnie od rzeczywistego ustawienia. W czasie wykonywania nie jest używane żadne specjalne dostosowanie, a właściwość AutoSize jest stosowana zgodnie z jej ustawieniem.
Zobacz też
.NET Desktop feedback