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);
       }

WPF中的多个XAML布局

如果您正在寻找一个选项,您也可以将框架的概念用于预期的功能。

你可以参考下面的链接。

http://msdn.microsoft.com/en-us/library/ms750478.aspx#Frame_in_Standalone_Applications

您可以在不同的用户控件中抽象不同的UI布局集,并根据您的UI逻辑加载它们。一种方法是使用MVVM框架,例如,Caliburn Micro使这成为一项非常简单的任务:

ActivateItem(UILayoutViewModel);

这个调用可以从任何方法调用。

查看更多Caliburn屏幕和组成的官方来源。