【发布时间】:2017-02-03 12:31:05
【问题描述】:
我有一个控件,它的位置和大小取决于可以在运行时更改的属性值。它的宽度或高度都可以通过水平/垂直对齐设置为“拉伸”。
我有一个场景,我首先处于一种模式,我希望它垂直拉伸。我在后面的代码中手动设置了宽度,并将 VerticalAlignment 设置为 Stretch。然后属性得到更新,我想明确设置高度并将 HorizontalAlignment 设置为 Stretch。
我什至添加了调用
this.InvalidateMeasure();
this.InvalidateArrange();
属性更改后,但似乎不起作用。例如,在将高度设置为一个数字之后,它不会像我想要的那样被覆盖。
MSDN page 声明:
当在元素上显式设置 Height 和 Width 属性时,这些测量值在布局期间具有更高的优先级,并将取消将 HorizontalAlignment 设置为 Stretch 的典型效果。
那么如何“取消设置”控件的宽度/高度属性呢?
【问题讨论】: