如何在尊重父容器大小的同时将元素停靠到另一个元素?

时间:2013-10-25 19:17:03

标签: c# wpf xaml

我想在固定宽度列中布置两个标签。一个左对齐并向右生长,另一个直接向右生长。

当标签的组合宽度小于可用空间时,右侧应该有空的空间。这是通过这个标记来实现的:

<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>

First case, left label is short

当第一个标签太大时,文本会被修剪,右边的标签不应该从列中推出。这是通过这个标记来实现的:

<DockPanel LastChildFill="True">
    <Label Content="Text" Foreground="#AAAAAA" DockPanel.Dock="Right" />
    <TextBlock TextTrimming="CharacterEllipsis" Text="A Really Really Long Sample Name" />        
</DockPanel>

Second case, left label is too long

如何在没有不同的Xaml片段的情况下获得相同的结果(屏幕截图)?

1 个答案:

答案 0 :(得分:0)

原来这是我认为我尝试过的东西。这样做对我来说:

<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>