Cum se afișează o fereastră inversibilă de suprapunere în rusă

Am o fereastră care efectuează un fel de proces cu vizualizare. Și trebuie să ruleze când aplicația se execută, dar nu a fost afișată (adică a apărut evenimentul Încărcare). În același timp, utilizatorul are întotdeauna posibilitatea de a-l arăta și ascunde. Problema este că nu pot rezolva această problemă fără pâlpâirea inițială din cauza acestui cod.







Nici în Windows Forms, nici în WPF nu văd o soluție la această problemă.

Problema este, de asemenea, că fereastra este afișată în TaskBar, dar numai atunci când este vizibilă. Deci nu-mi place kaki

  1. Setați transparența ferestrei.
  2. Zero latitudine, înălțime și îndepărtarea cadrului.
  3. Mutarea ferestrei din ecran etc.

Pentru ce este necesar și de ce este imposibil să puneți totul în unele sarcini. Deoarece codul executat de fereastră depinde de randare. Am nevoie de o persoană care să ascundă și să arate fereastra când și cât de mult, dar condiția lui este aceeași ca și cum nu ar fi fost ascunsă.







Doar ca să nu puteți apela evenimentul Loaded. se numește numai când fereastra a fost afișată. Dar, poate, aveți o soluție care a funcționat în proiectul meu.

Mai întâi, separăm conținutul ferestrei în UserControl. Lasă fereastra să fie goală. Să numim SimpleUserControl pentru exemplu.

Acum, la începutul aplicației, vom crea un control, dar nu-l arătăm, astfel:

În acel moment, Încărcarea pe control nu este încă apelată (va fi apelată numai atunci când se afișează), dar subcontrolul dvs. va fi în stare "de lucru".

Ai răspuns la limba engleză. SO. Același cod funcționează pentru WPF dacă înlocuiți FormWindowState cu WindowState. Linia de jos este că mai întâi trebuie să instalați înainte de "show" (în cod sau designer):

Apoi rulați codul

Și imediat după aceea vom pregăti o fereastră pentru afisarea normală a apelurilor ulterioare la SomeWindow.Show:

Aceasta poate fi transformată într-o metodă de extensie pentru Windows Forms:







Articole similare

Trimiteți-le prietenilor: