什么时候应该使用 UserControl 而不是 Page?

2023-11-27

我注意到许多 WPF MVVM 框架似乎避免使用 NavigationWindow 和 Page 控件,而转而使用嵌套的 UserControls 来编写页面。

NavigationWindow 和 Page 提供了在日志中启用后退和前进导航的简单方法,并提供了在页面之间传递数据的简单方法。我见过的大多数 MVVM 框架都以各种方式重新实现这些功能。

是否有特定原因避免使用 NavigationWindow 和 Page?


“NavigationWindow 不存储 内容对象的实例 导航历史记录。反而, 导航窗口创建一个新的 每个内容对象的实例 使用导航到的时间 导航历史记录。这种行为是 旨在避免内存过多 大量消耗时 大量内容正在被 导航到。因此,国家 内容不记得了 一个导航到下一个。然而, WPF 提供了多种技术 你可以存储一段状态 对于导航中的一段内容 历史....”

http://msdn.microsoft.com/en-us/library/system.windows.navigation.navigationwindow.aspx

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

什么时候应该使用 UserControl 而不是 Page? 的相关文章

  • WPF - 检测鼠标按下一段时间

    检测鼠标按钮何时在特定元素上按住特定时间段的最佳方法是什么 感谢您的提示 我创建了一个附加属性以避免任何代码隐藏 using System using System Windows using System Windows Threadin
  • 如何在wpf中打印屏幕截图

    首先我英语说得不太流利 反正 我正在尝试这样做 然而这还不是第三天 我现在正在做的是屏幕捕获后的程序屏幕打印 我参考这段代码 https social msdn microsoft com Forums windows en US 0623
  • 即使在 GC Collect 和 WaitForPendingFinalizers 之后,窗口对象在关闭后也未释放?

    这是一个简单的测试应用程序 可帮助了解 WPF 内存使用情况 我想了解的关键是为什么MainWindow即使在关闭并等待 GC 完成之后 仍然被引用并且它的内存没有被释放 参见下面的代码清单 文本 MainWindow Finalizer
  • 将 WPF 快捷键绑定到 ViewModel 中的命令

    我有一个使用 MVVM 模式的 WPF 应用程序 将按钮连接到 VM 非常简单 因为它们实现了 ICommand 我有一个工作原理类似的上下文菜单 下一步是为上下文菜单创建快捷键 我不知道如何让快捷键调用命令 这是一个例子
  • 如何在Wpf中的用户控件中调用MahApps Metro对话框

    当我尝试调用 MahApps Metro 对话框时 我在传递值时遇到错误 在传递参数时调用对话框控制时我需要传递 Metrowindow 参数 但我需要在用户控件中调用它 下面是当我需要对话框控制时我将调用的方法 public async
  • 更改鼠标悬停时的矩形背景

    所以我有一个没有背景的矩形 当用户将鼠标悬停在其上时 我想给它一个背景渐变 然后当鼠标离开矩形时删除渐变 请有人发布所需的代码 并告诉我将其放在 cs xaml 文件中的位置吗 Thanks This
  • 窗口关闭后仍在调用方法

    首先我不知道这是不是一个愚蠢的问题 我有这样的场景 首先我有一个主窗口 public MainWindow InitializeComponent dt is a System Windows Threading DispatcherTim
  • 从 xaml 获取 RowIndex

    我有一个带有 DataGridTemplateColumns 的 DataGrid 在 TemplateColumn 中 我使用工作正常的 DataTrigger 它从 DataGrid 父级检索项目计数
  • VisualStateManager 和生成的转换

    正当我以为我明白的时候VisualStateManager 有些事情证明我错了 我正在使用 WPF 4 并且尝试简单地在鼠标悬停时放大某个项目 并在鼠标离开时将其缩小 我想我只需定义每个状态VisualStateGroup然后指定一个Vis
  • x:将 ViewModel 方法绑定到 DataTemplate 内的事件

    我基本上问同样的问题这个人 https stackoverflow com questions 10752448 binding to viewmodels property from a template 但在较新的背景下x Bind V
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • Silverlight MVVM 绑定更新按不期望的顺序触发

    Scenario 在 Silverlight 4 MVVM 项目中 我们有一个ListBox控件包含项目 所选项目以双向方式绑定到 ViewModel 中的相应属性 另一个控件 出于某种原因 我将其精简为一个TextBox 是绑定到所选项目
  • 将 PDF 嵌入到 WPF 应用程序中

    我正在尝试在 WPF 应用程序中嵌入 显示 PDF 到目前为止 我已经尝试过这些解决方案 但没有成功 在 a 中显示 PDFWindowsFormsHost主持一个AxAcroPdf控制 类似于显示的内容here http hugeonio
  • WPF:Prism 对于小型应用程序来说是不是太过分了?

    如果我不将我的应用程序分成不同的模块 否则我会认为 Prism 确实是可行的方法 我应该使用 Prism 吗 我知道 Prism 提供了一个方便的实现ICommand 我可以自己在一页代码中完成 并为我们提供IEventAggregator
  • WPF/C# 将自定义对象列表数据绑定到列表框?

    我在将自定义对象列表的数据绑定到ListBox in WPF 这是自定义对象 public class FileItem public string Name get set public string Path get set 这是列表
  • 将 Pivot 控件与 Observable Collection MVVM 绑定(Windows Phone 8)

    我是 WP8 和 MVVM 的新手 我创建了 wp8 应用程序 一旦用户登录 它就会请求各种数据 我只是无法动态创建我的数据透视表头 我不知道这是否是因为我在绑定中做了一些事情 INotifyPropertyChanged 两者或其他 这是
  • 如何以编程方式调用应用程序菜单?

    我有自定义样式的非矩形透明窗口
  • 包含内容的 WPF 新窗口

    我想在现有的主 Windwoe 旁边创建一个带有可滚动文本框的新窗口 我在主窗口中按下 打开新窗口 按钮 然后它应该打开一个带有可滚动文本框的新窗口 inside form2 在 WPF 中 您可以在主窗口中拖放元素 但不能在新窗口中执行此
  • 解释 System.Diagnostics.CodeAnalysis.SuppressMessage

    我在某些应用程序中有这种代码 来自微软 assembly System Diagnostics CodeAnalysis SuppressMessage Microsoft Naming CA1702 CompoundWordsShould
  • 创建带有部分的选项卡式侧边栏 WPF

    我正在尝试创建一个带有部分的选项卡式侧边栏 如 WPF 中的以下内容 我考虑过几种方法 但是有没有更简单 更优雅的方法呢 方法一 列表框 Using a ListBox并将 SelectedItem 绑定到右侧内容控件所绑定的值 为了区分标

