wpf - 如何自动调整网格中对象的大小?
问题描述
所以我最近开始学习更多的 C#,我目前正在尝试创建一个 GUI。到目前为止,我有一个标题和一个如下所示的文本框:
https ://i.imgur.com/BvpkQ3U.png
是的,这看起来不错,这不是问题。问题是当您打开窗口(通过调试它)时,窗口被设置为它在预览中看起来的大小。这很好。但是,当我最大化它时,窗口内的对象不会变大。它们保持相同的大小。看起来像这样:
之前:
https
://i.imgur.com/NuGTDwf.png
之后:
https ://i.imgur.com/pVy2aYk.png
我怎样才能使窗口内的对象像窗口本身一样变大?
MainWindow.xaml:
<Window x:Name="THE_GUI" x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:GUI"
mc:Ignorable="d"
Title="GUI" Height="450" Width="800" Foreground="Black" WindowStyle="SingleBorderWindow">
<Grid>
<TextBlock x:Name="GUI_TITLE2" HorizontalAlignment="Center" Margin="0,10,0,0" Text="TITLE" TextWrapping="Wrap" VerticalAlignment="Top" Height="50" Width="125" FontSize="18"/>
<TextBox HorizontalAlignment="Left" Margin="41,35,0,0" Text="TextBox" TextWrapping="Wrap" VerticalAlignment="Top" Width="204" Height="375" IsReadOnly="True"/>
</Grid>
</Window>
如果您需要更多代码,我可以提供
谢谢!:) PS我确实看到了这个问题:WPF:如何在调整网格大小时让网格中的控件自动调整大小?但这对我一点帮助都没有。
解决方案
如果您希望它们调整大小,请不要设置控件(TextBlock/TextBox)的高度和宽度。此外,您使用的是没有行/列的普通网格,因此 WPF 将不知道如何缩放您的 GUI。
您需要了解 WPF 中可用的不同类型的面板/容器以及如何使用它们来放置控件。
检查:StackPanel、WrapPanel、DockPanel。对于 Grid,请阅读 RowDefinitions 和 Columndefinitions。阅读通配符高度和宽度分配。
推荐阅读
- node.js - 查找字符串并删除行 - Node.JS
- mysql - 循环运行多个 Sql 命令
- react-select - 如何仅使用 react-select onChange 事件和 value 道具中的值?
- c - 如何将十六进制 ASCII 值保存到 C 中的数组(缓冲区)中?
- magento - 具有可下载选项的 Magento 2.2 可配置产品:电子邮件不包含下载链接
- ruby-on-rails - 无法使用 FactoryBot 在 Rspec 中建立 has_and_belongs_to_many 关系
- r - RStudio 连接服务器与 Power BI
- javascript - 异步问题,无法在 .then 之后运行 shelljs 命令
- java - 使用 ImageIO.read() 时忽略 Alpha 通道
- ddev - ddev v1.3.0 中的 ssh 客户端去哪儿了?