Laden...

WPF: Benutzerelemente innerhalb von Grid-Spalte sollen nur so groß (breit) werden wie notwendig

Erstellt von MillionsterNutzer vor 8 Jahren Letzter Beitrag vor 8 Jahren 1.194 Views
M
MillionsterNutzer Themenstarter:in
235 Beiträge seit 2005
vor 8 Jahren
WPF: Benutzerelemente innerhalb von Grid-Spalte sollen nur so groß (breit) werden wie notwendig

Hallo zusammen,

ich habe einige WPF basierte Formulare. Dabei sind alle Eingabefelder wie üblich innerhalb eines <Grid> Elements damit die Feldnamen und die eigentlichen Eingabefelder schön ausgerichtet und auch immer gleich breit sind.
Mein Problem ist nun das ich neben Combo- und TextBoxen auch eine CheckBox habe die in dem Grid genauso breit gemacht wird wie die Spalte hergibt. Das führt dazu das der User nun rechts neben dem Text der Checkbox ins scheinbar 'Leere' klicken kann und sich dann trotzdem noch der Status der Checkbox ändert.
Für mich als Entwickler ist das klar: Die Checkbox hört eben nicht da auf wo ihr Text aufhört sondern erst da wo die Spalte aufhört. Für den User ist das aber leider nicht nachzuvollziehen.

Gibt es eine einfache Möglichkeit der CheckBox zu sagen das sie nur so groß werden soll wie nötig?

Viele Grüße

Ralg

P
157 Beiträge seit 2014
vor 8 Jahren

Width = Auto?!?!? 😃

Wenn's zum weinen nicht reicht, lach drüber!

M
MillionsterNutzer Themenstarter:in
235 Beiträge seit 2005
vor 8 Jahren

Bin mir nicht sicher ob du das richtig verstehst: Es handelts sich quasi um ein Grid mit zwei Spalten: Die erste für die Feldnamen, die zweite Spalte für die Eingabefelder für die Datenfelder. Also Quasi so


<Grid>
  <Grid.ColumnDefinitions>
    <ColumnDefinition Width="Auto" />
    <ColumnDefinition Width="*" />
  </Grid.ColumnDefinitions>

Die Eingabefelder (also Text-, Check- und Combobox) in der zweiten Spalte bekommen also weit aus mehr Platz in der Breite als sie eigentlich benötigen würden... Für Text- und Combobox nicht weiters schlimm, aber für die CheckBox eben wie zuvor beschrieben nicht so doll.
Width und MaxWidth der CheckBox auf einen festen Wert setzen mag ich nicht (wegen Übersetzungen). Und der Wert Auto hat in diesem Szenario wohl keine Auswirkung.

OK?

VG

Ralf

W
955 Beiträge seit 2010
vor 8 Jahren

Mach doch die Checkbox in ein Stackpanel o.ä.

P
157 Beiträge seit 2014
vor 8 Jahren

CheckBox Width = Auto

und/oder - eher und als oder 😃

HorizontalAlignment=Left

nachtrag:
das sollte eigentlich klappen...kann sein dass dein Alignment standarmäßig auf stretch steht

Wenn's zum weinen nicht reicht, lach drüber!

M
MillionsterNutzer Themenstarter:in
235 Beiträge seit 2005
vor 8 Jahren

Hallo Parso,

danke für den Hinweis: Das habe ich nicht bedacht dass das Alignment standardmäßig auf stretch steht! Genau das habe ich gesucht! Danke!

@witte: Um ein Haar wäre ich deinem Vorschalg gefolgt, da ich eben auch keine andere Lösung sah...

Viele Grüße

Ralf