Was bedeutet * (Sternchen) in der XAML unten?
<ColumnDefinition Width="0.07*"/>
<Grid Height="100" HorizontalAlignment="Left"
Margin="102,134,0,0"
Name="grid1" VerticalAlignment="Top"
Width="354">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="40*" />
<ColumnDefinition Width="314*" />
</Grid.ColumnDefinitions>
</Grid>
Antworten:
Wenn Sie eine Spalte in einem WPF-Raster definieren, können Sie die Breite auf einen von drei möglichen Werten festlegen:
Auto
- Die Säule wird so breit wie nötig, um ihren Kindern zu passen, oder*
(Stern) belegen den verfügbaren PlatzDem
*
wird eine Nummer vorangestellt (Standard ist 1, wenn keine Nummer angegeben ist). Der verfügbare Speicherplatz wird proportional zur Präfixnummer auf die markierten Spalten aufgeteilt.Wenn Sie diese Definition haben
Die erste Spalte erhält 7% des gesamten verfügbaren Speicherplatzes und die zweite Spalte 93%. Auf der anderen Seite, wenn Sie diese Definition hatten:
Die erste Spalte würde 1/3 und die zweite 2/3 des verfügbaren Speicherplatzes erhalten.
In Ihrem speziellen Fall, in dem die Breite des Rasters 354 beträgt und die Proportionen der beiden Spalten 40 und 314 betragen, erhalten Sie die folgenden Spaltenbreiten:
Die Sternbreite wird am besten verwendet, wenn die Breite des Gitters nicht festgelegt ist. Wenn die Größe des Rasters geändert wird, werden die Spalten proportional skaliert, wie durch die Sternbreiten angegeben. In Ihrem Fall ist die Breite des Rasters fest und Sie hätten genauso gut Spalten mit fester Breite verwenden können.
Wenn Sie ein Layout wünschen, bei dem die zweite Spalte doppelt so breit ist wie die erste und die dritte Spalte dreimal so breit wie die erste, benötigen Sie diese Definition:
Wenn die Gesamtbreite des Gitters 300 beträgt, erhalten Sie die Spaltenbreiten 50, 100 und 150. Wenn die Gesamtbreite des Gitters 600 beträgt, erhalten Sie die Spaltenbreiten 100, 200 und 300. Und so weiter.
quelle
Das Verhältnis von 0,07 zu jeder anderen Spalte mit Sternbreite - dh wenn eine andere ColomnDefinition eine Breite von 0,14 hat, ist diese Spalte doppelt so breit wie die Breite = alles dreht sich um Rationen
quelle
Es werden Spaltengrößen mithilfe von Verhältnissen erstellt. Wenn Sie eine andere Definition wie
<ColumnDefinition Width="0.03*"/>
die erste Spalte hätten, würde diese 70% des Speicherplatzes und die zweite 30% des Speicherplatzes einnehmen.quelle
quelle