2

View として GridView を使用して ListView を使用しています。セル テンプレートで TextBlock を使用しています。テキストの配置を列ヘッダーと一致させたい - FindAncestor を使用した何らかのバインディングが含まれていると思いますが、これを機能させる方法がよくわかりません。他のものと一緒にテキスト ブロックをカスタム コントロールにラップすることを終了する可能性があり、カスタム コントロールに継承動作を含めたいので、繰り返し続ける必要はありません。

<GridViewColumn Width="140" Header="Creator">
  <GridViewColumn.HeaderContainerStyle>
    <Style TargetType="{x:Type GridViewColumnHeader}">
       <Setter Property="TextElement.FontSize" Value="11" />
       <Setter Property="HorizontalContentAlignment" Value="Right"/>
       <Setter Property="Height" Value="16" />
    </Style>
  </GridViewColumn.HeaderContainerStyle>
  <GridViewColumn.CellTemplate>
    <DataTemplate>
      <TextBlock Margin="-6, 0" TextAlignment="{Binding ??}" Text="{Binding Creator}"/>
    </DataTemplate>
 </GridViewColumn.CellTemplate>
<GridViewColumn>
4

1 に答える 1

0

Header と CellTemplate ContentAlignment を Stretch に設定する必要があるため、より多くのスペースを消費できます。

次に、TextAligmnent を Resource として設定し、それを参照できます。

例:

 <Window.Resources>
    <Style TargetType="ListViewItem">
      <Setter Property="HorizontalContentAlignment" Value="Stretch" />
    </Style>
    <Style TargetType="GridViewColumnHeader">
      <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter>
    </Style>
    <TextAlignment x:Key="myTextAlignment">Right</TextAlignment>
  </Window.Resources>

  <ListView>
      <ListViewItem>Value1</ListViewItem>
      <ListViewItem>Value2</ListViewItem>
      <ListViewItem>Value3</ListViewItem>
      <ListViewItem>Value4</ListViewItem>

      <ListView.View>
        <GridView>
            <GridViewColumn Width="100" Header="Creator">
            <GridViewColumn.HeaderTemplate>
              <DataTemplate>
                <TextBlock Text="Header" TextAlignment="{StaticResource myTextAlignment}"></TextBlock>
              </DataTemplate>
            </GridViewColumn.HeaderTemplate>
            <GridViewColumn.CellTemplate>
              <DataTemplate>
              <TextBlock TextAlignment="{StaticResource myTextAlignment}" Text="{Binding}"/>
              </DataTemplate>
            </GridViewColumn.CellTemplate>
          </GridViewColumn>
        </GridView>
      </ListView.View>
    </ListView>
于 2012-05-07T08:50:43.050 に答える