private void Button_Click(object sender, System.Windows.RoutedEventArgs e)
{
Win1 OP= new Win1();
OP.show();
}
Run Code Online (Sandbox Code Playgroud)
OP.show()抛出一个错误.
它是一个用户控制表单.
你说那Win1是"它是一个用户控制表".(重点是我的).
如果Win1实际上是类型UserControl,问题是类型UserControl没有定义Show()方法.因此它不能作为窗口"打开".
要解决此问题,您需要打开一个窗口并将UC作为该窗口的内容:
private void Button_Click(object sender, System.Windows.RoutedEventArgs e)
{
Win1 OP= new Win1();
var host = new Window();
host.Content = OP;
host.Show();
}
Run Code Online (Sandbox Code Playgroud)
作为旁注,您可以在App.xaml中使用UserControl,StartupUri因为框架识别出它不是窗口并为其创建窗口,所以它将起作用.
小智 5
所有这些答案都很好,但是它们没有利用WPF 的导航功能。如果您无论如何要隐藏/关闭当前窗口,那么这是旧WinForms窗口管理的一个很好的替代方案。不是创建多个窗口,而是创建页面并使用 MainWindow 中的单个 Frame 控件简单地显示它们:
<Grid>
<Frame Source="/Menu.xaml" NavigationUIVisibility="Hidden"/>
</Grid>
Run Code Online (Sandbox Code Playgroud)
然后当你想显示另一个“窗口”(实际上是一个页面)时,你可以使用NavigationService改变框架源。从后面的菜单页面代码:
private void Button_Click(object sender, RoutedEventArgs e)
{
NavigationService.Navigate(new Uri("/Contact.xaml", UriKind.Relative));
}
Run Code Online (Sandbox Code Playgroud)
现在将显示“联系人”页面。使用此方法可确保窗口属性标准化。一扇窗,统统统统!
| 归档时间: |
|
| 查看次数: |
33076 次 |
| 最近记录: |