2010-01-20 91 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,它将占用它给出的空间 - 不多也不少。

相关问题