【问题标题】:In XAML how do you place items next to each other in a Grid在 XAML 中,如何将项目彼此相邻放置在网格中
【发布时间】:2012-10-01 13:26:33
【问题描述】:

Ok Xaml 是我的弱点之一,因此我非常感谢您对此的帮助...我想要实现的是在列表框中添加标题、姓名、姓氏,如下所示:

先生。约翰·多伊
John Doe 女士
简·多伊夫人

这是我到目前为止的xaml,结果是名称标题和姓氏相互重叠:

<DataTemplate>
                <Grid>
                    <TextBlock Text="{Binding Title}"  Width="60" Height="25" Margin="4" HorizontalAlignment="Left" />
                    <TextBlock Text="{Binding FirstName}" Width="60" HorizontalAlignment="Center" />
                    <TextBlock Text="{Binding LastName}" Width="60" HorizontalAlignment="Right" />

                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="1*"/>
                        <ColumnDefinition Width="1*"/>
                        <ColumnDefinition Width="1*"/>
                    </Grid.ColumnDefinitions>
                </Grid>
            </DataTemplate>

【问题讨论】:

    标签: c# visual-studio-2010 xaml


    【解决方案1】:

    在每个TextBlock 中你需要设置Grid.Column="?" 在哪里?是 0、1 或 2。

    如果不指定列(或行),元素将默认转到 (0,0)。

    【讨论】:

      【解决方案2】:

      TextBlock 中使用Grid.Column 属性。即:

      <TextBlock Text="{Binding Title}"  Width="60" Height="25" Margin="4" HorizontalAlignment="Left" Grid.Column="0"/> 
      <TextBlock Text="{Binding FirstName}" Width="60" HorizontalAlignment="Center" Grid.Column="1" /> 
      <TextBlock Text="{Binding LastName}" Width="60" HorizontalAlignment="Right" Grid.Column="2" /> 
      

      【讨论】:

      • 谢谢,我知道这很简单,而不是我在玩边距等,只是让事情变得复杂......非常感谢!
      【解决方案3】:

      对于网格中的每个元素,如果您希望它们在显式行或列中,则必须指定它们。为此,您可以使用Grid.Row="X"Grid.Column="X"。如果您不设置这些,则默认值为 0。

      在您的情况下,您需要执行以下操作。

      <DataTemplate>
          <Grid>
              <TextBlock Text="{Binding Title}"  Width="60" Height="25" Margin="4" HorizontalAlignment="Left" Grid.Column="0" />
              <TextBlock Text="{Binding FirstName}" Width="60" HorizontalAlignment="Center" Grid.Column="1" />
              <TextBlock Text="{Binding LastName}" Width="60" HorizontalAlignment="Right" Grid.Column="2" />
      
              <Grid.ColumnDefinitions>
                  <ColumnDefinition Width="1*"/>
                  <ColumnDefinition Width="1*"/>
                  <ColumnDefinition Width="1*"/>
              </Grid.ColumnDefinitions>
          </Grid>
      </DataTemplate>
      

      【讨论】:

        猜你喜欢
        • 2021-10-18
        • 1970-01-01
        • 1970-01-01
        • 2022-01-25
        • 1970-01-01
        • 2013-06-17
        • 1970-01-01
        • 2020-07-22
        • 2015-07-27
        相关资源
        最近更新 更多