2016-09-11 17 views
0

以下の例では、ListViewコントロールは親コンテナRelativePanelの幅を認識します。デザイナでレイアウトを見ると、ListViewがRelativePanelの全幅に塗りつぶしていることが明らかです。ただし、DataTemplate内のRelativePanelも親の幅を入力するよう求めていますが、「左揃え」と「右揃え」は無視されます。親コンテナのサイズを認識させる方法が見つからないようです。UWP DataTemplateのListViewのサイズ設定を使用するにはどうすればよいですか?

ここにご意見をお寄せください。 ListViewItemHorizontalContentAlignmentの値がLeftであるためである

  <RelativePanel RelativePanel.AlignLeftWithPanel="True" 
          RelativePanel.AlignRightWithPanel="True"> 
       <ListView Name="LstOrders" ItemsSource="{x:Bind Vm.OrdersList, Mode=OneWay}" 
          SelectionMode="None" 
          RelativePanel.AlignLeftWithPanel="True" 
          RelativePanel.AlignRightWithPanel="True" 
          Margin="0,5,0,0"> 
        <ListView.ItemTemplate> 
         <DataTemplate x:DataType="genericOrder:OrderThumbnailVm"> 
          <RelativePanel Name="PanelThumbnail" Margin="0,0,20,0"> 
           <RelativePanel Name="PanelOrderDetails" 
               Background="BlueViolet" 
               RelativePanel.AlignLeftWithPanel="True" 
               RelativePanel.AlignRightWithPanel="True"> 
            <TextBlock Text="{x:Bind Name}" Margin="8,0,0,0" VerticalAlignment="Center" 
               Foreground="{x:Bind Deleted, Mode=OneWay, Converter={StaticResource DeletedColor}}" 
               TextWrapping="WrapWholeWords" 
               RelativePanel.AlignLeftWithPanel="True" 
               RelativePanel.LeftOf="BtnDeleteRestore"/> 
            <Button Name="BtnDeleteRestore" 
              Content="{x:Bind DisplayDelete, Mode=OneWay}" 
              Click="{x:Bind DeleteOrder}" 
              RelativePanel.AlignRightWithPanel="True" 
              FontSize="10" 
              Height="20" 
              Padding="0" 
              Visibility="{x:Bind ShowDeleteButton, Mode=OneWay, Converter={StaticResource BoolToVisibilityConverter}}"/> 
           </RelativePanel> 
          </RelativePanel> 
         </DataTemplate> 
        </ListView.ItemTemplate> 
       </ListView> 
      </RelativePanel> 

答えて

2

、我々はそれを無効にし、それStretchにする必要があります。 ListViewItem styles and templatesで見つけることができます。私が言ったように、この問題を解決するための

、我々はこのような例のために、そのスタイルをオーバーライドする必要があります:

<ListView> 
     <ListView.ItemContainerStyle> 
      <Style TargetType="ListViewItem"> 
       <Setter Property="HorizontalContentAlignment" Value="Stretch" /> 
      </Style> 
     </ListView.ItemContainerStyle> 
     <ListView.ItemTemplate> 
      <DataTemplate > 
       <RelativePanel> 
        ... 
       </RelativePanel> 
      </DataTemplate> 
     </ListView.ItemTemplate> 
</ListView> 
+0

ブリリアント!魅力的な作品!私はコンテナスタイルを設定しようとしている以外はすべてを試しています。 –

関連する問題