2

我有一个很长的列表选择器。

我要做的就是对齐 ItemTemplate 中的两个元素: 1. 右侧的按钮,具有给定的固定宽度 2. 左侧的文本面板,填充显示的剩余空间。但不幸的是,文本面板没有拉伸,并且按钮与文本面板文本的右端对齐。:(

这是我的代码:

<DataTemplate x:Key="AddrBookItemTemplate">
  <StackPanel Orientation="Horizontal" Name="DummerContainer" HorizontalAlignment="Stretch">
    <TextBlock FontWeight="Bold" Text="{Binding Name}" HorizontalAlignment="Stretch"/>
    <Button HorizontalAlignment="Right" Width="120"/>
  </StackPanel>
</DataTemplate>

<phone:LongListSelector
      HorizontalAlignment="Stretch"
      x:Name="AddrBook"
      JumpListStyle="{StaticResource AddrBookJumpListStyle}"
      Background="Transparent"
      GroupHeaderTemplate="{StaticResource AddrBookGroupHeaderTemplate}"
      ItemTemplate="{StaticResource AddrBookItemTemplate}"
      LayoutMode="List"
      IsGroupingEnabled="true"
      HideEmptyGroups ="true"/>

所以,这是我的问题:如何正确对齐这两个元素?

4

2 回答 2

7

这是使用水平StackPanel...

在 DataTemplate 中使用 aGrid而不是 a 。StackPanel然后您可以根据ColumnDefinitions需要定义分配空间,即:

  • 将第 0 列定义为Width="*"并将您TextBlock的放入其中
  • 将第 1 列定义为Width="Auto"放入Button其中。
于 2013-03-04T17:07:10.940 回答
0

Afaik,Stackpanel 比 Grid 快。所以,我决定找出问题的根源。我在这里找到了它:http: //y2bd.me/blog/2013/08/16/fixing-alignment-issues-with-datatemplateselector/

对我来说很好。

于 2014-03-17T13:01:08.583 回答