调整WPF应用程序的大小

本文关键字:应用程序 WPF 调整 | 更新日期: 2023-09-27 18:08:23

试过搜索谷歌,但我很难找到这个问题的答案。

我有一个基本的WPF应用程序与几个控件。当我最大化应用程序时,屏幕上的控件保持相同的大小,我浪费了很多空间。

是否有一种方法可以让控件随着主窗口的大小动态地增长和缩小?

亲切的问候火山灰

调整WPF应用程序的大小

不要为控件设置固定的Height和Width属性。相反设置,水平和垂直对齐来拉伸。并确保您的控件包含在适当的布局面板中。

例如

——

固定大小网格:

<Grid Background="Red" Width="50" Height="50"/>

动态扩展网格:

<Grid Background="Red" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>

你需要的不是调整大小,而是缩放(或缩放);-)

阅读本文;这个任务在WPF中非常简单。

(以前在Windows窗体中要复杂得多…)。

UI缩放(UI缩放)与WPF

基本上你只需要在XAML中添加以下内容:

 <ScaleTransform 
            CenterX="0" CenterY="0"
            ScaleX="{Binding ElementName=uiScaleSlider,Path=Value}"
            ScaleY="{Binding ElementName=uiScaleSlider,Path=Value}"
        />

之后,您可以使用鼠标滚轮或滑块或任何其他方式(如在您的情况下检测表单最大化),以修改ScaleTransformValue

有志者事竟成。你必须自己做一些工作,然而,WPF不能自动决定你想要如何调整大小。

相关资料:

    <
  • 布局容器/gh>数据绑定

你可以使用内容装饰器,它可以拉伸和缩放单个子元素来填充可用的空间- Viewbox。

http://www.wpftutorials.com/2011/04/wpf-viewbox.html

这没问题。控件的行为取决于您使用的容器以及水平和垂直对齐方式。例如,如果你使用一个网格,一个文本框和一个按钮水平和垂直对齐:拉伸和宽度和高度自动,文本字段和按钮将动态增长和收缩。

<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="WpfApplication.MainWindow"
x:Name="Window"
Title="MainWindow"
Width="640" Height="480">
<Grid x:Name="LayoutRoot">
            <TextBox Margin="8,8,8,104.96" TextWrapping="Wrap" Text="TextBox" Height="auto" Width="auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
            <Button Content="Button" Margin="8,0,8,8" VerticalAlignment="Bottom" Height="92.96" Width="auto" HorizontalAlignment="Stretch"/>
</Grid>

使用可调整大小的控件,如Grid,并将所有控件放在行/列中。还要将HorizontalAlignment设置为每个控件的拉伸。