我的应用程序中有两个自定义的NSWindow,如下所示:
窗口1:
public partial class LoginVindow : NSWindow
{
public LoginVindow (IntPtr handle) : base (handle)
{
}
}
窗口2:
public partial class OperationWindow : NSWindow
{
public OperationWindow (IntPtr handle) : base (handle)
{
}
}
现在,我想在单击按钮后关闭第一个窗口,然后打开第二个窗口。但是,此代码无法为我运行。
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)
如何处理此操作?请帮助,谢谢。
答案 0 :(得分:0)
此代码块解决了我的问题。谢谢。
// Get new window
var storyboard = NSStoryboard.FromName("Main", null);
var controller = storyboard.InstantiateControllerWithIdentifier("OperationsWindow") as NSWindowController;
controller.ShowWindow(this);
this.Window.Close();