C# 如何在考虑父容器大小的同时将一个元素停靠到另一个元素?
我想在一个固定宽度的列中布局两个标签。一个左对齐并向右移,另一个直接向右移 当标签的组合宽度小于可用空间时,右侧应有空白空间。这是通过以下标记实现的:C# 如何在考虑父容器大小的同时将一个元素停靠到另一个元素?,c#,wpf,xaml,C#,Wpf,Xaml,我想在一个固定宽度的列中布局两个标签。一个左对齐并向右移,另一个直接向右移 当标签的组合宽度小于可用空间时,右侧应有空白空间。这是通过以下标记实现的: <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto"/> <ColumnDefinition Width="Auto"/> </Grid.ColumnDefinitions&
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock TextTrimming="CharacterEllipsis" Text="Sample Name" />
<Label Content="Text" Foreground="#AAAAAA" Grid.Column="1"/>
</Grid>
<DockPanel LastChildFill="True">
<Label Content="Text" Foreground="#AAAAAA" DockPanel.Dock="Right" />
<TextBlock TextTrimming="CharacterEllipsis" Text="A Really Really Long Sample Name" />
</DockPanel>
当第一个标签太大时,文本将被修剪,右侧的标签不应从列中推出。这是通过以下标记实现的:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock TextTrimming="CharacterEllipsis" Text="Sample Name" />
<Label Content="Text" Foreground="#AAAAAA" Grid.Column="1"/>
</Grid>
<DockPanel LastChildFill="True">
<Label Content="Text" Foreground="#AAAAAA" DockPanel.Dock="Right" />
<TextBlock TextTrimming="CharacterEllipsis" Text="A Really Really Long Sample Name" />
</DockPanel>
如果没有不同的Xaml片段,我如何才能获得相同的结果(截图)?事实证明,这是我认为我已经尝试过的东西。这是为了我:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBlock TextTrimming="CharacterEllipsis" Text="Sample Name" />
<Label Content="Text" Foreground="#AAAAAA" Grid.Column="1" />
</Grid>
很抱歉,第二种方法不适合这两种情况吗?哎呀,我把代码示例弄混了。当名称很长时,Grid
方法不起作用,因为它会将“Text”标签推出可视区域。当名称较短时,DockPanel
方法不起作用,因为“文本”标签固定在右侧;这不管用。标签保持在右侧,而不是靠近右侧。