Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
单窗口WPF应用程序_Wpf - Fatal编程技术网

单窗口WPF应用程序

单窗口WPF应用程序,wpf,Wpf,我创建了一个单窗口应用程序,这个应用程序有两个屏幕,都显示在主窗口中。登录屏幕,然后是成功登录后的主应用程序屏幕。我目前通过使用导航窗口和页面实现了这一点 我不确定这是否是最好的方法,因为我不需要使用导航窗口提供的功能(向后和向前浏览等) 我希望有人能让我知道导航窗口是否是这种设计的最佳方法,或者不使用页面和导航窗口是否可以实现类似的外观 谢谢你的帮助 Emlyn有很多不同的方法。一个相当简单的方法是从可视化树中删除一些控件,然后在其中添加另一个控件。除此之外,我还见过许多使用页面/框架的应用程

我创建了一个单窗口应用程序,这个应用程序有两个屏幕,都显示在主窗口中。登录屏幕,然后是成功登录后的主应用程序屏幕。我目前通过使用导航窗口和页面实现了这一点

我不确定这是否是最好的方法,因为我不需要使用导航窗口提供的功能(向后和向前浏览等)

我希望有人能让我知道导航窗口是否是这种设计的最佳方法,或者不使用页面和导航窗口是否可以实现类似的外观

谢谢你的帮助


Emlyn有很多不同的方法。一个相当简单的方法是从可视化树中删除一些控件,然后在其中添加另一个控件。除此之外,我还见过许多使用页面/框架的应用程序,它们工作正常。

有许多不同的方法。一个相当简单的方法是从可视化树中删除一些控件,然后在其中添加另一个控件。除此之外,我还看到许多应用程序使用Page/Frame,并且运行正常。

没有什么可以阻止您将其作为两个窗口来实现。从第一个窗口成功登录完成后,可以显示主窗口,并且可以关闭第一个登录窗口


您可能需要注意的一件事是,应用程序不会在第一个窗口关闭后退出,而是在第二个窗口显示之前退出。如果需要,您可以在app.xaml中设置应用程序属性。

没有任何东西可以阻止您将其实现为两个窗口。从第一个窗口成功登录完成后,可以显示主窗口,并且可以关闭第一个登录窗口


您可能需要注意的一件事是,应用程序不会在第一个窗口关闭后退出,而是在第二个窗口显示之前退出。如果需要,可以在app.xaml中设置应用程序属性。

如果愿意,可以使用页面和导航窗口。这仍然可以包含MVVM模式,因为如果需要,视图可以作为页面加载

要启动项目,请创建一个窗口xaml文档,并将窗口标记更改为导航窗口标记

<NavigationWindow x:Class="myapp.NavigationWindow"
xmlns:....
Title:"My App"
Source="newpage.xaml" <!--designates the page to load -->
ShowsNavigationUI="False" <!--designates if the navbar is displayed at top-->
</NavigationWindow>
如果在页面导航中日志记录对您没有任何价值,您可以根据需要在代码中禁用此功能

ps-
如果您正在寻找MDI,WPF/win-32实际上不支持MDI(多文档接口)与Delphi类似,当您需要创建MDI外观时,您可以使用TabView控件,或者更多地依赖于模式开发MVVM,它提供了一种更优雅的方式来加载和传递不同的UI控件。

如果愿意,您可以使用Pages和navwindow。这仍然可以包含MVVM模式,因为如果需要,视图可以作为页面加载

要启动项目,请创建一个窗口xaml文档,并将窗口标记更改为导航窗口标记

<NavigationWindow x:Class="myapp.NavigationWindow"
xmlns:....
Title:"My App"
Source="newpage.xaml" <!--designates the page to load -->
ShowsNavigationUI="False" <!--designates if the navbar is displayed at top-->
</NavigationWindow>
如果在页面导航中日志记录对您没有任何价值,您可以根据需要在代码中禁用此功能

ps-
如果您正在寻找MDI,WPF/win-32实际上不支持MDI(多文档接口)与Delphi类似,当您需要创建MDI外观时,您可以使用TabView控件,或者更多地依赖于模式开发MVVM,它提供了一种更优雅的方式来加载和传递不同的UI控件。

我尝试将导航窗口更改为普通窗口,并在此基础上添加一个框架,然后设置框架内容到我的页面,我已经有,但这导致后退/前进按钮仍然出现。不知道这些是从哪里来的。我猜这是由于仍然使用页面造成的。
Page
上应该有一个属性来关闭导航ui我尝试过将导航窗口更改为普通窗口,并在其中添加一个框架,然后将框架内容设置为我已有的页面,但这导致后退/前进按钮仍然显示。不知道这些是从哪里来的。我猜这是由于仍然使用页面造成的。
Page
上应该有一个属性来关闭NavigationUIHanks,但我真的在寻找这种单一窗口样式,而不是关闭登录窗口以显示主窗口。我很感激我可能让事情变得更加困难,但这确实是我想要实现的风格。我希望它与Windows messenger非常相似,例如,主内容和登录都显示在一个窗口中。我将使用一个视图模型,该模型执行两个不同的子视图模型,并将适当的子视图模型注入主窗口内容区域。使用Caliburn.Micro,这非常简单,但我不确定您是否使用了框架,或者甚至使用了MVVM?谢谢您,但我真的希望使用这种单一窗口样式,而不是关闭登录窗口以显示主窗口。我很感激我可能让事情变得更加困难,但这确实是我想要实现的风格。我希望它与Windows messenger非常相似,例如,主内容和登录都显示在一个窗口中。我将使用一个视图模型,该模型执行两个不同的子视图模型,并将适当的子视图模型注入主窗口内容区域。使用Caliburn.Micro,这非常简单,但我不确定您是否使用了框架,或者甚至使用了MVVM?