WPF, fereastra de afișare

Pentru a afișa fereastra, trebuie să creați o instanță a clasei de ferestre și apela o metodă arată () sau ShowDialog ().

ShowDialog () metoda afișează o fereastră modal. ferestre Modal nu permit utilizatorului să acceseze fereastra părinte, blocând posibilitatea de a utiliza în mouse-ul și capacitatea de a intra în ea date până la fereastra modal este închisă. În plus, ShowDialog metoda () nu se întoarce la până când fereastra modal este închisă, astfel încât performanța de toate situate după codul pentru timpul întârziat. (Cu toate acestea, acest lucru nu înseamnă că în acest moment nu se poate efectua nici un alt cod - de exemplu, în prezența experiențelor sale de funcționare de tratare a timer va funcționa în continuare.) Schema de cod cel mai frecvent utilizat este următoarea: fereastra modal de afișare, de așteptare pentru închidere și ulterior acesteia îndeplinirea datelor sale orice operațiune.

Mai jos este un exemplu folosind metoda ShowDialog ():

Show () metoda afișează fereastra non-modal, care nu blochează accesul utilizatorului la orice alte ferestre. Mai mult decât atât, Show () metoda produce revine de control imediat după ferestrele de afișare pe care îl urmează în situațiile de cod sunt executate imediat. Puteți crea și afișa mai multe ferestre non-modale, iar utilizatorul poate interacționa cu toate acestea simultan.

În cazul ferestrelor non-modal este uneori cod de sincronizare este necesar, asigurarea informațiilor de actualizare, în a doua fereastră atunci când face unele modificări în primul rând, și, astfel, elimină posibilitatea utilizatorului cu date incorecte.

Mai jos este un exemplu de utilizare Show metoda ():

ferestre Modal sunt ideale pentru a oferi utilizatorului o invitație de a face o alegere înainte de operație poate fi continuată. De exemplu, să ia aplicația Microsoft Word. Această aplicație afișează întotdeauna fereastra Opțiuni (Opțiuni) și Print (Imprimare) în modul modal, forțând utilizatorul să ia o decizie înainte de a continua. Pe de altă parte, ferestre, concepute pentru a căuta text sau verifica pentru greșeli de ortografie în document, Microsoft Word afișează în modul non-modal, permițând utilizatorului să modifice textul din fereastra principală de documente până când sarcina este.

Se închide fereastra la fel de ușor folosind metoda Close (). O alternativă este de a ascunde ferestrele de vizualizare prin utilizarea metodei Hide () sau stabilirea unor valori de proprietate Vizibilitate Ascuns. În acest caz și într-un alt, fereastra rămâne deschisă și accesibilă codului. Ca o regulă, are sens pentru a ascunde numai ferestrele non-modale. Faptul că-musamalizare codului Windows modal rămâne „înghețate“ până la momentul până când geamul se închide și închide fereastra invizibila utilizatorul nu va fi capabil.

poziționare fereastră

De obicei, plasează fereastra într-un loc definit cu precizie pe ecran nu este necesară. În astfel de cazuri, pur și simplu, puteți specifica valoarea proprietății WindowStartupLocation CenterOwner și nimic să vă faceți griji. În alte cazuri, care, deși mai puțin frecvente, dar încă acolo, ar trebui să fie stabilit poziția exactă a ferestrei, care implică valoarea de utilizare a Manualului WindowStartupLocation proprietății și specificând coordonatele exacte în proprietățile stânga și de sus.

Uneori, alegerea unei locații și dimensiunea potrivită pentru fereastra pe care trebuie să plătească un pic mai multă atenție. De exemplu, luați în considerare următoarea situație: ați creat în mod accidental o fereastra de o dimensiune care este prea mare pentru a afișa pe un ecran de rezoluție mică. Când este vorba de aplicația cu o singură fereastră, atunci cea mai bună soluție este de a crea o fereastra cu posibilitatea de redimensionare. Dacă este vorba despre o aplicație cu ferestre plutitoare multiple, problema este complicată.

