当窗口在.net中最大化时,如何调整控件(面板,网格)本身的大小

时间:2013-08-07 05:56:27

标签: c# wpf vb.net

我创建了一个小应用程序,我希望当我的窗口(WPF)最大化时,它的控件也会根据窗口大小调整大小。我试过这段代码 -

 If Me.WindowState = Windows.WindowState.Maximized Then
        Me.WindowState = Windows.WindowState.Normal
        Me.Width = 820
        Me.Height = 440
        Me.Grid1.Width = 780
        Me.Grid1.Height = 400
        Me.StackPanel1.Height = 360
        Me.StackPanel1.Width = 140
        Me.StackPanel2.Height = 360
        Me.StackPanel2.Width = 600
 Else If Me.WindowState = Windows.WindowState.Normal Then
        Me.WindowState = Windows.WindowState.Maximized
        'Me.Width = 1350
        'Me.Height = 600
        Me.Grid1.Width = 1300
        Me.Grid1.Height = 600
        Me.StackPanel1.Height = 460
        Me.StackPanel1.Width = 200
        Me.StackPanel2.Height = 460
        Me.StackPanel2.Width = 800

3 个答案:

答案 0 :(得分:1)

为什么你不能将控件包装在Grid中?使用*设置列宽和行高时,只要调整窗口大小,它就会更改列和行的大小。另外,控件应将Horizo​​ntalAlignment和VerticalAlignment设置为Stretch。

答案 1 :(得分:0)

您可以直接从XAML执行此操作:使用Horizo​​ntalAlignment / VerticalAlignment属性或在复杂情况下使用Binding to element的Width / Height。以下是我的项目中的示例:

<GroupBox .... Width="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=TreeView, AncestorLevel=1}, Path=ActualWidth}">

答案 2 :(得分:0)

你应该使用表格布局面板,并在里面控制你的控件!