Windowsフォームにはプロパティwin1.Handleがあり、思い出すとメインウィンドウハンドルのハンドルを返しますか?
WPFウィンドウのハンドルを取得する同等の方法はありますか?
私は次のコードをオンラインで見つけました、
IntPtr windowHandle = new WindowInteropHelper(Application.Current.MainWindow).Handle;
しかし、私のアプリケーションには複数のウィンドウがあるので、それが助けになるとは思いません。
ありがとう!!
まあ、_Application.Current.MainWindow
_を渡す代わりに、必要なウィンドウへの参照を渡すだけです:new WindowInteropHelper(this).Handle
など。
WindowsInteropHelperクラスでウィンドウを使用するだけです。
// ... Window myWindow = get your Window instance...
IntPtr windowHandle = new WindowInteropHelper(myWindow).Handle;
今、あなたはアプリケーションのメインウィンドウを求めています。そのメインウィンドウには常に一つがあります。ただし、System.Windows.Windowから派生したWindowクラスであれば、この同じ手法を任意のWindowで使用できます。
あなたが使用することができます:
Process.GetCurrentProcess().MainWindowHandle
何らかの理由でアプリケーションのすべてのWindow
sのウィンドウハンドルが必要な場合は、Application.Windows
プロパティを使用してすべてのウィンドウを取得し、WindowInteropHandler
を使用して既に説明したようにハンドルを取得します。