Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 调整WPF应用程序的大小_C#_Wpf_Graphics - Fatal编程技术网

C# 调整WPF应用程序的大小

C# 调整WPF应用程序的大小,c#,wpf,graphics,C#,Wpf,Graphics,我曾尝试过搜索谷歌,但我正在努力寻找答案 我有一个基本的WPF应用程序,上面有一些控件。当我最大化应用程序时,屏幕上的控件保持不变,我得到了大量浪费的空间 有没有办法让控件随主窗口的大小动态地增长和收缩 问候 灰烬您需要的不是调整大小,而是缩放(或缩放);-) 阅读这篇文章;WPF的任务非常简单 (以前在Windows窗体中要复杂得多…) 基本上,您需要添加到XAML的内容如下: <ScaleTransform CenterX="0" CenterY="0"

我曾尝试过搜索谷歌,但我正在努力寻找答案

我有一个基本的WPF应用程序,上面有一些控件。当我最大化应用程序时,屏幕上的控件保持不变,我得到了大量浪费的空间

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

问候


灰烬

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

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

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

基本上,您需要添加到XAML的内容如下:

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


之后,您可以使用鼠标滚轮、滑块或任何其他方式(如在您的案例中,detect form maximized)修改
ScaleTransform的

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

一些相关来源:


您可以使用内容装饰器,它可以拉伸和缩放单个子对象以填充可用空间-Viewbox


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

比如说-

固定大小网格:

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

动态扩展网格:

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

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

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


使用可调整大小的控件(如网格),并将所有控件放在行/列中。还为每个控件将“水平对齐”设置为“拉伸”

更多地使用面板(堆栈、-dock、-panels等)有助于通过调整大小自动调整宽度和高度。但最好的方法是你的。虽然在某些特定情况下很有用,但我会发现简单的缩小/放大UI组件通常很烦人。例如,我想要滚动条的最小宽度/高度。正确决定哪些确切的组件可以随着限制进行扩展,从而产生一个更好的可调整大小的UI IMHO。我同意,在所有情况下,这样的缩放并不是最好的方式,我只是简单地回答了OP的问题,他说:“有没有办法让控件随着主窗口的大小动态地增长和收缩?”如果他问的是一般性的问题,而不是完全那样的问题,我会提出一些不同的建议:)什么是合适的布局面板?这取决于你想要构建控件的方式。有关可用的布局类型,请参考以下链接:我通常避免使用StackPanel,因为它不定义边界,并会导致动态扩展问题。如果可以将网格布局拆分为3列,请您告诉我,而不是我开始新的问题。第一个是屏幕大小的四分之一,第二个是一半,第三个是四分之一?如果这是可能的,你能给我Xaml吗?是的,这是可能的。只需使用查看以下内容了解更多详细信息:此链接似乎不再可访问。也许你可以在这里总结一下信息?