我创建了一个数据网格并将其放在WPF表单中的一个位置。
现在我要做的是让datagrid改变其大小,保持与原始位置相同的比例,WPF窗口改变大小(希望这是有意义的)。
我已尝试将自动延伸设为真,但这并没有帮助。
答案 0 :(得分:2)
我的办公室里有我的计算机和Visual Studio,所以无法测试它:)但是如果你将对齐设置为拉伸,这不应该工作吗?
datagridObj.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch; datagridObj.VerticalAlignment = System.Windows.VerticalAlignment.Stretch;
答案 1 :(得分:2)
当然这是有道理的,但听起来你并不真正了解WPF布局系统是如何工作的,除非你这样做,否则将会非常痛苦。简而言之,你需要有一个合适的容器 - 我推荐Grid - 并将你的DataGrid放在那个容器中。然后你可以为DataGrid设置边距等,然后根据你的喜好放置它,如果它的宽度和高度设置为自动,它将与其父容器保持一致。
现在如果你在图片中有其他几个控件,当然它有点涉及,但我仍然建议保持网格并将它们分成你需要的许多行和列,然后为它们的高度设置适当的值/宽度 - 您可以将某些列固定为宽度或其他列的倍数,或将它们保留为自动,它们将占用剩余的空间。
当然,这个主题涉及得更多,但您可以在MSDN上找到快速入门:http://msdn.microsoft.com/en-us/library/ms745058.aspx
如果你只记得一件事,它应该是这样的:网格代表WPF中的流畅布局,尽可能多地使用它们而不是画布。当然StackPanel和DockPanel等都有自己的特定用途。
P.S。视觉工作室设计师通常会做一些乱七八糟的事情,通过设置边距等使拖放变得更加直观,你应该密切关注它修改的属性,看看你是不是更好地手动定位东西一旦勾勒出布局,通过修改XAML(通常是这样)。
答案 2 :(得分:0)
就像例子一样
<Window x:Class=""
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<DataGrid Margin="162,57,141,54"/>
</Grid>
</Window>
默认情况下,DataGrid
是
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
所以你只需要像 Arno Saxena 告诉你的保证金