0

私はWPF、C#、SQLCE、VS2010でPOSアプリケーションに取り組んでいます。幅と高さが800*600の固定ウィンドウで請求書入力フォームを作成しました。

ただし、プロジェクトの他のウィンドウは、システム解像度で動作するように作成されています。この請求書入力フォームがMyPOSアプリケーションで開いたら、システム解像度を800*600に変更したいと思います。Stocks&Inventoryのレポートとメンテナンスには、ウィンドウサイズを最大化した豊富なUIコントロールを使用しましたが、BILL ENTRY FORM(私のニーズを考慮)では、ウィンドウサイズを800*600に維持しました。フォームを開くと、1440*900の解像度で非常に小さく見えます。したがって、このウィンドウが開いたときにシステム解像度を800 * 600に変更したいのですが、このウィンドウを閉じると1400*900の解像度に戻るはずです..これを行う方法はありますか

4

2 に答える 2

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>

It will automatically scale whatever is inside to whatever size is avalibale:

small

middle

large

于 2011-01-13T10:34:28.530 に答える
2

プログラムでユーザーの設定を変更することはお勧めできません。代わりに、画面の解像度を自分で変更するように求めるメッセージをユーザーに表示する必要があります。特定の解決策が本当に必要な場合は、必要な設定に変更されるまで、アプリケーションのロードをキャンセルできます。

これをしないことを強くお勧めします

しかし、あなたの問題については... ChangeDisplaySettingsExGDIからこの関数を使用してください(簡単ではありませんが、これには組み込みのC#関数はありません)http://msdn.microsoft.com/en-us/library/dd183413%28VS.85を参照してください%29.aspx

"User32.dll"この関数を使用するには、のDLLインポートを実行する必要があり ます。

于 2011-01-13T10:24:09.613 に答える