Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 基于大小选择数据模板_Wpf_Datatemplate - Fatal编程技术网

Wpf 基于大小选择数据模板

Wpf 基于大小选择数据模板,wpf,datatemplate,Wpf,Datatemplate,在本例中,让我们显示有关电子邮件的简短信息,其中包含发件人、主题和正文 我构造了两个不同的数据模板:一个显示发送者和主题,另一个显示发送者、主题和正文的前3个非空行 问:我如何根据WPF能提供多少屏幕属性来选择数据模板?如果这不是正确的方法,我如何根据可用大小显示短版本视觉表示与长版本视觉表示 我所做的:我使用DataTemplateSelector,但没有找到达到目标的方法。选择器似乎仅基于数据本身进行操作 我创建了一个控件来显示电子邮件,并覆盖了Measuresize和Arrangesize

在本例中,让我们显示有关电子邮件的简短信息,其中包含发件人、主题和正文

我构造了两个不同的数据模板:一个显示发送者和主题,另一个显示发送者、主题和正文的前3个非空行

问:我如何根据WPF能提供多少屏幕属性来选择数据模板?如果这不是正确的方法,我如何根据可用大小显示短版本视觉表示与长版本视觉表示

我所做的:我使用DataTemplateSelector,但没有找到达到目标的方法。选择器似乎仅基于数据本身进行操作

我创建了一个控件来显示电子邮件,并覆盖了Measuresize和Arrangesize。在Measuresize中,我可以做到:

res1 = base.Measure(infSize); // non-restricted size
res2 = base.Measure(size);

我知道如果res2比res1小,这意味着我需要渲染短版本的视觉表示;但我现在陷入困境…

也许这篇文章正是您想要的:。是的,这段代码为解决问题指明了方向。