如何更改 WPF 中的视图?

2023-12-02

有一些空闲时间,想尝试用 WPF 制作游戏。 我想知道,改变窗口视图的最佳方法是什么? 我制作了一个“主菜单”窗口,带有三个按钮。新游戏、继续游戏和退出游戏。 当按“新游戏”时,我希望窗口转到下一个“视图状态”以创建玩家等,不希望弹出新窗口。实现这一点的最佳方法是什么。


如果你想根据ViewModel动态切换View,那么使用DataTemplates是合适的:

<Window>
   <Window.Resources>
      <DataTemplate DataType="{x:Type ViewModelA}">
         <localControls:ViewAUserControl/>
      </DataTemplate>
      <DataTemplate DataType="{x:Type ViewModelB}">
         <localControls:ViewBUserControl/>
      </DataTemplate>
   <Window.Resources>
  <ContentPresenter Content="{Binding CurrentView}"/>
</Window>

If Window.DataContext是一个实例ViewModelA, then ViewA将显示并且

Window.DataContext是ViewModelB的一个实例,那么ViewB就会被显示。

我见过和读过的最好的例子是由林瑞秋. 参见示例.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何更改 WPF 中的视图? 的相关文章

  • 使用 Unity 在构造函数中使用属性依赖注入

    好的 我在基类中定义了一个依赖属性 我尝试在其派生类的构造函数内部使用它 但这不起作用 该属性显示为 null Unity 在使用 container Resolve 解析实例后解析依赖属性 我的另一种选择是将 IUnityContaine
  • 推导指南中的引用和值之间的差异

    考虑类型A template
  • 如何为 C 分配的 numpy 数组注册析构函数?

    我想在 C C 中为 numpy 数组分配数字 并将它们作为 numpy 数组传递给 python 我可以做的PyArray SimpleNewFromData http docs scipy org doc numpy reference
  • XAML:如何定义要在多个项目中使用的数据模板和样式

    我开始使用 WPF net 3 5 sp1 仅使用 VS 尚未混合 开发桌面应用程序 我现在的情况是 我在几个库中有一些通用的可重用组件 我可以在哪里定义样式和数据模板 以便它们可以在多个项目中重复使用 从而获得一致的外观和感觉 我看过 R
  • 在 C# 中循环遍历文件文件夹的最简单方法是什么?

    我尝试编写一个程序 使用包含相关文件路径的配置文件来导航本地文件系统 我的问题是 在 C 中执行文件 I O 这将是从桌面应用程序到服务器并返回 和文件系统导航时使用的最佳实践是什么 我知道如何谷歌 并且找到了几种解决方案 但我想知道各种功
  • 用于检查项目文件中的项目变量和引用路径的 api

    我正在研究一个 net application VS2010 与 x 没有 解和变量号这些解决方案中的项目数量 我需要检查项目属性 特定于一定数量的项目 是否同质 并且检查 验证构建期间的参考路径 有没有一个API是这样的吗 如果没有 我该
  • 无法在 Windows 运行时组件库的 UserControl 中创建依赖项属性

    我想在用户控件内创建数据可绑定属性 这个用户控件包含一个 Windows 运行时组件 项目 我使用下面的代码来创建属性 public MyItem CurrentItem get return MyItem GetValue Current
  • 单击 form2 上的按钮触发 form 1 中的方法

    我对 Windows 窗体很陌生 我想知道是否可以通过单击表单 2 中的按钮来触发表单 1 中的方法 我的表格 1 有一个组合框 我的 Form 2 有一个 保存 按钮 我想要实现的是 当用户单击表单 2 中的 保存 时 我需要检查表单 1
  • 将 Excel 导入到 Datagridview

    我使用此代码打开 Excel 文件并将其保存在 DataGridView 中 string name Items string constr Provider Microsoft Jet OLEDB 4 0 Data Source Dial
  • 未经许可更改内存值

    我有一个二维数组 当我第一次打印数组的数据时 日期打印正确 但其他时候 array last i 的数据从 i 0 到 last 1 显然是一个逻辑错误 但我不明白原因 因为我复制并粘贴了 for 语句 那么 C 更改数据吗 I use g
  • C++:.bmp 到文件中的字节数组

    是的 我已经解决了与此相关的其他问题 但我发现它们没有太大帮助 他们提供了一些帮助 但我仍然有点困惑 所以这是我需要做的 我们有一个 132x65 的屏幕 我有一个 132x65 的 bmp 我想遍历 bmp 并将其分成小的 1x8 列以获
  • 如何将自定义 JSON 文件添加到 IConfiguration 中?

    我正在使用 asp net Autofac 我正在尝试加载自定义 JSON 配置文件 并基于该文件创建 实例化 IConfiguration 实例 或者至少将我的文件包含到默认情况下构建的 IConfiguration asp net 中
  • 使用 Moq 使用内部构造函数模拟类型

    我正在尝试模拟 Microsoft Sync Framework 中的一个类 它只有一个内部构造函数 当我尝试以下操作时 var fullEnumerationContextMock new Mock
  • 等待线程完成

    private void button1 Click object sender EventArgs e for int i 0 i lt 15 i Thread nova new Thread Method nova Start list
  • .NET中的LinkedList是循环链表吗?

    我需要一个循环链表 所以我想知道是否LinkedList是循环链表吗 每当您想要移动列表中的 下一个 块时 以循环方式使用它的快速解决方案 current current Next current List First 电流在哪里Linke
  • 有没有办法强制显示工具提示?

    我有一个验证字段的方法 如果无法验证 该字段将被清除并标记为红色 我还希望在框上方弹出一个工具提示 并向用户显示该值无效的消息 有没有办法做到这一点 并且可以控制工具提示显示的时间 我怎样才能让它自己弹出而不是鼠标悬停时弹出 If the
  • Linq-to-entities,在一个查询中获取结果+行数

    我已经看到了有关此事的多个问题 但它们已经有 2 年 或更长 的历史了 所以我想知道这方面是否有任何变化 基本思想是填充网格视图并创建自定义分页 所以 我还需要结果和行数 在 SQL 中 这将类似于 SELECT COUNT id Id N
  • 如何将 Roslyn 语义模型返回的类型符号名称与 Mono.Cecil 返回的类型符号名称相匹配?

    我有以下代码 var paramDeclType m semanticModel GetTypeInfo paramDecl Type Type Where paramDeclType ToString returns System Col
  • 检查Windows控制台中是否按下了键[重复]

    这个问题在这里已经有答案了 可能的重复 C 控制台键盘事件 https stackoverflow com questions 2067893 c console keyboard events 我希望 Windows 控制台程序在按下某个
  • 如何正确使用 std::condition_variable?

    我很困惑conditions variables以及如何 安全 使用它们 在我的应用程序中 我有一个创建 gui 线程的类 但是当 gui 是由 gui 线程构造时 主线程需要等待 情况与下面的函数相同 主线程创建互斥体 锁和conditi

