WPF中的多个XAML布局

时间:2013-07-23 02:07:51

标签: c# wpf xaml

我试图在WPF / C#中创建的应用程序在布局中有相当多的按钮,上面有一个“电视屏幕”类型面板(它实际上是商用飞机的FMS模拟器)。许多按钮改变了布局,这是电视屏幕上众多的TEXTBOX。我的问题是:是否有规定将布局封装在不同的类/文件中,并在选择各种按钮时将它们加载到“电视屏幕”中?换句话说,用户点击飞行计划按钮,上面的355x355框(屏幕)的布局加载XAML“flight_plan”布局/文件/类。每种布局都有不同的TEXTBOX尺寸和尺寸。位置和超过30个不同的“页面”,这将使它们封装它们是可取的。

我是WPF和c#的新手,但是用c ++写的win应用程序一直回到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);
       }

2 个答案:

答案 0 :(得分:2)

如果可以是您正在寻找的选项,您还可以将Frames的概念用于预期的功能。

您可以参考以下链接。

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

答案 1 :(得分:1)

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

  

ActivateItem(UILayoutViewModel);

可以从任何方法调用此调用。

official source查看更多Caliburn Screens and Composition。