0

我创建了一个数据网格并将其放置在 WPF 表单中的某个位置。

现在我要做的是让数据网格改变它的大小,使其保持与原始位置相同的比例,同时 WPF 窗口改变大小(希望这是有道理的)。

我尝试将 autostretch 设置为 true,但这并没有帮助。

4

3 回答 3

2

在我的办公室里有我的电脑和 Visual Studio,所以无法测试它:) 但如果你将对齐设置为拉伸,这不应该工作吗?

datagridObj.Horizo​​ntalAlignment = System.Windows.Horizo​​ntalAlignment.Stretch; datagridObj.VerticalAlignment = System.Windows.VerticalAlignment.Stretch;

于 2013-02-26T01:19:50.143 回答
2

当然这是有道理的,但听起来您并不真正了解 WPF 布局系统是如何工作的,除非您这样做,否则前进将非常痛苦。简而言之,您需要有一个合适的容器——我推荐使用 Grid——并将 DataGrid 放置在该容器中。然后,您可以为 DataGrid 设置边距等,以随心所欲地放置它,并且如果它的 Width 和 Height 设置为 Auto,它将与它的父容器保持一致。

现在,如果您在图片中还有其他几个控件,当然它会涉及更多,但我仍然建议保留网格并将它们分成您需要的任意多行和多列,然后分别为它们的高度/宽度设置适当的值 -您可以使某些列的宽度固定,或其他列的倍数,或者将它们保留为 Auto,它们将占用剩余的空间。

当然,该主题涉及更多,但您可以在 MSDN 上找到快速入门:http: //msdn.microsoft.com/en-us/library/ms745058.aspx

如果您只记得一件事,应该是这样的:网格表示 WPF 中的流体布局,尽可能多地使用它们而不是画布。当然 StackPanel 和 DockPanel 等都有自己的特定用途。

PS Visual Studio 设计师通常会做一些乱七八糟的事情,通过设置边距等让拖放更直观,你应该密切关注它修改的属性,看看你是否更好地定位东西绘制布局后,通过手动修改 XAML(通常是这样)。

于 2013-02-26T01:35:50.403 回答
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>

默认情况下 aDataGrid

HorizontalAlignment="Stretch" 
VerticalAlignment="Stretch"

所以你只需要像Arno Saxena告诉你的那样的保证金

于 2013-03-11T15:35:02.490 回答