具有类似 Outlook 2013 邮件列表样式的 WPF 数据网格



我是WPF的新手。我想设计一个类似于 Outlook 2013 中的邮件列表的数据网格,具有相同的样式和功能。

在 Outlook 2013 中,Datagrid 模板在其宽度减小时更改,并在展开时变为一种衬垫类型的模式。

我尝试使用两个单独的 Datagrid 控件实现此行为(一次只有一个控件可见),但是,我遇到了很多问题。一个网格中发生的变化必须反映在另一个网格上。我认为这是一种间接方法。我可以通过使用单个控件来实现这一点吗?

我不确定您是否熟悉Triggers,但是我建议您根据控件的width属性对Style应用Trigger,并按照您希望的方式更改其样式。

这里有一个非常好的教程,关于Josh Smith的TemplatesTriggers,你可以从中学习。事实上,如果您想了解有关 WPF 最佳做法的详细信息,请查看本教程的所有部分。

WPF 导览 – 第 4 部分(数据模板和触发器)

同时,由于您正在寻找一个范围而不是某个值的Trigger值,例如(伪)Trigger when ListView's width < 300,因此您需要在触发器中使用自定义转换器。

有关此类转换器的示例,请查看此问题

WPF 属性值大于特定数量时触发

最新更新