首页 > 解决方案 > 如何自动调整网格中对象的大小?

问题描述

所以我最近开始学习更多的 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:如何在调整网格大小时让网格中的控件自动调整大小?但这对我一点帮助都没有。

标签: wpfxaml

解决方案


如果您希望它们调整大小,请不要设置控件(TextBlock/TextBox)的高度和宽度。此外,您使用的是没有行/列的普通网格,因此 WPF 将不知道如何缩放您的 GUI。

您需要了解 WPF 中可用的不同类型的面板/容器以及如何使用它们来放置控件。

检查:StackPanel、WrapPanel、DockPanel。对于 Grid,请阅读 RowDefinitions 和 Columndefinitions。阅读通配符高度和宽度分配。


推荐阅读