WPF, витрина

За да се покаже прозорец, трябва да създадете инстанция на класа на прозореца и се обадете на метод Show () или ShowDialog ().

ShowDialog () метод показва прозорец модален. Модалните прозорци не позволяват на потребителя да получите достъп до основния прозорец, блокиране на възможността за използването на мишката, както и способността да влиза в нея всички данни, докато в модален прозорец е затворен. В допълнение, ShowDialog на метод () не се връща към докато модален прозорец е затворен, така че изпълнението на всички разположени след кода за времето забави. (Все пак, това не означава, че в този момент не може да изпълнява всякакви други код - например, в присъствието на неговия опит, работещи таймер манипулатор все още да работи.) Най-често използваната схема код е както следва: прозорец модален дисплей, в очакване на неговото закриване и последваща изпълнение на своите данни всяка операция.

По-долу е пример за използване на метод ShowDialog ():

Покажи () метод показва не-модален прозорец, който не блокира достъпа на потребителя до всички други прозорци. Освен това Show () метод произвежда управлението се връща веднага след витрините, че това следват в кодови отчети на се изпълняват веднага. Можете да създавате и показване на множество немодални прозорци, и потребителят може да взаимодейства с всички тях едновременно.

В случай на немодални прозорци понякога е необходимо код синхронизация, осигуряване на информация за актуализация на втория прозорец, когато се направят някои промени в първия, и по този начин премахва възможността за потребителя с невалидни данни.

По-долу е пример за използване на метода показват, че ():

Модалните прозорци са идеални за осигуряване на потребителя с покана да направи избор преди операцията може да продължи. Да вземем например приложението Microsoft Word. Това приложение може да бъде показван Опции на прозорците (Опции) и Print (Печат) в модален режим принуждава потребителя да вземе решение, преди да продължите. От друга страна, прозорци, предназначени за търсене на текст или проверете за правописни грешки в документа, Microsoft Word показва в не-модален режим, което позволява на потребителя да редактира текста в основния прозорец на документ, докато задачата е.

Затваря се прозореца също толкова лесно, като се използва метода Close (). Една алтернатива е да се скрие прозорци от гледна чрез използване на метод Hide () или за определяне на стойността на имотите Видимостта Скрит. В този и в друг случай, прозорецът е отворен и достъпен за кода. Като правило, че има смисъл да се скрие единствените немодални прозорците. Фактът, че прикритие модални прозорци код остава "замразен", докато прозорецът се затвори и затворете прозореца невидим потребителят няма да може.

прозорец позициониране

Обикновено се поставят не се изисква прозореца в някои точно определени място на екрана. В такива случаи можете просто да определите стойността на имота WindowStartupLocation CenterOwner и какво да се притесняваш. В други случаи, които, макар и по-рядко, но все пак има, трябва да се определят точната позиция на прозореца, който включва стойността на използване на ръчно имот WindowStartupLocation и уточняване на точните координати на свойствата Ляво и Топ.

Понякога изборът на подходящо място и размер на прозореца, на който трябва да платите малко повече внимание. Да вземем например следната ситуация: случайно сте създали прозорец с размер, който е твърде голям, за да се покаже на дисплея с ниска разделителна способност. Когато става въпрос за прилагането на един прозорец, а след това най-доброто решение е да се създаде един прозорец с възможност за промяна на размера. Ако ние говорим за заявление с няколко плаващи прозорци, въпросът се усложнява.

Можете да опитате просто да се ограничи позицията на прозореца онези, които подкрепяха дори и на най-малките екрани, но това е вероятно да дразни монитори потребители по-новите модели (които са придобили монитори с висока разделителна способност, специално, за да бъде в състояние да се поберат на екрана за повече информация) , Ето защо, най-вероятно ще трябва да се вземе решение за най-доброто местоположение на прозореца по време на изпълнение. И това е необходимо да се извлече известна част от основната информация за наличното оборудване за дисплей с System.Windows.SystemParameters клас.

Клас SystemParameters поддържа огромен списък от статични свойства, които връщат информация за различните параметри на системата. Например, тя може да се използва за да се определи дали потребителят е включен наред с други неща "горещата" песен (топла проследяване) и способността да влачите и пускате на цели прозорци. В случая най-вече на прозорци клас SystemParameters полезни, защото тя осигурява две свойства, които връщат информация за размера на текущия екран: FullPrimaryScreenHeight и FullPrimaryScreenWidth. И двамата са доста прости, както е показано в долния код (центриране на прозореца по време на изпълнение):

Въпреки, че този код е еквивалентно на използването на имоти на стойност WindowStartupLocation CenterScreen, тя осигурява гъвкавост, за да изпълнява най-различни логика и да изпълни това позициониране в подходящото време.

Още по-добър вариант е да се използва SystemParameters.WorkArea правоъгълник, за да постави на прозореца в откритата част на екрана. При изчисляване на площта на работното място, където закачен лентата на задачите (или всяка друга "група", закачен с работния плот), не са взети под внимание.

И двата примера се характеризират с позиционирането на прозореца един малък недостатък. Когато Thor собственост е настроена да прозореца, който вече се вижда, тя веднага се движи към прозореца и се актуализира. Същото нещо се случва, когато инсталирате имотите, останали в програмата от следващия ред. В резултат на това потребителите с добро зрение могат да бъдат забележими, че прозорецът се премества два пъти. За съжаление, клас Window не предвижда метод, който ви позволява да инсталирате и двете от тези свойства едновременно. Затова единственото решение е позиционирането на прозореца, след като тя е създадена, но преди това се показва с помощта на метод Show () или ShowDialog ().

Запазване и възстановяване на информация за местоположението на прозорци

Сред типичните изисквания за прозорец прилага помня последния си местоположение. Тази информация може да се съхранява във файла с потребителското конфигурация или в системния регистър на Windows.

Ако искате да се уверите, че информация за местоположението на важен прозорец съхранява в конфигурационния файл специфичен потребител, кликнете два пъти върху възела Properties (свойства) в прозореца Solution Explorer и изберете Настройки (Settings). След това добавете действа само на нивото на типа данни на потребителя параметър System.Windows.Rect, както е показано по-долу:

WPF, витрина

При наличие на такъв параметър по лесно можете да създадете код, който ще се запазват автоматично информация за размера и местоположението на прозореца:

Имайте предвид, че в по-горе код използва RestoreBounds собственост. която осигурява правилния размер (т.е. размера на последния прозорец в нормално състояние - не сгъната или разгъната), дори ако текущия прозорец е минимизиран или сведени до минимум. (Тази удобна функция не е директно достъпна в Windows Forms и изисква да се обадя неуправляван API функция GetWindowPlacement ().)

Извличане на тази информация, когато имате нужда от него, също така е лесно:

Единственото ограничение при този подход е необходимостта да се създаде отделен имот за всеки прозорец, който трябва да се съхранява информация за местоположението и размера. Ако искате информация за местоположението се запазва и през много различни прозорци, а след това може би ще е по-добре да се развива по-гъвкава система.