我试图在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);
}
答案 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。