UWP控件高度设为自动时获取其高度
想要实现的东西布局
- 在一个大panel里面有俩个StackPanel,布局为垂直,上面的panel里面放入一个高度自动的TextBlock,下面则是一个高度自动的输入文本框TextBox,垂直居中。
- 当下面文本框输入文字时其高度自动变化,同时用回车键把这段文字赋值给上面的textblock,我呢但愿上面的panel包裹着这里面的textblock一同向上移动,使得底部与下面的panel始终相切。
遇到的问题spa
- 要移动上面的panel能够经过动态修改其margin来改变其位置,而其margin里面的Top值 = 大panel.Height - 上panel.Height - 下panel.Height - 下panel.Margin.Bottom;
- 大panel与下panel都是xaml里面设置的,而上panel是在下panel的回车键事件建立的,因此当上panel高度为自动高度时,上面的margin计算中获取到的上panel.Height值为NaN,也就没法获得上panel的margin的Top值。
解决方法事件
- 当一个控件高度设置为自动值时咱们不能直接获取它的高度值,能够考虑间接方法
- 例如这样——上panel.Height = 大panel.Height - 上panel.margin.top - 上panel.margin.bottom;
- 尽管margin.top与margin.bottom值也许不对,但计算所得的height值必定是正确的。
一点猜测~后台
- 那些高度设为Auto的控件的高度数值能够在其SizeChange事件发生时获取,这样利用全局变量就能够获取该控件的高度值
巨人的肩膀变量
- 想要使后台用C#设置动态建立的控件高度为Auto能够这样弄
- 控件名.Height = Double.NaN;
欢迎关注本站公众号,获取更多信息