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)大小.(我实际上也希望同样的情况发生在我的图形控件上,但如果我能得到其他的话,我可能会想出那个.我不能为我的生活找出我需要打开/关闭的设置或者我可能需要绑定或其他任何东西才能实现这一点.非常感谢任何帮助!
谢谢!
你有没有尝试过:
<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)
图像根据图像的比例随应用程序扩展.它确实扩展了,但它保持了它的尺寸以及视图中的完整图像.如果您要将行定义从*****更改为自动,您会注意到图像将会展开,但它会扩展到您的视图之外.这意味着你不会总是看到完整的图像.
我建议像上面那样制作一个简单的应用程序,并使用约束来弄清楚每个人的作用.