WPF 网格 - 调整窗口大小时如何保持列宽?
我有这个 XAML 标记...
<Grid Name="ProductsGrid" Width="500">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Name="ProductList" Width="*" />
<ColumnDefinition Name="ProductInfo" Width="100" MinWidth="10" MaxWidth="100"/>
</Grid.ColumnDefinitions>
当应用程序启动时,第二列的宽度为 100 个“单位”。
当调整窗口大小时,列会增大和缩小 - 它保持与第 1 列的比率,我认为这就是我在 WPF 中应该发生的情况。因此,当应用程序启动时,窗口大小设置为 500,第二列是总宽度的 1/5。当应用程序调整大小时,它保持总宽度的 1/5,但在本例中我希望它保持在 100 个单位。
有什么想法吗?
I have this XAML markup...
<Grid Name="ProductsGrid" Width="500">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Name="ProductList" Width="*" />
<ColumnDefinition Name="ProductInfo" Width="100" MinWidth="10" MaxWidth="100"/>
</Grid.ColumnDefinitions>
When the app starts the 2nd column is se to 100 "units" wide.
When the window is resized the column grows and shrinks - it maintains its ratio with column 1 which I think is what i supposed to happen in WPF. So when the app starts the window size is set to 500 and the 2nd column is 1/5 of the total width. As the app resizes it maintains 1/5 of the total width However in this example I want it to stay at 100 units.
Any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
删除网格的宽度,它正在固定网格的宽度,网格的宽度保持为100...如果您想查看实际的网格位置,请给出网格背景颜色。
您可以将主窗口的初始宽度固定为 100 并保留网格不固定宽度以允许所需的行为
尝试以下操作:
Remove the width of the grid, it is fixing the width of the grid, the grid remains 100 in width ... give the grid background color if you want to see the actual grid location.
you can fix the initial width of the main window to 100 and leave the grid without fixed width to allow the desired behavior
try this:
试试这个
你需要删除网格的固定宽度。
如果您希望初始窗口的大小为 500,那么您可以处理
窗口加载事件
并将窗口
的大小设置为 500。不要硬编码 Grid 的大小代码隐藏或 XAML 否则您将再次遇到同样的问题Try this
You need to remove the fixed width of Grid.
If you want your initial window to be of size 500 then you can handle
window loaded event
and set the size ofwindow
to 500. Don't hard code size of Grid in code behind or XAML otherwise you will face same issue again