[英]WPF TextBlock.TextTrimming Not Working With Auto-sized ColumnDefinition
我正在使用WPF網格作為窗口的布局。 它有兩列和任意數量的行。 第一列專門用於標簽,第二列用於用戶輸入字段(例如TextBox,ComboBox等)。 我的要求是:
我試過下面的XAML:
<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>
我希望第三行標簽“不符合180個單位的標簽”將被截斷為“標簽贏得......”之類的東西。 相反,它被剪切到“標簽不會”,一半的“t”丟失。
我嘗試了一種在網絡上找到的不同方法。
<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>
它最終處理Expression Blend(有時......),但在運行應用程序時卻沒有。 運行時,所有標簽完全消失。 我通過監視窗口看到所有TextBlocks的實際寬度為0,而LabelColumn.ActualWidth等於80。
還有哪些其他選擇?
你需要有MinWidth
和MaxWidth
上TextBlock的設置,如設置MinWidth
和MaxWidth
上欄定義並不總是渲染榮幸。 在綁定表達式中使用ActualWidth
可能會有問題,因為在多個渲染過程中設置了ActualWidth
並且可能會產生不可預測的結果
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.