【问题标题】:WPF Treeview with fullrow selection and animation具有全行选择和动画的 WPF Treeview
【发布时间】:2012-09-18 16:14:14
【问题描述】:

我想用 WPF Treeview 模仿 OSX-Mail 中的 Treeview-Control,但不知道如何开始。 在屏幕截图中,“MAILBOXES”和“SMART MAILBOXES”是文件夹。将鼠标悬停在每个文件夹上会淡入“显示”或“隐藏”按钮。单击该按钮会滑出子项(屏幕截图中的“收件箱”、“发送”和“今天”)。 如何使用 WPF 获得类似的东西?树视图是一个不错的选择吗?

非常感谢!

Screenshot

【问题讨论】:

    标签: wpf treeview


    【解决方案1】:

    StackOverflow 上通常不会回答此类一般性问题。我会试一试,但我只有时间提供您可以做什么的大纲。

    我的经验是不惜一切代价避免使用 TreeView。它只是不符合逻辑并且在搜索节点时它很昂贵。

    我认为您可以使用 ItemsControl 获得所需的行为,其中 ItemTemplateExpander 控件。 ItemsControl 绑定到代表您的文件夹的对象集合。

    然后您可以DataTemplate Expander 的标题来模拟悬停行为。标题将是两个 TextBlocks。一个用于识别扩展器,即“MAILBOXES”,另一个用于“显示”/“隐藏”标签。

    本质上,“显示”和“隐藏”是一个 TextBlock,其中文本由 DataTrigger 设置,该 DataTrigger 附加到 ExpanderIsExpanded 属性/强>。如果 IsExpanded 为 true,则将 Text 设置为“隐藏”,如果为 false,则将其设置为“显示”。

    然后对于位于每个文件夹中的其余项目,您可以将 ItemsControlListBox 放在 Expander 内。将 ItemsControlListBox ItemsSource 绑定到每个文件夹中的项目。然后,您可以使用相应的 ItemTemplate 来设计您选择的那些项目。

    【讨论】:

      猜你喜欢
      • 2010-11-12
      • 1970-01-01
      • 1970-01-01
      • 2011-08-23
      • 2011-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-05
      相关资源
      最近更新 更多