[WPF] Spaltenbreite einer Grid.Column prozentual festlegen

palaber

Captain
Registriert
Juni 2006
Beiträge
3.856
Hallo zusammen,

ich hab eine Listview in der ich ein ItemTemplate definiert habe, welches 3 Spalten hat.
Die Spalte B hat eine feste Breite von 20.
Die Spalte A und C sollen sich den Rest des Fensters zu je 50% teilen. In jeder Spalte ist eine Textbox,
die über die gesamte Spaltenbreite geht. Das klappt soweit auch alles:

Code:
<DataTemplate x:Key="BlaDataTemplate">
	<Grid Height="60">
		<Grid.ColumnDefinitions>
			<ColumnDefinition Width="*" />
			<ColumnDefinition Width="10" />
			<ColumnDefinition Width="*" />
		</Grid.ColumnDefinitions>

		<TextBlock HorizontalAlignment="Stretch"
				   Text="{Binding Path=Bla.Label, Mode=OneWay}"
				   TextAlignment="Left"
				   TextWrapping="Wrap" />

		<TextBlock Grid.Column="2"
				   HorizontalAlignment="Stretch"
				   Text="{Binding Path=Bla.Value, Mode=OneWay}"
				   TextAlignment="Left" />
	</Grid>
</DataTemplate>

Was nicht klappt ist folgendes: Wird der Text länger als der zur Verfügung stehende Platz, soll der Text umschlagen. Allerdings wird die Breite der Spalte vergrößert. Lege ich die Spaltenbreite fest (also statt Width="*" z.B. Width="400") dann wrapt der Text. Ändere ich aber die Auflösung muss ich wieder alle Werte anpassen. Hat mir da jemanden einen Tipp?
DynamischeSpaltenbreiteSmall.PNG
 
Probier mal die verschiedenen Möglichkeiten der TextWrapping Property bei den Textblöcken aus.
 
Zurück
Oben