首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPF“换皮”,即用完全不同的窗口布局替换窗口布局

WPF“换皮”,即用完全不同的窗口布局替换窗口布局
EN

Stack Overflow用户
提问于 2009-04-03 02:31:22
回答 3查看 858关注 0票数 2

WPF Noob问题:

WPF应用程序可以在运行时更改其外观吗?通过样式,我知道可以改变控件和UI元素的外观,但我设想的是有两个应用程序:一个“编辑器”应用程序和一个“游戏”应用程序,这两个应用程序本质上运行相同的代码,但具有完全不同的UI布局(后者具有更少的按钮、更简单的控件、菜单项等)。“游戏”UI的布局可能是由艺术家设计的,通常是不能访问底层代码的人。

我该如何着手做这样的事情呢?我只需要一个起点。

谢谢!

EN

回答 3

Stack Overflow用户

发布于 2009-04-03 03:54:40

您可以非常灵活地在运行时管理WPF应用程序的外观,因此您提出的建议是非常可行的。

在不了解应用程序的全部细节的情况下,听起来您确实可以创建两组不同的UI控件,一组用于编辑器,另一组用于游戏玩家,并且两者都使用相同的底层业务逻辑类。

要选择在运行时以哪种模式运行应用程序,需要决定添加哪种类型的用户,并将编辑器或玩家用户界面控件适当地放置到主布局容器中。

代码语言:javascript
复制
private void Window_Loaded(object sender, RoutedEventArgs e)
{
     if(user == editor) {
         this.LayoutRoot.Children.Add(editorUserControl);
     }
     else {
         this.LayoutRoot.Children.Add(gamerUserControl);
     }
}

还有许多不同的方法,你也可以做到这一点。

票数 1
EN

Stack Overflow用户

发布于 2010-07-20 23:39:24

如果不知道你的目标是什么,我建议你使用MVVM。您所描述的是典型的MVVM。您有一个模型,但对于同一模型,您有多个视图,在本例中为2。

因此,如果您使用某种MVVM框架,您可以利用依赖注入来显示不同的视图,这取决于您运行的上下文。

我是Prism的铁杆粉丝,但有很多MVVM框架可用。你甚至可以使用1个模型,1个视图模型和2个视图。

票数 1
EN

Stack Overflow用户

发布于 2009-04-03 08:05:50

PhotoSuru中可以看到一个动态更改其布局的应用程序示例(根据窗口大小)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/712359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档