как изменить разрешение экрана при запуске приложения? - PullRequest
0 голосов
/ 13 января 2011

Я работаю над приложением для POS с WPF, C #, SQLCE, VS 2010. Я создал форму ввода счета с фиксированным окном шириной 800 * 600 и высотой.

но другие окна в проекте созданы для работы с системными разрешениями. теперь я хочу изменить системное разрешение на 800 * 600, когда эта форма ввода счета открывается в приложении My POS. Для составления отчетов и обслуживания Stocks & Inventory я использовал богатые UI Controls с максимальным размером окна, но для BILL ENTRY FORM (учитывая мои потребности) я сохранил размер окна 800 * 600. когда я открываю форму, она выглядит очень маленькой в ​​разрешении 1440 * 900. поэтому я хочу изменить системное разрешение на 800 * 600, когда это окно открывается, и когда оно закрывается, оно должно вернуться к разрешению 1400 * 900 .. есть ли способ сделать это

Ответы [ 2 ]

4 голосов
/ 13 января 2011

Вам не нужно менять разрешение рабочего стола. 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>

Он автоматически масштабирует все, что находится внутри, до любого размера:

small

middle

large

2 голосов
/ 13 января 2011

Это не хорошая практика, чтобы программно изменять настройки пользователей - вместо этого вы должны показать пользователю сообщение с просьбой изменить разрешение экрана самостоятельно. Если вам действительно требуется определенное преобразование, вы можете отменить загрузку приложения до тех пор, пока они не изменят ее на требуемый параметр.

Я настоятельно рекомендую не делать этого

Но для твоей проблемы ... Используйте эту функцию ChangeDisplaySettingsEx из GDI (не просто, но для этого нет встроенной функции C #), посмотрите здесь http://msdn.microsoft.com/en-us/library/dd183413%28VS.85%29.aspx

Для использования этой функции необходимо выполнить импорт DLL из "User32.dll".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...