网格未调整为通过ArrangeOverride

时间:2016-10-14 03:42:22

标签: c# .net wpf xaml

我在自定义网格面板中包含2个网格,如下所示:

<ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto">

    <!-- Width and Height of this grid are bound to ScrollViewer's ViewportWidth/Height -->
    <CustomGrid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="4*" />
            <ColumnDefinition Width="*" MinWidth="300"/>
        </Grid.ColumnDefinitions>

        <Grid x:Name="ProblematicGrid" Grid.Column="0" MinWidth="500">
            <!-- This grid has 5 star-sized columns with MinWidths that sum up to 500 -->
        </Grid>

        <Grid x:Name="OtherGrid" Grid.Column="1" />
    </CustomGrid>

</ScrollViewer>

CustomGrid只是我为诊断目的编写的自定义面板。它继承Grid并覆盖MeasureOverrideArrangeOverride。在ArrangeOverride中,它将硬编码值500和300分别传递给 ProblematicGrid OtherGrid

我所看到的行为是:

  • 当我运行包含此UserControl且初始窗口大小小于800的应用程序时, ProblematicGrid OtherGrid 呈现各自的{{ 1}}秒。

  • 如果我展开应用程序然后再将其缩小, ProblematicGrid MinWidth永远不会回到其ActualWidth 500,即使它直接在MinWidth的{​​{1}}传递给它。

我的问题是为什么会发生这种情况?我错过了什么或做错了什么?

0 个答案:

没有答案