C# 水平调整大小时具有动态方向的WPF Treeview
从初始视图可以这样做吗: 校长1C# 水平调整大小时具有动态方向的WPF Treeview,c#,wpf,treeview,C#,Wpf,Treeview,从初始视图可以这样做吗: 校长1 项目1 项目2 项目3 校长2 项目1 项目2 水平调整窗口大小时,项目也会从垂直调整为水平: 校长1 项目1-项目2 项目3 校长2 项目1-项目2 后续项目将根据窗口大小移动到下一个水平位置。也就是说,如果全屏显示,所有项目都水平排列,多余的项目将显示在下一行。 示例: 校长3 -项目1-项目2-项目3-项目4 -项目11-项目12-项目13 如果可能,如何做到这一点?谢谢 根据您的描述,我猜您希望显示分层数据,因此我使用带有静态项的Tree
- 项目1
- 项目2
- 项目3
- 项目1
- 项目2
- 项目1-项目2
- 项目3
- 项目1-项目2
示例:
校长3
-项目1-项目2-项目3-项目4
-项目11-项目12-项目13
如果可能,如何做到这一点?谢谢 根据您的描述,我猜您希望显示分层数据,因此我使用带有静态项的
TreeView
来演示如何执行此操作,但对于动态数据也是如此
<TreeView ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}" BasedOn="{StaticResource {x:Type TreeViewItem}}">
<Setter Property="ItemsPanel">
<Setter.Value>
<ItemsPanelTemplate>
<WrapPanel/>
</ItemsPanelTemplate>
</Setter.Value>
</Setter>
</Style>
</TreeView.ItemContainerStyle>
<TreeViewItem Header="Header 1">
<TreeViewItem Header="Item 1"/>
<TreeViewItem Header="Item 2"/>
<TreeViewItem Header="Item 3"/>
</TreeViewItem>
<TreeViewItem Header="Header 2">
<TreeViewItem Header="Item 1"/>
<TreeViewItem Header="Item 2"/>
</TreeViewItem>
</TreeView>
这项工作的关键是使用TreeViewItem
s的asItemsPanel
。如果项目超出可用空间,包裹面板将在下一行中放置项目
将子元素按从左到右的顺序放置,将内容打断到包含框边缘的下一行
ItemContainerTemplate
将此面板应用于所有treevieItem
s。禁用水平滚动是必要的,因为否则项目将获得所需的最大空间(以正无穷大度量),因此项目将不会包装。我不会将WrapPanel
分配给TreeView
本身,因为这也会包装标题
当然,您可以使用除
TreeView
之外的其他控件,但概念是相同的。是的。你真的想问一个肯定/否定的问题吗?请签出问题。那家伙回答说这是怎么做到的。谢谢那个家伙!