2

長いリストセレクターがあります。

私がやりたいのは、ItemTemplate内の2つの要素を揃えることです。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"/>

だから、これは私の質問です:どうすれば2つの要素を正しく整列させることができますか?

4

2 に答える 2

7

それは水平を使用した結果StackPanelです...

DataTemplateでは aGridではなく aを使用します。StackPanel次に、ColumnDefinitions必要に応じてスペースを割り当てるように定義できます。つまり、次のようになります。

  • 列0を次のように定義し、その中にWidth="*"入れますTextBlock
  • 列 1 をWidth="Auto"put your Buttonin it として定義します。
于 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 に答える