上下文:
我正在尝试使用Microsoft Prism guidelines构建表单。
我有两个用户控件注入表单。 该表单包含两个面板,表示将容纳用户控件的容器。
用户控件在运行时通过DI获取注入(我使用MVP模式,类似于MVVM,但为Winforms进行了调整)。
表单具有默认的最小大小,但未指定最大大小。调整表单大小的唯一方法是使其全屏显示。它将AutoSize属性设置为TRUE,AutoSizeMode设置为GrowAndShrink
两个用户控件都将AutoSize设置为TRUE。 用户控件中的所有容器都将AutoSize属性设置为TRUE,DOCK设置为FILL,AutoSizeMode = GrowAndShrink。未设置控件的最大大小。
表单内的面板堆叠在一起,并将Anchor属性设置为:TOP,LEFT,RIGHT,分别为:BOTTOM,LEFT,RIGHT。
问题:
在将表单调整为全屏时,我希望用户控件可以扩展以填充整个屏幕。
这种情况没有发生。
用户控件的大小不会改变,我无法找出原因。
感谢。
更新
如果我将窗体内面板的DOCK属性分别更改为TOP FILL,面板将调整大小,但面板内的用户控件保持不变。
答案 0 :(得分:1)
将面板中控件的Dock
也设置为Fill
。
答案 1 :(得分:0)
忘记在你的控件上设置Dock和AutoSizeMode - 只需使用Anchor,你会发现它工作得很好。
我从不使用AutoSize = true
。我总是在false
处得到它(事实上,我必须检查一些表单,以验证我的表单上的控件上是否存在AutoSize
和AutoSizeMode
属性。)< / p>
在你描述的场景中,我将Anchor设置为Top,Left,Bottom,Right,两者都包含在面板和控件中。