2009-04-24 32 views
55

Có cách nào để nói thành phần trong WPF để chiếm 100% không gian có sẵn không?Cách đặt chiều rộng thành 100% trong WPF

Giống như

width: 100%; 

trong CSS

Tôi đã có XAML này, và tôi không biết làm thế nào để buộc Lưới phải giành lấy 100% chiều rộng.

<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> 

quả trông giống như

alt text http://foto.darth.cz/pictures/wpf_width.jpg

tôi đã làm cho nó màu hồng vì vậy nó rõ ràng bao nhiêu không gian hiện nó đi. Tôi cần phải làm cho lưới màu hồng rộng 100%.

+0

Link là chết ... –

+0

@MartiniBianco Tôi xin lỗi, nhưng câu hỏi này là 8 tuổi . Tôi thậm chí không nhớ những gì có trong hình ảnh, và tôi cũng không sử dụng WPF kể từ đó. –

Trả lời

70

Đây là vùng chứa của Grid được đặt trên chiều rộng của nó. Trong trường hợp này, đó là ListBoxItem, được căn trái theo mặc định. Bạn có thể thiết lập nó để căng như sau:

<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> 
+8

Một lưu ý nhỏ - nếu bạn đang cố gắng làm điều này trong một cửa sổ ứng dụng cửa hàng, bạn phải thực sự thiết lập 'HorizontalContentAlignment' bằng cách sử dụng phương pháp tương tự như trên – roryok

+0

HorizontalContentAlignment làm việc cho tôi cũng – Skychan

43

Bạn có thể sử dụng HorizontalContentAlignment="Stretch" như sau:

<ListBox HorizontalContentAlignment="Stretch"/> 
Các vấn đề liên quan