胡天戈,爱情公寓413,斗室96小时
关于desiredsize的介绍,可以查看最新微软文档对desiredsize的介绍
desiredsize,指的是元素在布局过程中计算所需要的大小。
通过调用方法measure计算得到desiredsize
1 element.measure(availablesize); 2 var desiredsize = element.desiredsize;
desiredsize的几个概念:
如下是对desiredsize的宽高测试demo:
1 <window x:class="desiredsizetest.mainwindow" 2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 4 xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 5 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 6 xmlns:local="clr-namespace:desiredsizetest" 7 mc:ignorable="d" 8 title="mainwindow" height="300" width="500"> 9 <grid> 10 <button x:name="testbutton" width="100" height="30" margin="10,2" padding="2,1" verticalalignment="top" content="测试desiredsize" click="testbutton_onclick"></button> 11 </grid> 12 </window>
根据如上demo,可以得知此demo中,
desiredsize.width=width+水平方向margin值,
desiredsize.height=height+竖直方向margin值
所以如果只是获取控件的实际宽高,不应该通过desiredsize.width/height获取。
rendersize是布局结束后元素的大小,与actualheight、actualwidth类似。
所以,wpf布局时,先计算子元素的大小(desiredsize),然后再得到最终渲染后的父元素大小(rendersize)。
可以在onrender和getlayoutclip方法执行后,获取下最新的rendersize,确认是否预期结果。
关于rendersize的大小变化,可以监听事件onrendersizechanged
protected internal virtual void onrendersizechanged (system.windows.sizechangedinfo info);
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Blazor server side 自家的一些开源的, 实用型项目的进度之 CEF客户端
.NET IoC模式依赖反转(DIP)、控制反转(Ioc)、依赖注入(DI)
vue+.netcore可支持业务代码扩展的开发框架 VOL.Vue 2.0版本发布
网友评论