WPF - 使用调整大小调整窗口内的控件

JTo*_*and 4 c# wpf grid layout

所以我对WPF很新,我在使用Window的布局时遇到了麻烦.目前我有一个WPF应用程序,其中Grid定义如下:

    <Grid.RowDefinitions>
        <RowDefinition Height="23" />
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto"/>
        <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>
Run Code Online (Sandbox Code Playgroud)

在最上面一行,跨越两列,我有一个菜单.在第二行中,我在第一列中有一些标签,在第二列中有一个Image和一个WindowsFormsHost,最后,在第三行中,我在第二列中有一个图形控件.默认情况下,我将Image和WFH的大小设置为570 x 413.现在,我希望在调整Window的大小时,Image和WFH都会扩展,以便它们保持相同的(相对于Window)大小.(我实际上也希望同样的情况发生在我的图形控件上,但如果我能得到其他的话,我可能会想出那个.我不能为我的生活找出我需要打开/关闭的设置或者我可能需要绑定或其他任何东西才能实现这一点.非常感谢任何帮助!

谢谢!

jsm*_*ith 7

你有没有尝试过:

<RowDefinition Height="*" />
Run Code Online (Sandbox Code Playgroud)

确保在图像或控件中指定Grid.Row,但不要对控件的高度/宽度属性进行签名.控件应该通过扩展自动调整大小.

更新

做了快速测试,以确保这是有效的.

<Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="23"/>
            <RowDefinition Height="*"/>
            <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>

        <Label Grid.Row="0" Content="Example"/>
        <Image Grid.Row="1" Source="c:\Example.jpg"/>
        <Label Grid.Row="2" Content="Example2"/>
    </Grid>
Run Code Online (Sandbox Code Playgroud)

图像根据图像的比例随应用程序扩展.它确实扩展了,但它保持了它的尺寸以及视图中的完整图像.如果您要将行定义从*****更改为自动,您会注意到图像将会展开,但它会扩展到您的视图之外.这意味着你不会总是看到完整的图像.

我建议像上面那样制作一个简单的应用程序,并使用约束来弄清楚每个人的作用.