gpt4 book ai didi

wpf - 使 TreeView.ItemsPanel 成为 Canvas

转载 作者:行者123 更新时间:2023-12-04 05:56:02 26 4
gpt4 key购买 nike

我正在寻找一种方法来制作我的 TreeViewCanvas 中显示项目控制板。

<TreeView>
<TreeView.ItemsPanel>
<ItemsPanelTemplate>
<Canvas IsItemsHost="True"/>
</ItemsPanelTemplate>
</TreeView.ItemsPanel>
<TreeViewItem Header="Root" IsExpanded="True" Canvas.Left="50" Canvas.Top="20">
<TreeViewItem Header="Alpha" Canvas.Left="10" Canvas.Top="50">
<TreeViewItem Header="Sub"/>
</TreeViewItem>
<TreeViewItem Header="Beta"/>
<TreeViewItem Header="Gamma"/>
</TreeViewItem>
</TreeView>

这个解决方案允许我在 Root TreeViewItem 周围移动,但我想要 TreeView 中的每一项尊重 Canvas附加属性。我的意思是,当 Root {Left = 50, Top = 10} (到这里它有效)包含 Alpha {Left = 0, Top=0} 时,Root 将在 [50,10] 和 Alpha 在 [0,0 ] (坐标绝对到 Canvas )。

之所以只有Root TreeViewItem正确的地方是,我使用 TreeView.ItemsPanel .我觉得我应该使用 TreeView.ItemContainerStyle相反,但我真的不知道如何。

当然,任何帮助都值得赞赏,最好结合 HierarchicalDataTemplate也是如此_我知道如何将解决方案与 Binding 联系起来.

最佳答案

TreeViewItems布置自己的 child ,他们每个人都有自己的面板,因此您需要更改TreeView 上的 Canvas 和物品。为此,应用改变面板的样式,通过资源或 ItemContainerStyle 隐式地改变面板。 .

<Style TargetType="TreeViewItem">
<Setter Property="ItemsPanel">
<Setter.Value>
<TreeViewItem.ItemsPanel>
<ItemsPanelTemplate>
<Canvas />
</ItemsPanelTemplate>
</TreeViewItem.ItemsPanel>
</Setter.Value>
</Setter>
</Style>

关于wpf - 使 TreeView.ItemsPanel 成为 Canvas ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9503928/

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