我正在试图弄清楚如何调整我的C#WPF程序的大小以基本适合任何屏幕分辨率。我正在尝试将我的程序安装到屏幕分辨率 1280 x 1024 的计算机上。我无法找到有关如何准确执行此操作的任何信息,当然我可以根据特定屏幕确定程序的尺寸,但每台计算机的屏幕分辨率可能有所不同吗?我尝试使用此处提供的明显解决方案:Resize WPF Window and contents depening on screen resolution但它根本没用。
即。我用过:(另外,我还不确定是否需要将HorizontalAlignment
& VerticalAlignment
设置为&#34;伸展&#34;但是我还是做了。)< / p>
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 时,它会切断网格中的内容。任何建议或帮助都会很棒,甚至链接到示例都会很棒。提前谢谢。
答案 0 :(得分:0)
如果您真的想强制调整窗口中的所有控件,可以使用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>