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