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