C# создание окна-определение родительского окна
Я хочу создать с помощью C#
окно с установленным родителем в мой определенный дескриптор,
это другой дескриптор окна процесса.
кто-нибудь знает, как это сделать?
С ПРИВЕТОМ,
2 ответов
если я правильно понял ваш вопрос, вы должны быть в состоянии достичь того, что вы хотите, используя что-то вроде этого:
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));
}
это обернется MainForm
дочернее окно указанного окна, которое всегда появляется над ним. Я использую ShowDialog
в Примере, но это должно также работать для Show
. Это специфично для Windows Forms.
в WPF вы можете попробовать следующее:
var helper = new WindowInteropHelper(/* your Window instance */);
helper.Owner = // Set with handle for the parent
я быстро попробовал это после показа окна WPF, и мне показалось работать, как ожидалось, но знания WPF не так велики.
Я считаю, что ручка будет только для чтения, поэтому .Parent
свойство доступно только для чтения. Однако .Owner
свойство имеет геттер и сеттер (ref. В MSDN) ... однако необходимо иметь ссылку на родительское окно.
без дополнительной информации, я не смогу предоставить гораздо больше.
Если ваш родительский кандидат является неуправляемые окно, проверить это ссылке.