我制作了一个可以包含多个孩子(UIElement
s)的控件(看起来像一个网格)。我用代码测量和安排整个布局。现在,其中一些元素在 xaml 中定义了宽度,而有些则没有。
如果元素具有固定宽度或应该使用整个可用宽度,我如何在 measureOverride/arrangeoverride 中知道?
示例 XAML:
<MyControl>
<TextBox x:Name="TextA" Text="TextFixed" Width="10"/>
<TextBox x:Name="TextB" Text="TextStretch"/>
</MyControl>
在 uielement.Measure() 之后的 MeasureOverride 方法中,大小是该元素所需的最小大小。我不知道如何查看何时应该计算“TextB”的可用宽度......
更新:
在 MeasureOverride() 中,两个元素都有 HorizontalAlignment 'Stretch',并且在 uiElement.Measure(availableSize) 之后都有 DesiredSize.Width。该宽度是它需要的最小宽度。有了这些信息,我无法知道这两个元素中的哪一个应该被拉伸。