【发布时间】:2018-11-29 02:41:51
【问题描述】:
我的目标是将第 3 个包装器放在第 2 个包装器下面。对于这个布局,我混合使用了停靠面板 + 堆栈面板。
- 第一个包装器是标签的堆栈面板
- 第二个包装器是以停靠面板为模板的项目控件(成员列表)
- 第三个包装器是以停靠面板为模板的项目控件(每个成员地址的嵌套列表)
查看
<Grid>
<ScrollViewer HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Visible">
<DockPanel>
<StackPanel DockPanel.Dock="Top" Orientation="Horizontal">
<Label Style="{StaticResource MinWidthLeft}" Content="Typ Adresu"/>
<Label Style="{StaticResource MinWidthLeft}" Content="Imie"/>
<Label Style="{StaticResource MinWidthLeft}" Content="Nazwisko"/>
<Label Style="{StaticResource MinWidthLeft}" Content="Nazwa Firmy"/>
<Label Style="{StaticResource MinWidthLeft}" Content="NIP"/>
<Label Style="{StaticResource MinWidthLeft}" Content="REGON"/>
<Label Style="{StaticResource MinWidthLeft}" Content="Ulica"/>
<Label Style="{StaticResource MinWidthLeft}" Content="Adres"/>
<Label Style="{StaticResource MinWidthLeft}" Content="Kod pocztowy"/>
<Label Style="{StaticResource MinWidthLeft}" Content="Miasto"/>
<Label Style="{StaticResource MinWidthLeft}" Content="Kraj"/>
<Label Style="{StaticResource MinWidthLeft}" Content="Dodatkowe informacje"/>
</StackPanel>
<ItemsControl ItemsSource = "{Binding listContractorAddAddress}" >
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel DockPanel.Dock="Top" Orientation="Horizontal">
<Button Style="{StaticResource MinWidth}" Content="Dodaj Adres" Command="{Binding Path=AddAddress}"/>
<TextBlock Style="{StaticResource MinWidth}" Text="{Binding Member.Login}"/>
<TextBlock Style="{StaticResource MinWidth}" Text="{Binding Member.Email}"/>
<ItemsControl ItemsSource = "{Binding Addresses}" >
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel DockPanel.Dock="Top" Orientation="Horizontal">
<Button Style="{StaticResource MinWidth}" Content="Edytuj" Command="{Binding Path=EditAddress}"/>
<TextBlock Style="{StaticResource MinWidthLeft}" Text="{Binding MemberAddress.TypAdresu}"/>
<TextBlock Style="{StaticResource MinWidthLeft}" Text="{Binding MemberAddress.Imie}"/>
<TextBlock Style="{StaticResource MinWidthLeft}" Text="{Binding MemberAddress.Nazwisko}"/>
<TextBlock Style="{StaticResource MinWidthLeft}" Text="{Binding MemberAddress.NazwaFirmy}"/>
<TextBlock Style="{StaticResource MinWidthLeft}" Text="{Binding MemberAddress.NIP}"/>
<TextBlock Style="{StaticResource MinWidthLeft}" Text="{Binding MemberAddress.REGON}"/>
<TextBlock Style="{StaticResource MinWidthLeft}" Text="{Binding MemberAddress.Ulica}"/>
<TextBlock Style="{StaticResource MinWidthLeft}" Text="{Binding MemberAddress.Adres}"/>
<TextBlock Style="{StaticResource MinWidthLeft}" Text="{Binding MemberAddress.KodPocztowy}"/>
<TextBlock Style="{StaticResource MinWidthLeft}" Text="{Binding MemberAddress.Miasto}"/>
<TextBlock Style="{StaticResource MinWidthLeft}" Text="{Binding MemberAddress.Kraj}"/>
<TextBlock Style="{StaticResource MinWidthLeft}" Text="{Binding MemberAddress.DodatkoweInformacje}"/>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<!--<DockPanel/>-->
<StackPanel DockPanel.Dock="Top" Orientation="Vertical" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<!--<DockPanel/>-->
<StackPanel DockPanel.Dock="Top" Orientation="Vertical" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</DockPanel>
</ScrollViewer>
</Grid>
我花了很多时间,我尝试使用:
- 只有水平/垂直方向的堆栈面板(我做了 与使用停靠面板的布局相同)。
- 只有网格,但这对我有用 - 灾难和浪费时间 (我很难说我做错了什么,每一行都是 右侧而不是另一侧下方)
谢谢!
【问题讨论】:
-
不知道你想达到什么目的
标签: wpf stackpanel dockpanel