我有一个由矩形和一些动态创建的标签组成的复合控件(动态,因为在设计时我不知道应该显示多少个标签)。标签的位置(边距)在运行时通过组合整个控件大小,通过依赖属性传递的附加集合以及标签本身的高度来评估。
不幸的是,在呈现标签高度之前,我没有采用确定性的方法来确定标签高度。显示标签前ActualWidth
和ActualHeight
为0,未设置宽度/高度,因为我希望标签根据其内容调整大小,DesiredSize
返回0,正确大小或大小超过实际标签大小(如2或3次),RenderSize
返回有效大小或0,它就像第一个标签返回有效大小和第二个 - 0.0,没有任何明显的原因。
我尝试在标签上调用Measure()
,其中double.PositiveInfinity仅传递到达情境,当DesiredSize
大于预期时(所有标签都具有相同的字体且只包含数字) ,所以它们都有相似的大小,但是第一个有~16个像素,第二个~~ 36,但是在渲染之后,RenderSize
对它们都有效。
是否有确定性方法来检查所需的控件大小,仅基于其内容(而不是对齐/边距)之前在屏幕上呈现?