C# Creating window - Defining Parent window
I want create using C#
window with setted parent to m开发者_如何转开发y defined handle,
this is a other process window handle.
Anyone know how to do this?
Greetings,
If I understood your question correctly you should be able to achieve what you want by using something like this:
class Win32Window : IWin32Window
{
IntPtr handle;
public Win32Window(IntPtr handle) { this.handle = handle; }
public IntPtr Handle
{
get { return this.handle; }
}
}
static void Main()
{
IntPtr targetParent = // Get handle to the parent window
new MainForm().ShowDialog(new Win32Window(targetParent));
}
This will turn MainForm
a child window of the specified window making it always appear above it. I use ShowDialog
in the example, but this should also work for Show
. This is specific for Windows Forms.
In WPF you can try the following:
var helper = new WindowInteropHelper(/* your Window instance */);
helper.Owner = // Set with handle for the parent
I quickly tried this after showing the WPF window and it seemed to work as expected, but WPF knowledge is not that great.
I believe the Handle will be read-only; therefore, the .Parent
property is read-only. However, the .Owner
property has a getter and a setter (ref. MSDN) ... however, you must have a reference to the Parent window.
Without more information, I will not be able to provide much more than that.
If your parent candidate is an unmanaged Window, check this link.
精彩评论