2011-01-13 5 views
0

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

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

+0

Вы не должны этого делать .. это не полноэкранное приложение, такое как игра, в которой вы меняете свое разрешение .. пользователю определенно не понравится ... а также его не хорошая практика развития ... Кстати WPF достаточно зрелый, чтобы позволить вам создавать независимые от разрешения решения ... Подумайте об этом. –

+0

, но в окне ввода POS-счета будет всего 10 записей. поэтому я создал это, используя десять строк текстового поля и привязку к коллекции, которую можно наблюдать. поэтому 10 строк текстового поля выглядят очень маленькими. вот почему я пытаюсь поместить его в 800 * 600. – Panindra

+0

Поместите окно ввода в окно ввода. Он будет увеличивать (или вниз) все, что находится внутри: http://www.wpftutorial.net/ViewBox.html – bitbonk

ответ

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:

small

middle

large

2

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

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

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

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

Смежные вопросы