对于这种情况,让我们显示一封有关发件人,主题和正文的电子邮件的简短信息。
我构建了两个不同的DataTemplate
:一个显示发件人和主题,另一个显示发件人,主题和身体的前3个非空行。
问:如何根据WPF可提供的屏幕数量选择数据模板?如果这不是正确的方法,我如何根据可用的大小显示短版本视觉表示与长版本视觉表示?
我做了什么:我和DataTemplateSelector
一起玩,但没有找到达到目标的方法。选择器似乎只根据数据本身运行。
我创建了一个控件来显示电子邮件并覆盖了Measure(size)
和Arrange(size)
。在Measure(size)
我可以做:
res1 = base.Measure(infSize); // non-restricted size
res2 = base.Measure(size);
我知道res2是否小于res1,这意味着我需要渲染短版本的视觉表示;但是我现在卡住了......