默认ItemsPanel
of a TreeView
is a StackPanel
具有默认方向Vertical
。我改变了方向StackPanel
to Horizontal
:
<controls:TreeView>
<controls:TreeView.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</controls:TreeView.ItemsPanel>
<controls:TreeViewItem Header="Root" IsExpanded="True">
<controls:TreeViewItem Header="Alfa"/>
<controls:TreeViewItem Header="Beta"/>
<controls:TreeViewItem Header="Gamma"/>
</controls:TreeViewItem>
</controls:TreeView>
我希望树中的从属项目水平堆叠而不是垂直堆叠,但是当我交换方向时,我看不到明显的变化Vertical
to Horizontal
然后再回来。为什么不Orientation
of the StackPanel
影响项目中的布局ItemsPresenter
?
杰夫·威尔科克斯的评论让我思考,我明白了我做错了什么。我正在修改ItemsPanel
of the TreeView
,但为了实现我想要的,我必须修改ItemsPanel
of the TreeViewItem
:
<controls:TreeView>
<controls:TreeView.ItemContainerStyle>
<Style TargetType="controls:TreeViewItem">
<Setter Property="ItemsPanel">
<Setter.Value>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</Setter.Value>
</Setter>
</Style>
</controls:TreeView.ItemContainerStyle>
<controls:TreeViewItem Header="Root" IsExpanded="True">
<controls:TreeViewItem Header="Alfa"/>
<controls:TreeViewItem Header="Beta"/>
<controls:TreeViewItem Header="Gamma"/>
</controls:TreeViewItem>
</controls:TreeView>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)