Ok Xaml是我的弱点之一,所以我真的很感激这方面的一些帮助...我想要实现的是在列表框中添加标题,名称,姓氏如下:
先生。约翰·多伊 约翰·多伊女士 Jane 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>
答案 0 :(得分:4)
在每个TextBlock
中,您需要将Grid.Column="?"
设置在哪里?是0,1或2。
如果未指定列(或行),则默认情况下元素将转到(0,0)。
答案 1 :(得分:3)
使用Grid.Column
中的TextBlock
属性。即:
<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" />
答案 2 :(得分:0)
对于网格中的每个元素,如果您希望它们显式为Row或Column,则必须指定它们。为此,您可以使用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>