gpt4 book ai didi

c# - 如何打破每个项目,但不是完整的根?

转载 作者:太空宇宙 更新时间:2023-11-03 15:46:13 28 4
gpt4 key购买 nike

我需要在 WPF (C#) 中有一个 Treeview,所有 TreeView-Items 都有垂直环绕。到目前为止,我已经将它用于根项:当控件的高度变小时,它们和它们的所有子项都会损坏。但是我想要一种行为,即子 TreeView-Items 也被破坏了。请看这些例子,因为它不容易用文字解释:

示例树:

rootitem1
child1
child2
rootitem2
child3
child4

如果控件的高度变小,Tree wrap 看起来像这样:

rootitem1    rootitem2
child1 child3
child2 child4

但我希望包装影响每一个项目,甚至 child ,所以树看起来像这样:

rootitem1        child4
child1
child2
rootitem2
child3

这是我的 XAML:

<Window x:Class="tv_test.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="150" Width="200">
<Grid>
<TreeView ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Disabled">
<!-- expand items -->
<TreeView.Resources>
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="IsExpanded" Value="True" />
</Style>
</TreeView.Resources>
<!-- example items -->
<TreeViewItem Header="rootitem1">
<TreeViewItem Header="child1"></TreeViewItem>
<TreeViewItem Header="child2"></TreeViewItem>
</TreeViewItem>
<TreeViewItem Header="rootitem2">
<TreeViewItem Header="child3"></TreeViewItem>
<TreeViewItem Header="child4"></TreeViewItem>
</TreeViewItem>
<!-- vertical wrap which should break every item, but actually only breaks root items -->
<TreeView.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Vertical" />
</ItemsPanelTemplate>
</TreeView.ItemsPanel>
</TreeView>
</Grid>
</Window>

最佳答案

这不是一个完整的解决方案,我认为您必须务实地按照您的意愿去做。

意思是这提供了一半的功能。

    <TreeView  ScrollViewer.VerticalScrollBarVisibility="Disabled">
<TreeView.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Vertical" />
</ItemsPanelTemplate>
</TreeView.ItemsPanel>

<!-- expand items -->
<TreeView.Resources>
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="IsExpanded" Value="True" />
</Style>
</TreeView.Resources>
<!-- example items -->
<TreeViewItem Header="rootitem1">
<TreeViewItem.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Vertical" />
</ItemsPanelTemplate>
</TreeViewItem.ItemsPanel>

<TreeViewItem Header="child1"></TreeViewItem>
<TreeViewItem Header="child2"></TreeViewItem>
</TreeViewItem>
<TreeViewItem Header="rootitem2">
<TreeViewItem.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Vertical" />
</ItemsPanelTemplate>
</TreeViewItem.ItemsPanel>

<TreeViewItem Header="child3"></TreeViewItem>
<TreeViewItem Header="child4"></TreeViewItem>
</TreeViewItem>

<!-- vertical wrap which should break every item, but actually only breaks root items -->

</TreeView>

关于c# - 如何打破每个项目,但不是完整的根?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28009452/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com