fsl*_*fsl 2 wpf controls parent width
我对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>
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我有兴趣获得stackpanel的子节点的宽度:
<StackPanel Orientation="Horizontal" >
<Label>Navn</Label>
<TextBox Text="{Binding Name}"></TextBox>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)
匹配的宽度
<ListBox x:Name="BrugereListBox"
Run Code Online (Sandbox Code Playgroud)
像这样的场景的任何通用解决方案?
原来是一个骗子:
并给出了答案:
这可能更多地与ListBoxItems本身没有占用ListBox的整个宽度有关.将HorizontalContentAlignment ="Stretch"属性添加到ListBox,并查看它是否拉伸各个项目以填充宽度.
所以改为:
<ListBox x:Name="BrugereListBox" Grid.Column="0" Grid.Row="3" DataContext="{DynamicResource Brugere}"
ItemsSource="{Binding}"
PreviewMouseLeftButtonDown="BrugereListBox_MouseLeftButtonDown"
PreviewMouseMove="BrugereListBox_PreviewMouseMove"
HorizontalContentAlignment="Stretch"
>
Run Code Online (Sandbox Code Playgroud)
但肯特说,在我看来,使用网格会更好.
归档时间: |
|
查看次数: |
20679 次 |
最近记录: |