Puteți încerca doar pentru a limita poziția ferestrei celor care au sprijinit chiar și pe cele mai mici ecrane, dar acest lucru este de natură să irita utilizatorii de monitoare mai noi modele (care au dobândit monitoare cu rezoluție mai mare în mod specific, pentru a putea să încapă pe ecran pentru mai multe informatii) . Prin urmare, cel mai probabil, va trebui să decidă cu privire la cea mai bună locație a ferestrei de la momentul execuției. Și acest lucru este nevoie pentru a extrage o anumită cantitate de informații de bază despre echipamentele disponibile pentru afișare de clasă System.Windows.SystemParameters.

Clasa SystemParameters susține o listă foarte mare de proprietăți statice care returnează informații despre diverși parametri de sistem. De exemplu, acesta poate fi utilizat pentru a stabili dacă utilizatorul este inclus, printre altele, piesa „fierbinte“ (de urmărire fierbinte) și capacitatea de a trage și plasa ferestre întregi. În cazul special al SystemParameters ferestrelor de clasa utile, deoarece oferă două proprietăți care returnează informații despre dimensiunea ecranului curent: FullPrimaryScreenHeight și FullPrimaryScreenWidth. Ambele dintre ele sunt destul de simple, așa cum se arată în codul de mai jos (centrarea ferestrei în timpul execuției):

Cu toate că acest cod este echivalentă cu utilizarea proprietăților cu valoare WindowStartupLocation CenterScreen, oferă flexibilitatea de a implementa o varietate de logică și de a executa poziționarea acestuia la momentul potrivit.

O opțiune mai bună este de a utiliza SystemParameters.WorkArea dreptunghi pentru a plasa fereastra în zona deschisă a ecranului. La calcularea zona spațiului de lucru în cazul în care bara de activități andocat (sau orice alt „trupa“, andocat cu desktop-ul) nu sunt luate în considerare.

Ambele exemple sunt caracterizate prin poziționarea ferestrei un mic dezavantaj. Când Thor proprietate este setat la fereastra care este deja vizibil, se deplasează imediat la fereastra și actualizate. Același lucru se întâmplă atunci când instalați proprietățile rămase în următoarea linie de cod. Ca rezultat, utilizatorii cu vedere bun poate fi de remarcat faptul că fereastra este mutat de două ori. Din păcate, clasa Window nu oferă o metodă care vă permite să instalați ambele aceste proprietăți simultan. Prin urmare, singura soluție este poziționarea ferestrei după ce este creat, dar înainte de a fi afișat folosind metoda Arată () sau ShowDialog ().

Salvarea și restaurarea informațiilor despre amplasarea ferestrelor

Printre cerințele tipice pentru o fereastră se aplică amintindu ultima locație. Aceste informații pot fi stocate în fișierul de configurare utilizator sau în registrul de sistem Windows.

Dacă doriți să vă asigurați că informațiile cu privire la localizarea unei ferestre importante stocate în utilizatorul specifică fișierul de configurare, faceți dublu clic pe nodul Properties (proprietăți) în fereastra Solution Explorer și selectați Settings (Setări). Apoi se adaugă acționează doar la nivelul tipului de date parametru de utilizator System.Windows.Rect după cum se arată mai jos:

WPF, fereastra de afișare

În prezența unui astfel de parametru poate crea cu ușurință un cod care va salva automat informațiile cu privire la dimensiunea și locația ferestrei:

Rețineți că, în codul de mai sus folosește RestoreBounds proprietate. care oferă dimensiunea corectă (de exemplu, dimensiunea ultima fereastră, în stare normală - nu pliate sau nepliate), chiar dacă fereastra curentă este maximizată sau minimizată. (Această funcție convenabilă nu a fost disponibil direct în Windows Forms și este necesar pentru a apela neadministrate GetWindowPlacement API-funcție ().)

Preluați aceste informații atunci când aveți nevoie de ea, este de asemenea ușor:

Singura limitare cu această abordare este necesitatea de a crea o proprietate separată pentru fiecare fereastră, care ar trebui să fie păstrate informații despre locația și dimensiunea. Dacă doriți informații despre locația persistat în multe ferestre diferite, atunci poate că ar fi mai bine să dezvolte un sistem mai flexibil.