0

问题是根据 WPF:当我最大化我的窗口时,控件不会调整大小,这是没有答案的。

我有一个带有一些控件的 WPF 表单,这些控件至少绑定到表单的两个边缘。我已经向 sizechanged 事件添加了代码,该事件将控件的大小调整为表单大小的比率。该代码运行良好,并且当通过拖动控件正确调整大小来调整窗体大小时。

当窗体最大化时,控件不会调整大小,垂直保存在附加到窗口顶部和底部的控件上。

我已经向 statechanged 事件添加了类似的代码,但这没有任何作用。我尝试过直线TextBox1.Width = 300;,但是一旦最大化,这并不会改变尺寸。

理想情况下,我想要说 TextBox1.Width = Window.width/3; TextBox1.Margin = My_Margin;Where My_Margin 将左边距设置为 1/3 Window.Width。这样文本框就占据了窗口的中央三分之一。

编辑:我知道 GRID 方法是从项目开始的方式。在这个阶段我可以在 c# 中做一个解决方法,而不必重新设计表单吗?

编辑:已接受最佳答案,尽管它没有回答实际问题,因为它看起来是我唯一的选择。我知道一旦表单最大化,有一种方法可以调整控件的大小,我没有时间找到它,也没有提出好的建议。

4

1 回答 1

3

使用网格,定义列(及其宽度)和行,并使用 Grid.Row 和 Grid.Column 属性放置文本框。同样在 WPF 网格中,宽度和高度的 * 表示按比例调整大小。因此,例如,如果您有 2 列定义为这些列

<Grid.ColumnDefinitions>
     <ColumnDefinition Width="1*"></ColumnDefinition>
     <ColumnDefinition Width="9*"></ColumnDefinition>
</Grid.ColumnDefinitions>

您对 wpf 说,第一列将占据总可用宽度的 10%,而第二列将占据 90%。

于 2017-11-15T13:55:46.047 回答