2010-01-20 70 views
2

我對WPF很新穎。我經常發現我的自我與得到了一堆的子控件相結合的寬度,以匹配特定父容器掙扎。作爲在以下幾點:子控件的寬度應該與父容器的寬度匹配

<ListBox x:Name="BrugereListBox" Grid.Column="0" Grid.Row="3" DataContext="{DynamicResource Brugere}" 
      ItemsSource="{Binding}" 
      PreviewMouseLeftButtonDown="BrugereListBox_MouseLeftButtonDown" 
      PreviewMouseMove="BrugereListBox_PreviewMouseMove" 
      > 
     <ListBox.ItemTemplate > 
      <DataTemplate > 
       <Border BorderBrush="Black" BorderThickness="1" Margin="2"> 
        <StackPanel Orientation="Vertical" IsEnabled="True" 
           PreviewMouseLeftButtonDown="StackPanel_PreviewMouseLeftButtonDown"> 
         <StackPanel Orientation="Horizontal" > 
          <Label>Navn</Label> 
          <TextBox Text="{Binding Name}"></TextBox> 
         </StackPanel> 
         <StackPanel Orientation="Horizontal"> 
          <Label>Password</Label> 
          <TextBox Text="{Binding Password}"></TextBox> 
         </StackPanel> 
         <StackPanel Orientation="Horizontal"> 
          <Label>Email</Label> 
          <TextBox Text="{Binding Email}"></TextBox> 
         </StackPanel> 
        </StackPanel> 
       </Border> 
      </DataTemplate> 
     </ListBox.ItemTemplate> 
    </ListBox> 

在這種情況下,我感興趣的是得到的孩子的寬度所述的StackPanel:

<StackPanel Orientation="Horizontal" > 
         <Label>Navn</Label> 
         <TextBox Text="{Binding Name}"></TextBox> 
        </StackPanel> 

到的

<ListBox x:Name="BrugereListBox" 

任何通用的解決方案的寬度相匹配這樣的場景?

+0

可能重複的[wpf邊框控件以跨越listboxItem的寬度](http://stackoverflow.com/questions/460812/wpf-border-control-to-span-the-width-of-listboxitem) – Dzyann 2015-08-19 19:56:02

回答

5

原來是愚弄的人:給定有

wpf border control to span the width of listboxItem

和答案:

這可能是更多地與 ListBoxItems自己不佔 全ListBox的寬度。添加 Horizo​​ntalContentAlignment =「拉伸」 屬性到您的列表框,看看它是否將 延伸到單個項目 填充寬度。

所以更改爲:

<ListBox x:Name="BrugereListBox" Grid.Column="0" Grid.Row="3" DataContext="{DynamicResource Brugere}" 
      ItemsSource="{Binding}" 
      PreviewMouseLeftButtonDown="BrugereListBox_MouseLeftButtonDown" 
      PreviewMouseMove="BrugereListBox_PreviewMouseMove" 
      HorizontalContentAlignment="Stretch" 
      > 

但作爲肯特說,使用電網將在我看來更好。

5

使用右側面板,你會沒事的。 StackPanel根據其方向和子女自行決定其寬度/高度。使用Grid,它將佔用它給出的空間 - 不多也不少。