AutoSize — Przegląd właściwości
Właściwość AutoSize umożliwia kontrolce zmianę rozmiaru w razie potrzeby w celu uzyskania wartości określonej przez PreferredSize właściwość. Zachowanie określania rozmiaru dla określonych kontrolek można dostosować, ustawiając AutoSizeMode
właściwość .
Zachowanie automatycznego rozmiaru
Tylko niektóre kontrolki AutoSize obsługują właściwość . Ponadto niektóre kontrolki obsługujące AutoSize właściwość obsługują AutoSizeMode
również właściwość .
Właściwość AutoSize generuje nieco inne zachowanie, w zależności od określonego AutoSizeMode
typu kontrolki i wartości właściwości, 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ą czasu wykonywania. | Oznacza to, że nigdy nie rośnie lub zmniejsza kontrolkę, a następnie nie ma dalszego efektu. |
Jeśli kontrolka zmienia rozmiar, wartość jej Location właściwości zawsze pozostaje stała. | Gdy zawartość kontrolki powoduje jej wzrost, kontrolka rośnie w kierunku prawej i w dół. Kontrolki nie rosną po lewej stronie. |
Właściwości Dock i Anchor są honorowane, gdy AutoSize ma wartość true . |
Wartość właściwości kontrolki Location jest dostosowywana do poprawnej wartości. Uwaga Kontrolka Label jest wyjątkiem od tej reguły. Po ustawieniu wartości właściwości zadokowanej Label kontrolki AutoSize na true , Label kontrolka nie będzie rozciągać się. |
Właściwości i MinimumSize kontrolki MaximumSize są zawsze honorowane, niezależnie od wartości jej AutoSize właściwości. | Właściwości MaximumSize i MinimumSize nie mają wpływu na AutoSize właściwość . |
Domyślnie nie ma ustawionego minimalnego rozmiaru. | Oznacza to, że jeśli kontrolka ma być zmniejszana AutoSize i nie ma zawartości, wartość jej Size właściwości wynosi 0,0. W takim przypadku kontrolka zmniejszy się do punktu i nie będzie łatwo widoczna. |
Jeśli kontrolka nie implementuje GetPreferredSize metody, GetPreferredSize metoda zwraca ostatnią wartość przypisaną Size do właściwości. | Oznacza to, że ustawienie AutoSize na true wartość nie będzie miało żadnego wpływu. |
Kontrolka TableLayoutPanel w komórce zawsze zmniejsza się, aby zmieścić się w komórce do momentu osiągnięcia jej MinimumSize . | Ten rozmiar jest wymuszany jako maksymalny rozmiar. Nie jest tak, gdy komórka jest częścią AutoSize wiersza lub kolumny. |
Właściwość AutoSizeMode
Właściwość AutoSizeMode
zapewnia bardziej szczegółową kontrolę nad zachowaniem domyślnym AutoSize . Właściwość AutoSizeMode
określa, w jaki sposób kontrolka ma rozmiar samej zawartości. Na przykład zawartość może być tekstem kontrolki Button lub kontrolek podrzędnych dla kontenera.
W poniższej tabeli przedstawiono AutoSizeMode ustawienia i opis zachowania, które każde ustawienie wywołuje.
Ustawienie AutoSizeMode | Zachowanie |
---|---|
GrowAndShrink | Kontrolka rośnie lub zmniejsza się, aby obejmowała jego zawartość. Wartości MinimumSize i MaximumSize są honorowane, ale bieżąca wartość Size właściwości jest ignorowana. Jest to takie samo zachowanie, jak kontrolki z właściwością i żadną AutoSize AutoSizeMode właściwością. |
GrowOnly | Kontrolka zwiększa się tak samo, jak to konieczne, aby obejmowała jego zawartość, ale nie zmniejszy się o mniejszą niż wartość określona przez jej Size właściwość. Jest to wartość domyślna dla . AutoSizeMode |
Kontrolki obsługujące właściwość AutoSize
W poniższej tabeli wymieniono kontrolki obsługujące AutoSize właściwości i AutoSizeMode
.
Obsługa automatycznego rozmiaru | Typ kontrolki |
---|---|
- AutoSize obsługiwana właściwość. - Brak AutoSizeMode właściwości. |
CheckBox DomainUpDown Label LinkLabel MaskedTextBox (TextBox podstawa) NumericUpDown RadioButton TextBox TrackBar |
- AutoSize obsługiwana właściwość. - AutoSizeMode obsługiwana właściwość. |
Button CheckedListBox FlowLayoutPanel Form GroupBox Panel TableLayoutPanel |
- Brak AutoSize właściwości. | 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 określania rozmiaru kontrolki w czasie projektowania na podstawie wartości jej AutoSize właściwości i AutoSizeMode
.
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 Moveable tylko "can" oznacza AllSizeable i Moveable.
Ustawienia automatycznego rozmiaru | Gest określania rozmiaru w czasie projektowania |
---|---|
- AutoSize = true - Brak AutoSizeMode właściwości. |
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 Size właściwości użytkownik może tylko zwiększyć rozmiar kontrolki. |
- AutoSize = false , lub AutoSize właściwość jest ukryta. |
Użytkownik może zmienić rozmiar kontrolki w czasie projektowania. |
Uwaga
Aby zmaksymalizować produktywność, formularze systemu Windows Projektant w programie Visual Studio w tle AutoSize właściwości klasyForm. W czasie projektowania formularz zachowuje się tak, jakby AutoSize właściwość jest ustawiona na false
, niezależnie od rzeczywistego ustawienia. W czasie wykonywania nie są tworzone żadne specjalne zakwaterowanie, a AutoSize właściwość jest stosowana zgodnie z ustawieniem właściwości.
Zobacz też
.NET Desktop feedback