1

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

我对 WPF 和 c# 非常陌生,但是一直用 c++ 编写 win 应用程序,然后回到 Turbo C 和 OWL。我也可能正在尝试做一些由于最近在 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);
       }
4

2 回答 2

2

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

您可以参考以下链接。

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

于 2013-07-24T05:56:27.290 回答
1

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

激活项(UILayoutViewModel);

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

在官方来源查看更多 Caliburn Screens 和 Composition 。

于 2013-07-23T02:18:52.603 回答