내 창 레이아웃으로 WPF Grid를 사용하고 있습니다. 그것은 두 개의 열과 임의의 수의 행을가집니다. 첫 번째 열은 특별히 라벨에 사용되고 두 번째 열은 사용자 입력 필드 (예 : TextBox, ComboBox 등)에 사용됩니다. 내 요구 사항은 다음과 같습니다WPF TextBlock.TextTrimming이 자동 크기 ColumnDefinition에서 작동하지 않습니다.
- 첫 번째 열에는 첫 번째 요구 사항을 무시하는 경우를 제외하고 그 내용에 180
- 첫 번째 열해야 크기의 50의 최소 폭 및 최대 폭이 있어야합니다.
- 두 번째 열은 나머지 모든 공간을 차지해야합니다.
나는 아래의 XAML을 시도 : 라벨 "와 같은 무언가로 잘립니다"180 개 단위에 맞지 않는 라벨을 "
<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>
나는 제 3의 열 라벨 것으로 기대했다 그 원 ... ". 대신, "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 (가끔은 ...) 작업이 끝났지 만 결국 응용 프로그램을 실행하지 않았습니다. 달릴 때, 모든 상표는 완전하게 사라졌다. 조사 창을 통해 모든 TextBlock의 실제 너비가 0이고 LabelColumn.ActualWidth가 80 인 것을 보았습니다.
다른 옵션이 있습니까? 열 정의에 MinWidth
및 MaxWidth
을 설정하는 것은 항상 렌더링에 영광되지 않는