我正在与WPF,C#,SQLCE,VS 2010进行POS应用。我创建了一个带有800 * 600宽度和高度的固定窗口的帐单输入表单。
但是项目中的其他窗口可以使用系统分辨率。现在我想在My POS应用程序中打开此帐单条目表单时将系统分辨率更改为800 * 600。报告和维护股票&库存我使用丰富的UI控件,窗口大小最大化,但对于BILL ENTRY FORM(考虑到我的需要)我将其窗口大小保持为800 * 600。当我打开表格时,它看起来非常小,分辨率为1440 * 900。所以我想在这个窗口打开时将系统分辨率更改为800 * 600,当此窗口关闭时,它应该返回到1400 * 900分辨率..有没有办法做到这一点
答案 0 :(得分:4)
您无需更改桌面分辨率。 WPF独立于分辨率,可以按照您需要的方式扩展所有内容。它看起来也会好得多。
对于简单缩放,您可以使用Viewbox类:
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="WpfApplication1.MainWindow"
x:Name="Window"
Title="MainWindow"
Width="800" Height="600">
<Viewbox>
<ListView Height="150" Width="200">
<ListViewItem>item 1</ListViewItem>
<ListViewItem>item 2</ListViewItem>
</ListView>
</Viewbox>
</Window>
它将自动缩放内部的任何大小为avalibale:
答案 1 :(得分:2)
以编程方式更改用户的设置不是一个好习惯 - 而是应该向用户显示一条消息,要求他们自己更改屏幕分辨率。如果您确实需要特定的解决方案,则可以取消应用程序加载,直到将其更改为所需的设置。
我强烈建议不要这样做
但是对于你的问题......
使用GDI中的这个函数ChangeDisplaySettingsEx
(不容易,但没有内置的C#函数)看看这里http://msdn.microsoft.com/en-us/library/dd183413%28VS.85%29.aspx
您需要执行"User32.dll"
的DLL导入才能使用此功能。