调整WPF应用程序的大小

时间:2011-09-12 08:13:14

标签: c# wpf graphics

尝试搜索谷歌,但我很难找到答案。

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

有没有办法让控件随主窗口的大小动态增长和缩小?

亲切的问候

6 个答案:

答案 0 :(得分:4)

不要为控件设置固定的高度和宽度属性。 而是设置,水平和垂直对齐以拉伸。并确保您的控件包含在适当的布局面板中。

例如 -

固定尺寸​​网格:

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

动态消费网格:

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

答案 1 :(得分:2)

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

阅读这篇文章; WPF的任务非常简单。

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

UI Scaling (UI Zooming) with WPF

基本上你需要添加到XAML的是:

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

之后你可以使用鼠标滚轮或滑块或任何其他方式(如你的情况下检测表单最大化)来修改Value的{​​{1}}。

答案 2 :(得分:1)

哪里有遗嘱,就有办法。你必须自己做一些工作,但WPF无法自动决定你想要如何完成大小调整。

一些相关消息来源:

答案 3 :(得分:1)

您可以使用内容装饰器来拉伸和缩放单个子级以填充可用空间 - Viewbox。

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

答案 4 :(得分:1)

这没问题。控件的行为取决于您使用的容器以及水平和垂直对齐。例如,如果使用Grid,TextBox和具有水平和垂直对齐的Button:Stretch和width and height auto,Textfield和Button将动态增长和缩小。

<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>

答案 5 :(得分:0)

使用像Grid这样的可调整大小的控件,并将所有控件放在行/列中。还要为每个控件设置Horizo​​ntalAlignment以进行拉伸。