[英]How to resize C# WPF Program to fit any screen resolution
我试图弄清楚如何调整C#WPF程序的大小,使其基本适合任何屏幕分辨率。 我正在尝试使我的程序适合屏幕分辨率为1280 x 1024的计算机 。 我找不到有关如何准确执行此操作的任何信息,当然我可以调整程序的尺寸以适合特定的屏幕,但是每台计算机的屏幕分辨率可能会有所不同,对吗? 我尝试使用此处提供的显而易见的解决方案: 调整WPF窗口的大小和依赖于屏幕分辨率的内容,但这根本没有帮助。
即我曾经使用过:(此外,我不确定是否也需要将HorizontalAlignment
和VerticalAlignment
设置为“ stretch”,但无论如何我还是这样做的。)
Title="my screen" Height="{Binding SystemParameters.PrimaryScreenHeight}" Width="{Binding SystemParameters.PrimaryScreenWidth}" WindowStartupLocation="CenterScreen" WindowState="Maximized">
<Grid Name="myGrid" Background="LightGray" Margin="0,0,2,-30" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<TextBox Name="stuffTB" HorizontalAlignment="Left" Height="28" Margin="751,252,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="186" />
...
每当我在尺寸为1280 x 1024的计算机上运行exe时,它就会切断网格中的内容。 任何建议或帮助都很好,即使链接到示例也很棒。 提前致谢。
如果您确实要强制调整Windows中所有控件的大小,则可以使用ViewBox https://msdn.microsoft.com/pl-pl/library/system.windows.controls.viewbox%28v=vs.110%29.aspx
但是IMO,您做错了。 设计良好的WPF UI的基础是:
看看我为您创建的这个样本
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="2*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="100" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<StackPanel Grid.Row="0" Grid.ColumnSpan="2" Background="Blue" Orientation="Horizontal">
<Button>Button</Button>
<Button>Button</Button>
<Button>Button</Button>
</StackPanel>
<DockPanel Grid.Row="1" Grid.Column="1">
<Rectangle DockPanel.Dock="Right" Width="100" Fill="Red"></Rectangle>
<Ellipse DockPanel.Dock="Left" Fill="AliceBlue"></Ellipse>
</DockPanel>
<ScrollViewer Grid.Row="1">
<StackPanel>
<Button Height="200"></Button>
<Button Height="200"></Button>
<Button Height="200"></Button>
<Button Height="200"></Button>
<Button Height="200"></Button>
<Button Height="200"></Button>
<Button Height="200"></Button>
<Button Height="200"></Button>
</StackPanel>
</ScrollViewer>
</Grid>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.