69

WPFのコンポーネントに使用可能なスペースの100%を使用する ように指示する方法はありますか?

好き

width: 100%;  

CSSで

このXAMLを持っていますが、グリッドに100%の幅を強制する方法がわかりません。

<ListBox Name="lstConnections">
  <ListBox.ItemTemplate>
    <DataTemplate>
      <Grid Background="LightPink">
        <Grid.ColumnDefinitions>
          <ColumnDefinition Width="Auto"/>
          <ColumnDefinition Width="Auto"/>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
          <RowDefinition Height="Auto"/>
          <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>
        <TextBlock Grid.Row="0" Grid.Column="0" Text="{Binding Path=User}" Margin="4"></TextBlock>
        <TextBlock Grid.Row="0" Grid.Column="1" Text="{Binding Path=Password}" Margin="4"></TextBlock>
        <TextBlock Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" Text="{Binding Path=Host}" Margin="4"></TextBlock>
      </Grid>
    </DataTemplate>
  </ListBox.ItemTemplate>
</ListBox>

結果は次のようになります

代替テキストhttp://foto.darth.cz/pictures/wpf_width.jpg

ピンクにしたので、どれだけのスペースが必要かは明らかです。ピンクのグリッドを100%幅にする必要があります。

4

2 に答える 2

88

Gridその幅に押し付けているのはのコンテナです。この場合、ListBoxItemこれはデフォルトで左揃えになっています。次のようにストレッチするように設定できます。

<ListBox>
    <!-- other XAML omitted, you just need to add the following bit -->
    <ListBox.ItemContainerStyle>
        <Style TargetType="ListBoxItem">
            <Setter Property="HorizontalAlignment" Value="Stretch"/>
        </Style>
    </ListBox.ItemContainerStyle>
</ListBox>
于 2009-04-24T20:26:57.070 に答える
63

HorizontalContentAlignment="Stretch"次のように使用できます。

<ListBox HorizontalContentAlignment="Stretch"/>
于 2013-06-10T22:58:59.607 に答える