Übersicht über die AutoSize-Eigenschaft
Mit der AutoSize-Eigenschaft lässt sich die Größe eines Steuerelements bei Bedarf ändern, sodass es der durch die PreferredSize-Eigenschaft angegebenen Größe entspricht. Das Verhalten bei der Größenanpassung können Sie durch Festlegen der AutoSizeMode-Eigenschaft für bestimmte Steuerelemente anpassen.
AutoSize-Verhalten
Die AutoSize-Eigenschaft wird nicht von allen Steuerelementen unterstützt. Darüber hinaus unterstützen einige Steuerelemente, die die AutoSize-Eigenschaft unterstützen, auch die AutoSizeMode-Eigenschaft.
Die AutoSize-Eigenschaft führt zu einem etwas anderen Verhalten, je nach dem spezifischen Typ des Steuerelements und dem Wert der AutoSizeMode-Eigenschaft, sofern vorhanden. Die folgende Tabelle beschreibt die Verhalten, die stets TRUE sind, und enthält eine kurze Beschreibung der einzelnen Verhalten:
| Verhalten: immer TRUE | BESCHREIBUNG |
|---|---|
| Bei der automatischen Größenanpassung handelt es sich um ein Laufzeitfeature. | Das bedeutet, dass eine Größenänderung für ein Steuerelement immer weitere Auswirkungen hat. |
| Wenn sich die Größe eines Steuerelements ändert, bleibt der Wert der Location-Eigenschaft immer konstant. | Wenn ein Steuerelement aufgrund des Inhalts größer wird, nimmt die Größe des Steuerelements nach rechts und nach unten zu. Nach links werden Steuerelemente nicht vergrößert. |
Die Eigenschaften Dock und Anchor werden berücksichtigt, wenn AutoSizetrue ist. |
Der Wert der Location-Eigenschaft des Steuerelements wird an den entsprechenden Wert angepasst. Hinweis Das Label-Steuerelement ist die Ausnahme von dieser Regel. Wenn Sie den Wert der AutoSize-Eigenschaft eines angedockten Label-Steuerelements auf true festlegen, wird das Label-Steuerelement nicht gestreckt. |
| Die Eigenschaften MaximumSize und MinimumSize eines Steuerelements werden immer berücksichtigt. Der Wert der AutoSize-Eigenschaft spielt dabei keine Rolle. | Die Eigenschaften MaximumSize und MinimumSize werden durch die AutoSize-Eigenschaft nicht beeinflusst. |
| Standardmäßig ist keine Mindestgröße festgelegt. | Das bedeutet, wenn ein Steuerelement auf eine Verkleinerung unter AutoSize festgelegt ist und keinen Inhalt hat, ist der Wert seiner Size-Eigenschaft 0,0. In diesem Fall wird das Steuerelement auf die Größe eines Punkts verkleinert und ist nicht mehr ohne Weiteres sichtbar. |
| Wenn die GetPreferredSize-Methode für ein Steuerelement nicht implementiert wird, wird mit der GetPreferredSize-Methode der Wert zurückgegeben, der der Size-Eigenschaft zuletzt zugewiesen wurde. | Das bedeutet, dass es keine Auswirkungen hat, wenn AutoSize auf true festgelegt wird. |
| Ein Steuerelement in einer TableLayoutPanel-Zelle wird immer verkleinert, sodass es in die Zelle passt, bis die MinimumSize erreicht ist. | Diese Größe wird als maximale Größe erzwungen. Dies ist nicht der Fall, wenn die Zelle Teil einer AutoSize-Zeile oder -Spalte ist. |
AutoSizeMode-Eigenschaft
Die AutoSizeMode-Eigenschaft bietet eine genauere Kontrolle über das Standardverhalten von AutoSize. Die AutoSizeMode-Eigenschaft gibt an, wie ein Steuerelement seine eigene Größe auf seinen Inhalt abstimmt. Der Inhalt kann z. B. der Text für ein Button-Steuerelement oder die untergeordneten Steuerelemente für einen Container sein.
Die folgende Tabelle zeigt die AutoSizeMode-Einstellungen und eine Beschreibung des Verhaltens, das jede Einstellung hervorruft.
| AutoSizeMode-Einstellung | Verhalten |
|---|---|
| GrowAndShrink | Das Steuerelement wird vergrößert bzw. verkleinert, um es an seinen Inhalt anzupassen. Die Werte von MinimumSize und MaximumSize werden berücksichtigt, der aktuelle Wert der Size-Eigenschaft wird jedoch ignoriert. Dies ist das gleiche Verhalten wie bei Steuerelementen mit AutoSize-Eigenschaft und ohne AutoSizeMode-Eigenschaft. |
| GrowOnly | Das Steuerelement wird so weit vergrößert, dass es an seinen Inhalt angepasst ist, eine Verkleinerung erfolgt jedoch höchstens bis zum Wert seiner Size-Eigenschaft. Dies ist der Standardwert für AutoSizeMode. |
Steuerelemente, die die AutoSize-Eigenschaft unterstützen
In der folgenden Tabelle sind die Steuerelemente aufgeführt, die die Eigenschaften AutoSize und AutoSizeMode unterstützen.
| AutoSize-Unterstützung | Steuerelementtyp |
|---|---|
| - AutoSize-Eigenschaft unterstützt. – Keine AutoSizeMode-Eigenschaft. |
CheckBox DomainUpDown Label LinkLabel MaskedTextBox (TextBox-Basis) NumericUpDown RadioButton TextBox TrackBar |
| - AutoSize-Eigenschaft unterstützt. - AutoSizeMode-Eigenschaft unterstützt. |
Button CheckedListBox FlowLayoutPanel Form GroupBox Panel TableLayoutPanel |
| – Keine AutoSize-Eigenschaft. | CheckedListBox ComboBox DataGridView DateTimePicker ListBox ListView MaskedTextBox MonthCalendar ProgressBar PropertyGrid RichTextBox SplitContainer TabControl TabPage TreeView WebBrowser ScrollBar |
AutoSize in der Entwurfsumgebung
In der folgenden Tabelle wird das Dimensionierungsverhalten eines Steuerelements zur Entwurfszeit basierend auf dem Wert seiner Eigenschaften AutoSize und AutoSizeMode beschrieben.
Überschreiben Sie die SelectionRules-Eigenschaft, um festzustellen, ob sich ein bestimmtes Steuerelement in einem vom Benutzer veränderbaren Zustand befindet. In der folgenden Tabelle bedeutet „kann nicht“ nur Moveable, während „kann“ AllSizeable und Moveable bedeutet.
| AutoSize-Einstellungen | Geste zur Dimensionierung zur Entwurfszeit |
|---|---|
- AutoSize = true– Keine AutoSizeMode-Eigenschaft. |
Benutzer können die Größe des Steuerelements zur Entwurfszeit nur für die folgenden Steuerelemente ändern: - TextBox - MaskedTextBox - RichTextBox - TrackBar |
- AutoSize = true- AutoSizeMode = GrowAndShrink |
Der Benutzer kann die Größe des Steuerelements zur Entwurfszeit nicht ändern. |
- AutoSize = true- AutoSizeMode = GrowOnly |
Der Benutzer kann die Größe des Steuerelements zur Entwurfszeit ändern. Wenn die Size-Eigenschaft festgelegt ist, kann der Benutzer nur die Größe des Steuerelements erhöhen. |
- AutoSize = false, oder AutoSize-Eigenschaft ist ausgeblendet. |
Der Benutzer kann die Größe des Steuerelements zur Entwurfszeit ändern. |
Hinweis
Um die Produktivität zu maximieren, blendet der Windows Forms-Designer in Visual Studio die AutoSize-Eigenschaft für die Form-Klasse aus. Zur Entwurfszeit verhält sich das Formular so, als ob die AutoSize-Eigenschaft auf false festgelegt ist – unabhängig von der tatsächlichen Einstellung. Zur Laufzeit wird keine spezielle Anpassung vorgenommen, und die AutoSize-Eigenschaft wird gemäß der Eigenschaftseinstellung angewendet.