如何让用户控件正确地调整自己的大小



我很抱歉没有得到这个。但是,尽管我已经阅读了几篇关于measure pass和arrange pass的文章,并编写了一些小程序,我仍然很难做到这一点。

对我来说,任何用户控件都有一个"最小尺寸"(在此之后,唯一可能的解决方案是将其缩小为整个位图或添加滚动条)。它也将有一个方法来使用任何额外的屏幕空间给它。

省略号没有最小尺寸,可以折叠为0。

那么,考虑这个例子

<Grid>
    <StackPanel Orientation="Horizontal" Height="20">
        <Ellipse Fill="Blue"/>
        <Ellipse Fill="Green"/>
        <Ellipse Fill="BlueViolet"/>
    </StackPanel>
</Grid>

需要添加多少xaml代码才能达到以下效果:

  • 让他们强制一个"最小尺寸"的统一40。并动态调整大小。
  • 让他们强制一个"最小尺寸"的统一40。和动态调整不均匀的大小(这样他们可以拉伸非常宽,但永远不会低于40/40)。
  • 让他们强制一个最小的高度,但拉伸到可用的宽度。
  • 使它们均匀拉伸,以适应stackpanel的恒定高度。
  • 使stackpanel拉伸以填充其容器的动态高度。

谢谢。

在大多数情况下,您可能希望使用具有一列的UniformGrid而不是StackPanel。要强制大小使用Style设置MinHeightMinWidth。如果一致性保证是"单向的",你可以只将Width绑定到ActualHeight

相关内容

最新更新