WPF中的多个XAML布局
本文关键字:XAML 布局 WPF | 更新日期: 2023-09-27 18:24:15
我试图在WPF/C#中创建的应用程序在上面带有"电视屏幕"类型面板的布局中有很多按钮(它实际上是商用飞机的FMS模拟器)。许多按钮改变了布局,电视屏幕上有许多TEXTBOX。我的问题是:是否有规定将布局封装在不同的类/文件中,并在选择各种按钮时将其加载到"电视屏幕"中?换句话说,用户点击飞行计划按钮,上方355x355框(屏幕)的布局加载XAML"Flight_Plan"布局/file/class。每个布局具有不同的TEXTBOX大小&位置,并且有超过30个不同的"页面",这将使封装它们成为可取的。
我是WPF和c#的新手,但我已经用c++编写了获胜应用程序,一直到Turbo c&猫头鹰。我可能也在尝试做一些不可能的事情,因为我最近在Android/Java中工作,并且混淆了功能。
提前谢谢。
编辑 感谢@adityaswami89和其他让我走上正轨的人,我找到了解决方案。我在VS2012中通过一个新的"WPF页面"添加了这些页面。然后将"屏幕"改为导航框,从那以后就非常简单了。下面是我为测试它而创建的简单项目
public partial class MainWindow : Window
{
NavRad navrad = new NavRad();
FPlan fplan = new FPlan();
public MainWindow() {..}
private void Frame_Navigated_1(object sender, NavigationEventArgs e) {..}
private void Button_Click_1(object sender, RoutedEventArgs e)
{
Screen_Frame.Navigate(fplan);
}
private void Button_Click_2(object sender, RoutedEventArgs e)
{
Screen_Frame.Navigate(navrad);
}
如果您正在寻找一个选项,您也可以将框架的概念用于预期的功能。
你可以参考下面的链接。
http://msdn.microsoft.com/en-us/library/ms750478.aspx#Frame_in_Standalone_Applications
您可以在不同的用户控件中抽象不同的UI布局集,并根据您的UI逻辑加载它们。一种方法是使用MVVM框架,例如,Caliburn Micro使这成为一项非常简单的任务:
ActivateItem(UILayoutViewModel);
这个调用可以从任何方法调用。
查看更多Caliburn屏幕和组成的官方来源。