Penceremin düzeni olarak bir WPF Izgara kullanıyorum. İki sütun ve herhangi bir sayıda satır vardır. İlk sütun özellikle etiketler için kullanılır ve ikinci sütun kullanıcı-giriş alanları için kullanılır (ör. TextBox, ComboBox, vb.). Benim gereksinimleri şunlardır:WPF TextBlock.TextTrimming Otomatik Boyutlu SütunDefinasyonu Çalışmıyor
- İlk sütun ilk şartı meydan okuyan dışında içindekilere 180
- İlk sütun zorunluluk boyutu bir 50 minimum genişliğini ve maksimum genişliğe sahip olmalıdır.
- İkinci sütun kalan tüm alanı kaplamalıdır.
aşağıda XAML çalıştı: Label" gibi bir şey kesilecek, "180 birimlerinde Fit olmaz Etiket",
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" MinWidth="50" MaxWidth="180" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock Text="First Name" TextTrimming="CharacterEllipsis" />
<TextBox Grid.Column="1" Text="{Binding FirstName}" />
<TextBlock Grid.Row="1" Text="Family Name" TextTrimming="CharacterEllipsis" />
<TextBox Grid.Row="1" Grid.Column="1" Text="{Binding FamilyName}" />
<TextBlock Grid.Row="2" Text="Label That Won't Fit in 180 units" TextTrimming="CharacterEllipsis" />
<TextBox Grid.Row="2" Grid.Column="1" Text="{Binding Text}" />
</Grid>
Ben üçüncü sıra etiketi umuyordum O Won ... ". Bunun yerine, "t" eksikinin yarısı ile "Etiketlenmeyecek" etiketine kısıldı.
Web'de bir yerde bulduğum farklı bir yaklaşım denedim.
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition x:Name="LabelColumn" Width="Auto" MinWidth="50" MaxWidth="180" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock Width="{Binding ActualWidth, ElementName=LabelColumn}" Text="First Name" TextTrimming="CharacterEllipsis" />
<TextBox Grid.Column="1" Text="{Binding FirstName}" />
<TextBlock Grid.Row="1" Width="{Binding ActualWidth, ElementName=LabelColumn}" Text="Family Name" TextTrimming="CharacterEllipsis" />
<TextBox Grid.Row="1" Grid.Column="1" Text="{Binding FamilyName}" />
<TextBlock Grid.Row="2" Width="{Binding ActualWidth, ElementName=LabelColumn}" Text="Label That Won't Fit in 180 units" TextTrimming="CharacterEllipsis" />
<TextBox Grid.Row="2" Grid.Column="1" Text="{Binding Text}" />
</Grid>
Uygulama çalıştırıldığında değil, Expression Blend (Bazen ...) üzerinde çalışma sona erdi. Koşarken, tüm etiketler tamamen kayboldu. WatchColumn.ActualWidth, 80.
Başka hangi seçenekler mevcut olduğunda, tüm TextBlock'ların Gerçek Genişliği 0 olduğunu izleme penceresinden gördüm. Sütun tanımlarına MinWidth
ve MaxWidth
ayarı her zaman render üzerinde geçerli olmadığı kadar