我喜欢像Mac NSOutlineView一样设置TreeView样式。
http://s3.amazonaws.com/cocoacontrols_production/osx_screens/44/full.png?1299027729
关键特征是:
我相信我可以追踪2和3,但无法找到与1号相关的任何内容。
似乎我真的无法做到,但我会玩Blend。是否没有代码访问绘图?像这里是一个盒子替换行绘图代码?我刚刚在wxPython中使用AGW的纯python HyperTreeList制作了一个原型,看起来相同,但遗憾的是拖放有严重的图形/刷新问题。
答案 0 :(得分:1)
我刚刚在Mongoose存储库上推送了一个TreeViewItem样式,可以满足您的需求。
您可以在此处找到它:StretchedTreeViewItemControlTemplate
以下是示例代码:
<TreeView ItemContainerStyle="{StaticResource StretchedTreeViewItemControlTemplate}">
<TreeViewItem Header="Item 1">
<TreeViewItem Header="Item 1.1">
<TreeViewItem.Style>
<Style BasedOn="{StaticResource StretchedTreeViewItemControlTemplate}" TargetType="{x:Type TreeViewItem}">
<Setter Property="FontSize" Value="15" />
</Style>
</TreeViewItem.Style>
</TreeViewItem>
</TreeViewItem>
<TreeViewItem Header="Item 2" Background="AntiqueWhite" />
</TreeView>
答案 1 :(得分:0)
ItemsControl.ItemContainerStyle会合适吗? http://msdn.microsoft.com/fr-fr/library/system.windows.controls.itemscontrol.itemcontainerstyle(v=vs.85).aspx
Blend下的快速测试带来了以下内容:
对于父母:
对于孩子:
请注意,它不均匀,看起来不太好。
有人可能会问为什么不将它拉到左边界?我想这是不可能的(从我在Blend上看到的),除非你重新创建大部分模板。 如果它们的选择器左侧将对齐到相同的水平值,这肯定会破坏项目之间的分层外观。
现在另一件事是,即使你这样做(按照你的要求),扩展器三角形也会丢失在一堆蓝色......我认为糟糕的用户体验中。
最后,您的控件看起来更像是ListBox而不是TreeView。
无论如何,这是程序(我编辑了TreeView的ItemContainerStyleTemplate)
(抱歉没读好你的上一条评论,最后我的结果非常像你的)
Blend中的位置: