图形对象对齐

时间:2013-10-25 05:31:10

标签: c# xaml alignment

我正在尝试在Xaml中做一些非常简单但却找不到解决方案。

希望以这种方式设置3列:

  1. 左栏:包含我想在左侧对齐的组合框
  2. 中间栏:不时包含文字。显示时,希望它在剩余空间中居中。
  3. 右栏:包含一些我想要向右对齐的包装面板。
  4. 到目前为止,我已经这样做了:

            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="Auto"/>
            </Grid.ColumnDefinitions>
    

    中间栏Xaml是:

            <WrapPanel Grid.Column="1">
                <TextBlock Name="UserInfoLogs" Text="{Binding Path=...}" />
            </WrapPanel>
    

    它正确对齐左右列的元素,但在显示居中文本时,它自然地与中间列的左侧对齐。

    谢谢!

1 个答案:

答案 0 :(得分:1)

你已经得到它,你只是缺少一种成分;

<Grid>
   <Grid.ColumnDefinitions>
     <ColumnDefinition Width="Auto"/>
     <ColumnDefinition Width="*"/>
     <ColumnDefinition Width="Auto"/>
   </Grid.ColumnDefinitions>

   <TextBlock Text="Left"/>
   <!-- Most of the time just setting the HorizontalAlignment will suffice, 
        except when the TextBlock object is for whatever reason allowed to 
        stretch further than its contents. In which case TextAlignment will 
        align the Text within the Center of itself. -->
   <TextBlock Grid.Column="1" Text="Center" 
              HorizontalAlignment="Center" TextAlignment="Center"/>
   <TextBlock Grid.Column="2" Text="Right"/>

</Grid>

希望这有帮助。