随机推荐

  • 如何计算 linq to sql 查询中列值的总和?

    我写这个查询 var query2 from p in behzad Compare closed numbers in CRM and Billing system detail counters where p fileid point
  • Eclipse 调试 - 行:不可用

    我似乎在谷歌上找不到任何东西告诉我为什么会这样以及解决方案是什么 我正在逐步执行第三方代码 我有源代码 并且非常希望看到当前行正在执行 查看 javac 编译标志 我看到 g none 标志 如果设置了此标志 这是否足以解释为什么我看不到行
  • 在 Angular2 中跨模块共享服务的最佳方式是什么

    我正在使用如下所述的应用程序结构 index ts app module ts app component ts hero directory hero module ts hero ts Data Object hero service
  • S4方法调度慢吗?

    我的 S4 类有一个被调用多次的方法 我注意到执行时间比独立调用类似函数要慢得多 因此 我在类中添加了一个类型为 function 的槽 并使用该函数而不是该方法 下面的示例显示了执行此操作的两种方法 并且它们的运行速度都比相应的方法快得多
  • 理解平行存在并找到

    我拿一个List Int 并想要搜索一个值x where x 10 gt 500在平行下 所以exists应该返回true如果列表包含 51 或更大的任何值 def f x Int println calculating for x Thr
  • Multipart/form-data 不支持 request.getparamerter [重复]

    这个问题在这里已经有答案了 我有一个表格 它有文件上传部分以及几个输入字段 我在用request getParameter 将值从 jsp 获取到 servlet 但是当我添加encrypt multipart request get参数不
  • 过滤数据框

    我已读取矩阵形式的 csv 文件 有 m 行和 n 列 我想通过以口头形式进行过滤来过滤矩阵 选择 x 列中的所有值 其中该行中另一列的值等于 blabla 这就像数据库中的选择语句 我说我对需要满足这些约束的矩阵的子集感兴趣 我怎样才能在
  • vue-router 总是创建一个新的 Component 实例

    我在 vue router 中发现了一个问题 这让我很受触动 当我在路由之间切换时 总是会创建组件的新实例 此外 旧实例不会被删除并在后台运行 我希望当我打开一条路线时 旧组件将被销毁或停止运行 有解决方法来解决这个问题吗 这是一个小提琴
  • XAPK 文件验证显示正确的数据信息

    在运行 APK 扩展文件示例时 我只是跳过了检查 CRC32 以避免 crc bug 算法 并且它工作得非常好 但是 虽然 XAPK 文件验证显示正确的下载数据信息为 99 如何避免这种情况并通过硬编码查看完整的 100 这不是最好的解决方
  • 仅选择启动首选项复选框中的一个复选框

    我的应用程序启动取决于用户偏好 具有三个不同的复选框 1 启动应用程序 没有启动画面和音乐 2 仅使用启动画面启动应用程序 3 启动带有启动画面和音乐的应用程序 使用下面的代码可以完美地工作 但仍有两点需要实现 FIRST只应选中一个复选框
  • Git 中的 tree-ish 是什么意思?

    我很困惑如何使用git archive 我有一个带有文件夹的 git 存储库Foo Bar and Baz在顶层 我需要导出文件夹Foo以类似 SVN 的方式进行快速测试部署 我了解到我可以使用git archive in an 类似 SV
  • Get-ChildItem 无法找到路径,因为它不存在

    我正在编写一个脚本来获取网络中所有共享的 ACL 我正在三个独立的 UNC 路径上运行它 三者中的两个工作正常 返回所有子项目和权限等 但是 第三个 UNC 路径返回以下错误 Get ChildItem Cannot find path s
  • 将十进制向量转换为二进制向量

    我需要将十进制数转换为二进制向量 例如 这样的事情 length de2bi length field 16 不幸的是 由于许可的原因 我无法使用此命令 是否有任何快速的简短技术可以将二进制转换为向量 这就是我正在寻找的 If Data 1
  • Spring ResponseEntity:使用构造函数还是静态构建器?

    在 Spring Boot RestController 中 我使用 springframework 类响应实体返回端点调用的响应 我最近发现有两种方法可以实例化这个类 使用构造函数 response new ResponseEntity
  • 使用 PowerShell 远程运行 Java

    当我跑步时电源外壳在远程会话中 etsn servername 我有时似乎无法运行Java进程 即使是最简单的 chi queuing PS C temp gt java cp hello jar Hello Error occurred
  • 不提示使用 OAUth2 重新进行身份验证。为什么以及如何强制它?

    我想了解一些事情 我有一个基于 oAuth2 和 Google 帐户的应用程序 因此 当我第一次连接到该网站时 我会被重定向到 Google 域上的身份验证页面 因此 我输入我的电子邮件和密码 但没有选中 受信任的计算机 或 记住我 我不记
  • 去除QComboBox listView阴影效果

    默认情况下 QComboBoxlistview有阴影效果 有办法去除吗 阴影是否由QStyle或者以其他方式 阴影效果不是 Qt 特定的东西 它是桌面主题特定的东西 阴影取决于您的桌面环境使用的样式 主题 如果您的样式 主题定义了 QCom
  • 使用java创建XML文件

    如何使用java创建一个xml文件并将其保存在我的机器中的某个位置 xml文件中还包含属性 我找到了 org w3c dom Document 但在为元素创建属性和保存 xml 文件时遇到问题 谢谢 您可以使用 DOM XML 解析器通过
  • MongoDB 使用外键将字段复制到另一个集合

    我想将颜色从用户集合复制到汽车集合 我使用的是外键 即 userID gt db test1 User find id ObjectId 515f7db83f71d6bcb1c41a48 age 33 Color blue id Objec
  • 什么时候应该使用 UserControl 而不是 Page?

    我注意到许多 WPF MVVM 框架似乎避免使用 NavigationWindow 和 Page 控件 而转而使用嵌套的 UserControls 来编写页面 NavigationWindow 和 Page 提供了在日志中启用后退和前进导航