wpf - Få håndtaget i vinduet i C #

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har angivet følgende klasse:


public partial class MainWindow : Window


Og jeg har brug for at få det egentlige håndtag i vinduet, når vinduet har en.
Hvordan kan jeg gøre det, og hvor skal jeg stille forespørgselsfunktionen.


Hvad jeg forsøgte så langt var:


IntPtr hwnd = new WindowInteropHelper(this).Handle;


Men håndtaget jeg kommer tilbage er 0, hvilket kan være fordi det blev plantet i OnInitialized - måske er vinduet ikke klar endnu på det tidspunkt.
Og ja - det er tilsluttet via WPF, tak fordi du har peget på det!


Tak

Bedste reference


I OnInitialized -metoden er håndtaget endnu ikke blevet oprettet. Men du er på rette spor. Hvis du sætter dit opkald i Loaded -hændelsen, er håndtaget blevet oprettet, og det skal returnere det korrekte håndtag .

Andre referencer 1


Det tidligste sted, du kan få håndtaget på, er OnSourceInitialized

Andre referencer 2


 [DllImport("user32.dll", EntryPoint = "FindWindowEx")]
        public static extern int FindWindowEx(int hwndParent, int hwndEnfant, int lpClasse, string lpTitre);


int hwnd = FindWindowEx(0, 0, 0, title);//where title is the windowtitle

                //verification of the window
                if (hwnd == 0)
                {
                    throw new Exception("Window not found");
                }