Aplicațiile individuale au, de obicei, o fereastră principală care afișează atât datele principale cu care rulează aplicația, cât și funcționalitatea pentru prelucrarea datelor prin mecanismele interfeței utilizator, cum ar fi barele de meniu, barele de instrumente și barele de stare. O aplicație non-trivială poate afișa, de asemenea, ferestre suplimentare pentru următoarele:
Afișați informații specifice pentru utilizatori.
Colectați informații de la utilizatori.
Și afișarea și colectarea de informații.
Sistemele de operare Windows sunt cunoscute ca casete de dialog. Există două tipuri: modal și nemodal.
Obiectul casetă de dialog modală este afișat de funcție atunci când este nevoie de date suplimentare de la utilizator pentru a continua. Deoarece funcția depinde de dialogul modal pentru colectarea datelor, dialogul modal împiedică, de asemenea, utilizatorul să activeze alte ferestre din aplicație în timp ce rămâne deschis. În majoritatea cazurilor, caseta de dialog modală permite utilizatorului să notifice când sa terminat caseta de dialog modală sau făcând clic pe OK sau prin anularea butoanelor. Prin apăsarea butonului OK, butonul indică faptul că utilizatorul a introdus date și dorește ca funcția să continue prelucrarea datelor. Prin apăsarea butonului de anulare, butonul indică faptul că utilizatorul dorește să oprească funcția. Cele mai frecvente exemple sunt casetele de dialog modale pentru deschiderea, salvarea și imprimarea datelor.
Modul fără obiect este interactiv pe de altă parte, dar nu interzice utilizatorului să activeze alte ferestre atunci când este deschis. De exemplu, dacă un utilizator dorește să găsească apariția unui anumit cuvânt într-un document, fereastra principală deschide adesea o casetă de dialog care solicită un cuvânt de căutare. Deoarece căutarea de cuvinte nu împiedică utilizatorul să editeze documentul, cu toate acestea, nu există o casetă de dialog modală. Caseta de dialog non-modală conține cel puțin un buton de închidere pentru a închide caseta de dialog și poate furniza butoane suplimentare pentru a efectua funcții individuale, cum ar fi butonul Găsiți Următorul pentru a găsi următorul cuvânt care corespunde criteriilor de căutare.
Windows Presentation Foundation (WPF) vă permite să creați mai multe tipuri de casete de dialog, inclusiv casete de mesaje, casete de dialog obișnuite și casete de dialog personalizate. Această secțiune discută și caseta de dialog exemplu conține exemple relevante.
Obiectul ferestrei de mesaj este o casetă de dialog pe care o puteți utiliza pentru a afișa date text și pentru a permite utilizatorilor să ia decizii prin intermediul butoanelor. Figura următoare prezintă o casetă de mesaje care afișează informații text, o întrebare care oferă trei butoane pentru ca utilizatorul să răspundă la întrebare.
Pentru a crea o casetă de mesaje, utilizați clasa MessageBox. MessageBox vă permite să personalizați textul în fereastra de mesaj, titlul, pictograma și butoanele, utilizând următorul cod.
Deși în MessageBox i se poate da posibilitatea ca o casetă de dialog simplă să interacționeze cu utilizatorul, avantajul utilizării MessageBox-ului. este singurul tip de fereastră care poate fi afișată de aplicațiile care rulează într-o cutie de nisip cu încredere parțială (a se vedea secțiunea de securitate), cum ar fi aplicațiile browser XAML (XBAP).
Cele mai multe afișări ale dialogului și colectarea datelor sunt mai complexe decât rezultatul ferestrei de mesaje, inclusiv textul, selecția (steagurile) se exclud reciproc (comutatoare) și lista de selecție (liste, casete combo, listă cu câmpuri derulante). În acest scop, Windows Presentation Foundation (WPF) oferă mai multe casete de dialog comune și vă permite să creați casete de dialog personalizate, deși utilizarea lor este limitată la aplicațiile care rulează cu încredere deplină.
Windows implementează diferite casete de dialog reutilizabile care sunt comune tuturor aplicațiilor, inclusiv casete de dialog pentru deschiderea, salvarea fișierelor și tipărirea. Deoarece aceste dialoguri sunt implementate de sistemul de operare, aceștia pot partaja toate aplicațiile care rulează pe sistemul de operare și care ajută la consistența interfeței utilizator; Când utilizatorii sunt familiarizați cu utilizarea casetei de dialog a sistemului de operare într-o singură aplicație, nu este nevoie să învățați cum să utilizați această casetă de dialog în alte aplicații. Deoarece aceste dialoguri sunt disponibile pentru toate aplicațiile și oferă utilizatorului o interfață consistentă, acestea sunt numite casete de dialog comune.
Windows Presentation Foundation (WPF) Încapsulează fișierul deschis, salvează fișierul și tipărește casete de dialog obișnuite și le prezintă ca clase gestionate pentru a fi utilizate în aplicații independente. Această secțiune oferă o prezentare generală a fiecăruia.
Caseta de dialog pentru deschiderea fișierelor
Caseta de dialog de deschidere, prezentată în figura următoare, este utilizată de funcția de deschidere a fișierului pentru a extrage numele fișierului pentru a fi deschis.
Caseta de dialog de deschidere standard este implementată ca clasă OpenFileDialog și este localizată în spațiul de nume Microsoft.Win32. Următorul cod arată cum se creează, configurează și afișează unul și cum se poate trata rezultatul.
Deși casetele de dialog comune sunt utile și trebuie utilizate ori de câte ori este posibil, ele nu acceptă cerințele caselor de dialog ale unui anumit domeniu. În aceste cazuri, trebuie să creați propriile casete de dialog. După cum vom vedea, caseta de dialog este o fereastră cu comportamente separate. Fereastra acestui comportament este implementată și, prin urmare, folosiți ferestrele pentru a crea casete de dialog personalizate modale și fără moduri.
Crearea unei casete de dialog personalizabile modale
Această secțiune vă arată cum să utilizați ferestrele pentru a crea o implementare a unui dialog modual tipic, utilizând caseta de dialog Margini ca exemplu (a se vedea fereastra de dialog exemplu). Margini Caseta de dialog este prezentată în figura următoare.
Configurarea casetei de dialog modale
Interfața cu utilizatorul pentru dialog include, de obicei, următoarele:
Diverse controale necesare pentru colectarea datelor corecte.
Afișați butonul OK pe care îl fac utilizatorii pentru a închide caseta de dialog, pentru a reveni la funcția respectivă și a continua procesarea.
Afișați butoanele de anulare, utilizatorul dă clic pentru a închide caseta de dialog și opri procesarea ulterioară a funcției.
Afișați să închideți butoanele din bara de titlu.
Afișați sistemul de meniuri pentru a minimiza, a maximiza, a restabili și a închide caseta de dialog.
Deschiderea deasupra și în centrul ferestrei care deschide caseta de dialog.
Dulapurile de dialog sunt reglabile în mărime, acolo unde este posibil, astfel încât pentru a împiedica fereastra să fie prea mică și să ofere utilizatorilor dimensiunea valorilor implicite utile, trebuie să setați valoarea implicită și, respectiv, să nu fie măsurată.
Prin apăsarea tastei ESC trebuie să fie configurat ca o combinație de taste care cauzează cancel butonul este apăsat. Acest lucru se realizează prin setarea proprietății IsCancel anulare adevărat buton.
Apăsând tasta ENTER (sau returnare) este configurată ca o comandă rapidă care face ca butonul OK să fie apăsat. Acest lucru se realizează prin setarea butonului OK al proprietății IsDefault la true.
Următorul cod demonstrează această configurație.
Aici codul transmite informația implicită (despre câmpurile curente) în caseta de dialog. De asemenea, setează proprietatea Window.Owner cu un link către fereastra care afișează caseta de dialog. În mod obișnuit, ar trebui să setați întotdeauna caseta de dialog proprietar pentru a specifica comportamentul asociat cu starea ferestrei comune tuturor caselor de dialog (vedeți Windows WPF Overview pentru mai multe informații).
Trebuie să specificați proprietarul pentru a sprijini interfața de utilizator de automatizare pentru casetele de dialog (vedeți prezentarea generală a automatizării UI).
După configurarea dialogului, acesta este afișat ca modal prin apelarea metodei ShowDialog.
Verificați datele utilizatorului
Dacă se deschide o casetă de dialog și utilizatorul furnizează datele necesare, caseta de dialog este responsabilă pentru asigurarea valabilității datelor furnizate din următoarele motive:
În ceea ce privește securitatea, toate datele de intrare trebuie verificate.
Din punctul de vedere al unui anumit domeniu, este interzis ca verificarea datelor să fie prelucrată în cod care poate produce eventuale excepții de date eronate.
Din punctul de vedere al interacțiunii cu utilizatorul, caseta de dialog poate ajuta utilizatorii, arătând ce date vor fi introduse nevalid.
În ceea ce privește performanța, validarea datelor într-o aplicație pe mai multe niveluri poate reduce numărul de cicluri de procesare dintre client și nivelurile de aplicații, mai ales dacă aplicația constă din baze de date Web și servere.
Pentru a testa controlul asociat în WPF, trebuie să definiți o regulă de validare și să o asociați cu o obligatorie. Regula de validare este o clasă personalizată derivată din ValidationRule. Următorul exemplu prezintă regula de validare MarginValidationRule. care verifică dacă valoarea asociată este dublă și se încadrează în intervalul specificat.