随机推荐

  • 使用 SBT,如何指定除当前目录之外的备用项目根目录来运行主类?

    通常 SBT 会在以下位置查找构建文件 build sbt and project Build scala 是否可以指定备用项目根目录 以便我可以构建不在当前工作目录中的项目 我本质上正在寻找相当于mvn f path to pom xml
  • 无法修改 c:\windows 目录中的 .ini 文件

    我正在编写一个 C Windows 应用程序来更新旧应用程序的 ini 文件 我没有旧应用程序的源代码 因此无法对其进行修改 旧版应用程序将设置存储在 C Windows 的 INI 文件中 该位置无法更改 为了修改 INI 设置 我一直在
  • 减少mongodb中的值

    我正在创建一个购物应用程序 每个用户都有钱包 结构如下 userName Gandalf the Grey wallet 100 orderHistory 假设该用户购买了价值 50 件的商品 有没有更好的方法而不是用 findOne 获取
  • g++ 9 概念支持包括 ubuntu 18.04 上的

    我正在使用 g std c 2a fconcepts 来处理 g 的概念 但出现 include Concepts 标头错误 没有这样的文件或目录 有人可以帮我调试这个吗 这是我从 cppreference 复制的代码 include
  • 如何在嵌入式 React 应用程序的页面之间路由?

    背景 我正在尝试在嵌入式 Shopify 应用程序中创建一些链接 我明白我不能使用简单的 a 标签 因为 Shopify 嵌入式应用程序呈现为 iframe 我在本教程中取得了一些进展 但我陷入了困境 https theunlikelyde
  • Rails:在早期开发阶段改变迁移

    在 Rails 应用程序开发的早期阶段 我更喜欢直接修改迁移文件以将新列 字段 添加到我的表 模型 中 而不是堆积迁移来更改字段和 或进行较小的更改 这在 Rails 中可能吗 我运行以下命令来解决这个问题 将其保存在脚本中 然后就可以开始
  • Java时区:为什么需要Offset

    我的要求是这样的 我在数据库和时区中保存以毫秒为单位的时间 例如 以毫秒为单位的时间是1223123123232长时区是Asia Calcutta 我必须将其转换为Africa Asmara时区 long l 1223123123232l
  • 使用之前在 ECIES 中生成的私钥

    我想使用 ECIES 加密 解密数据 我为此使用 cryptopp AutoSeededRandomPool prng get private key generated ECIES
  • 检查图片是否加载?

    我正在寻找一种解决方案 检查所有图像在图像滑块 旋转器中使用之前是否已加载 我正在考虑一种解决方案 仅在加载主图像时显示图像的按钮或缩略图 以防止用户单击尚未完全下载的图像 文字来自 readyjQuery 文档可能有助于区分load an
  • 如何使 .php 扩展名不出现在网站上? [复制]

    这个问题在这里已经有答案了 我的网站使用 PHP 并且 php出现在我的网址中 我怎样才能删除这个 有很多方法可以实现这一点 但它们很大程度上取决于您选择的 Web 服务器 例如 如果您使用的是 Apache HTTPD 您可以使用 多视图
  • 如何从任意 pthread_t 获取线程 ID?

    我有一个 pthread t 我想更改它的 CPU 关联性 问题是我使用的是 glibc 2 3 2 它没有pthread setaffinity np 不过没关系 因为 pthread setaffinity np 本身就是一个包装器sc
  • USACO 项链断裂问题的错误答案 [已关闭]

    Closed 这个问题需要多问focused 目前不接受答案 项链断了 您有一条由 N 个红色 白色或蓝色珠子 3 1 2 1 2 r b b r b r r b r b b b r r b r r r w r b r
  • 使用 MediaElement 播放 Stream 中的视频

    是否可以使用 WPF MediaElement 播放来自 System IO Stream 对象的流视频 正在从存储媒体文件的 WCF 服务中检索 Stream 对象 在任何人浪费时间亲自发现这一点之前 不可能在 WPF 应用程序中托管 S
  • 如何在 Spring Security Bean 中模拟自定义用户服务详细信息以进行单元测试?

    I have Spring Boot启用基本身份验证的应用程序 UserServiceDetails从数据库消耗 出于单元测试的目的 我想模拟它 因此数据将从其他地方消耗 我该怎么做 我的问题不是如何嘲笑UserServiceDetails
  • 使用 PHP 查找 JPEG 分辨率

    呼叫所有 PHP 专家 据我所知 您可以使用 getimagesize 来获取 PHP 中图像的实际像素高度和宽度 但是 如果您在 Photoshop 中打开图像并查看图像尺寸对话框 您会注意到有一个分辨率值决定图像的打印尺寸 给定一个任意
  • WSO2 API 管理器 - 在 UI 中显示正确的 IP

    已在一台计算机上安装了 API 管理器 1 4 0 并让一切运行起来 然而 我们发现管理控制台和商店站点中显示的 IP 地址不正确 例如 在 mgnt 控制台主页中的 主机 和 服务器 URL 也在商店中的 api 页面上 概述中提供了 U
  • 改进 AngularJS Simple Factory - PhoneGap 存储 API 的包装器

    我正在尝试用我一般的 JS 技能在 AngularJS 中做一些 好 的事情 我想听听您的感受或改进 重构以下内容 angular module App factory SQLService function q var db window
  • FORTRAN 指针包含多个数组

    我正在开发一个项目 其中在第一 第二和第三维度上有许多相同大小的数组 尽管第四维度的大小可能有所不同 我想通过构造一个连接这些数组的指针来对这些数组进行分组 为了让这个不那么抽象 假设我有 2 个数组 A size N1 x N2 x N3
  • jQuery 复选框事件处理

    我有以下内容
  • 如何更改 WPF 中的视图?

    有一些空闲时间 想尝试用 WPF 制作游戏 我想知道 改变窗口视图的最佳方法是什么 我制作了一个 主菜单 窗口 带有三个按钮 新游戏 继续游戏和退出游戏 当按 新游戏 时 我希望窗口转到下一个 视图状态 以创建玩家等 不希望弹出新窗口 实现