在Xamarin.Mac中从其他打开新的自定义窗口

时间:2018-10-07 14:50:28

标签: c# macos cocoa xamarin xamarin.mac

我的应用程序中有两个自定义的NSWindow,如下所示:

窗口1:

public partial class LoginVindow : NSWindow
    {
        public LoginVindow (IntPtr handle) : base (handle)
        {
        }
    }

Window 1

窗口2:

public partial class OperationWindow : NSWindow
    {
        public OperationWindow (IntPtr handle) : base (handle)
        {
        }
    }

Window 2

现在,我想在单击按钮后关闭第一个窗口,然后打开第二个窗口。但是,此代码无法为我运行。

 partial void LoginButton_Clicked(Foundation.NSObject sender)
    {
        Window.Close(); // Closes the first login window.

        var operation_window = new OperationWindow(Handle); // Gets the second Window. IntPtr parameter is required unlike the internet codeblocks.

        operation_window.ShowWindow(this); // No any method like this.
    }

Internet上的所有代码块似乎都是针对非定制的标准类NSWindow项的,但是其中之一对于我来说似乎很稳定。但是,它没有运行。 (在Xamarin论坛中发帖:https://forums.xamarin.com/discussion/122359/open-and-close-window-programmatically-xamarin-mac

如何处理此操作?请帮助,谢谢。

1 个答案:

答案 0 :(得分:0)

此代码块解决了我的问题。谢谢。

    // Get new window
    var storyboard = NSStoryboard.FromName("Main", null);
    var controller = storyboard.InstantiateControllerWithIdentifier("OperationsWindow") as NSWindowController;
    controller.ShowWindow(this);
    this.Window.Close();