关闭 WPF 中 Frame 内的页面

2024-04-18

我有一个窗口和一个框架。在该框架中,我打开了许多页面,我想通过单击“关闭”按钮关闭这些页面, 问题是页面看不到我的框架我尝试在页面方法中的事件中编写关闭按钮 在主窗口中执行另一个事件,因为在主窗口上很容易看到框架,但它不起作用。这是我在页面中的代码

  private void closebt_MouseDown(object sender, MouseButtonEventArgs e)
     {
        var main = new MainWindow();
       main.Exitbt_PreviewKeyDown(main.Exitbt, e);

     }

这是主窗口中的代码

 internal void Exitbt_PreviewKeyDown(object sender, MouseButtonEventArgs e)
      {
         ProjectorFrame.Content = "";
         MessageBox.Show("done");
      } 

虽然显示消息但未关闭页面 请帮我。


我不知道为什么您在 closebt_MouseDown 处理程序中创建另一个 MainWindow 实例,但我希望以下代码对您有所帮助:

private void closebt_MouseDown(object sender, MouseButtonEventArgs e)
{
    MainWindow main = Application.Current.MainWindow as MainWindow;
    if (main != null)
    {
        main.Exitbt_PreviewKeyDown(main.Exitbt, e);
        main.Close();
    }
}

Edited:

我认为您的应用程序的主 Window 对象是MainWindow,所以我认为前面的代码可以让您的应用程序窗口关闭。 但正如你评论的那样,Application.Current.MainWindow不同于MainWindow,以及main became null.

因此,我认为获取主 Window 对象的简单方法是在页面类中创建以下构造函数来保留引用:

class YourPageClass
{
    public YourPageClass(MainWindow mainWindow)
    {
        main = mainWindow;
    }
    private MainWindow main;

    (snip)
}

然后,通过传递主 Window 对象创建此实例:

// somewhere in MainWindow code where instantiate your page object
var page = new YourPageClass(this);

通过这样做,您可以获得主 Window 对象。 现在,您可以按如下方式关闭 Window 对象:

// in YourPageClass code

private void closebt_MouseDown(object sender, MouseButtonEventArgs e)
{
    if (main != null)
    {
        main.Exitbt_PreviewKeyDown(main.Exitbt, e);
        main.Close();
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关闭 WPF 中 Frame 内的页面 的相关文章

  • 如何在 Windows 窗体上将 CausesValidation 设置为 false 以关闭[Xbox?

    我已经将取消按钮上的 CausesValidation 设置为 false 并且它可以工作 bool IsCancelBtnClicked false private void EmployeeIDtextBox Validating ob
  • 如何在 C# 正则表达式中获取捕获组的名称?

    有没有办法在 C 中获取捕获组的名称 string line No 123456789 04 09 2009 999 Regex regex new Regex
  • 管道破裂错误

    我在 FTP 实现中的打开的数据套接字上使用 write 来发送文件 但写入一些数据后 它会挂起一段时间 之后它会返回 损坏的管道 错误 对此的任何帮助将不胜感激 我的进程从一个缓冲区读取数据包并写入套接字 我在增加带宽时注意到了这个问题
  • 易失性限定符是否会取消该内存的缓存?

    在本文中 http www drdobbs com parallel 易失性 vs 易失性 212701484 pgno 2 http www drdobbs com parallel volatile vs volatile 212701
  • 如何在 Linux 中检测通过 GUI 登录的用户

    我想在我的程序中捕获通过 GUI 登录的用户名 我的程序作为守护进程从 root 登录运行 如果非 root 用户通过 GUI 登录 我的程序应该会收到通知 我正在粘贴我当前的程序 该程序调用一个 perl 脚本 利用系统调用来检查当前登录
  • 读取 filebuf 的等效项?

    typedef struct char c 20 int i header void foo std string s std ifstream ifs s c str std ios base binary std ios base in
  • 了解带有位移位的右移运算符

    我很难理解右移运算符 我理解左移 假设我们没有 int n 11 which is 1011 现在如果我们左移它n lt lt 1结果是 int a n lt lt 1 so a 10110 simply add a 0 to the en
  • DateTimeOffset解析和自定义时区

    我们将 XML DateTime 值解析为 DateTimeOffset 值 根据DateTime 的 W3C XSD 文档 http www w3 org TR 2012 REC xmlschema11 2 20120405 dataty
  • 使用实体框架如何在没有一个庞大查询结果集或数百个小型查询的情况下创建嵌套对象?

    我使用 EF 填充对象 然后在业务层代码中与之交互 这些对象有多个级别 但我们首先将其简化为典型的主从示例Order and OrderLine 假设我需要检索 50 个订单 每个订单大约有 100 个订单行 并且我需要所有这些数据 在 E
  • C#中私有类的概念

    除了内部类之外 C 中是否可以存在私有类 根本不 除非它在嵌套类中 否则什么都没有 未嵌套在其他类或结构中的类和结构可以是public or internal 声明为 public 的类型可由任何其他类型访问 声明为内部的类型只能由同一程序
  • C# 和 .Net 垃圾收集器性能

    我正在尝试用 C 和 NET 制作游戏 并且计划实现更新游戏世界中游戏对象的消息 这些消息将是 C 引用对象 我想要这种方法 因为如果我希望游戏是多人游戏 那么通过网络发送它们会更容易 但是如果我有很多消息 对于垃圾收集器来说不是压力很大吗
  • 我可以使用什么 C++ 库在 Windows 上将 PDF 转换为图像?

    我正在开展一个需要分析图像的项目 这些图像的主要来源是网络摄像头 但最近我们被要求添加对上传文件和扫描仪的支持 这在大多数情况下都很好 只是他们希望我们能够使用 PDF 格式的文档 我需要一个原始像素位图进行处理 在 Mac 上 我可以使用
  • bet365 网站上 Selenium 的 Chrome 驱动程序陷入灰屏

    当我尝试使用 Chrome 驱动程序和 Selenium 打开 bet365 网站时出现灰屏 var driver new ChromeDriver driver Navigate GoToUrl https www bet365 it 我
  • 如何构建具有多个子站点地图的站点地图?

    我在用 MVC4 MvcSiteMapProvider v3 2 1 需要能够升级到v4 我的问题是应用程序很大 我想模块化应用程序并使模块可插拔 由于站点地图已经很大 我想让站点地图也变得可插拔 有没有办法在应用程序启动时使用根站点地图从
  • 无需使用abs函数或if语句即可获取绝对值

    我在想如何在不使用的情况下获得整数的绝对值if声明也不abs 起初我使用的是左移位 lt lt 试图将负号移出范围 然后将位右移回原来的位置 但不幸的是它对我不起作用 请让我知道为什么它不起作用以及其他替代方法 From 位摆弄黑客 htt
  • 自定义 web.config 部分处理程序

    我之前设计过一个自定义部分处理程序 但我遇到了一个我似乎无法想到的问题 我有一个像这样的配置部分
  • 如何在 Windows 8 中使用 StreamWriter 写入文件?

    我在创建时遇到问题StreamWriter在windows 8中 通常我只是创建一个实例 只是传递一个字符串作为参数 但在Windows 8中 我收到一个错误 表明它应该接收一个Stream 但我注意到Stream是一个抽象类 有人知道吗编
  • 在 g++ 中链接文件

    最近我尝试用g 在Ubuntu上 编译一个程序 通常我使用 Dev C 在 Windows 上 只要我创建一个项目并将所有必要的文件放入其中 它就可以正常工作 编译程序时出现的错误是 filename cpp undefined refer
  • 在 fork() 之后寻求有关“文件描述符”的简单描述

    Unix 环境中的高级编程 第二版 作者 W Richard Stevens 第 8 3 节 fork 函数 描述如下 父级和子级共享相同的文件偏移量非常重要 考虑一个分叉子进程 然后等待子进程完成的进程 假设两个进程都写入标准输出作为其正
  • 在 __device/global__ CUDA 内核中动态分配内存

    根据CUDA 编程指南 http developer download nvidia com compute cuda 3 2 prod toolkit docs CUDA C Programming Guide pdf 第 122 页 可

随机推荐

  • R 中的包相对路径

    我为使用相对路径的包编写了一些函数 例如 data foobar rds 这是一个示例函数 foo lt function x x lt readRDS data bar rds return x 现在 如果我要在包的开发路径中工作 这将按
  • Bootstrap:下拉菜单相对于导航栏项目的位置

    我有以下下拉菜单
  • 如何使用不同的kafka主题配置Kubernetes部署的微服务的每个pod/进程?

    在我们的应用程序中 有多个不同 kafka 主题的消费者 例如 Cosumer C1 Cosumer C2 Cosumer C3 Cosumer C4 Cosumer C5 以及不同的 kafka 主题 例如主题 1 主题 2 主题 3 主
  • 如何通过 has_many 评论关系显示评分最高的专辑

    我正在设置一个简单的 ruby rails 应用程序 用户可以在其中查看相册 在相册的显示页面上 我通过相册控制器中的此代码对与该相册相关的所有用户评论进行平均 def show album Album find by id params
  • 在拟合 keras 模型时如何防止 loss: nan ?

    这是我的代码 model Sequential model add Dense 50 input dim 33 init uniform activation relu for u in range 3 how to efficiently
  • 如何在ggplot中包装图例文本?

    这是我的数据的头部 structure list aasta c 2012 2013 2014 2015 2016 2017 2018 2019 2020 2012 2013 2014 2015 2016 2017 2018 2019 20
  • JPA 标准 API 按 NULL 最后排序

    我使用 JPA 标准 API 从数据库中获取记录 我有实体Record带字段dateTime可以为空 我会编码 public List
  • Dapr 和 Docker Compose 指南

    我正在绕圈试图找出如何做到这一点 但我遇到了以下情况 我正在尝试将 Dapr 合并到我的 ASP NET Core 微服务中 我已按照文档在本地安装了 Dapr dapr init 结果我有三个本地运行的容器 dapr redis dapr
  • 训练 h2o 模型时如何抑制“构建进度”栏?

    我正在通过测试许多模型来调整我的参数 但令我相当恼火的是 我对那些弄乱了我的 iPython Notebook 的 构建进度 栏无能为力 我浏览了文档 寻找某种要关闭的 详细 设置 但找不到它 当我想同时训练和评估数十个模型时 有什么方法可
  • 使用 Thymeleaf 和 Spring Boot 转换器列出 JSON 字符串

    我正在开发一项通过 Thymeleaf 模板生成 HTML 页面的服务 在其中一个模板中 我希望有一个 HTML 属性作为 JSON 字符串 我的上下文中的相关对象是ArrayList
  • 如何在 Visual Studio 安装项目中创建卸载程序?

    我已经创建了一个 Visual Studio 安装项目 但我不知道如何在我的 Visual Studio 安装项目中创建卸载程序 请告诉我该怎么做 我正在使用 Visual Studio 2005 或者是否有任何其他软件可以使用卸载程序创建
  • Oracle JDBC:用户名/密码无效 (ora-01017)

    我在与 Oracle 数据库服务器的 jdbc 连接上遇到了一个奇怪的问题 我们在 tomcat 服务器上运行应用程序 这些应用程序使用 oracle 数据库 所有应用程序都使用相同的凭据 应用程序全天运行良好 晚上没有活动 早上 当应用程
  • 使用给定的 DateTime 对象获取一个月的第一天和最后一天

    我想获取给定日期所在月份的第一天和最后一天 该日期来自 UI 字段中的值 如果我使用时间选择器我可以说 var maxDay dtpAttendance MaxDate Day 但我试图从 DateTime 对象中获取它 所以如果我有这个
  • 更改 Android 上活动动画的 z 顺序

    有没有办法反转活动动画的 z 顺序 基本上 当您启动新活动时 它会被添加到后台堆栈 并且其窗口会添加到前一个活动的窗口上 有时稍后返回时 从后台堆栈获取的活动会在顶部活动下方显示其窗口 大多数时候这是完全有道理的 但我对这种行为有以下问题
  • 如何解决SBT依赖的依赖冲突?

    我有一个项目的构建 sbt正在使用 libraryDependencies Seq com lerestau killer launcher 1 0 2 com lerestau menu starter 1 0 0 菜单启动器过渡下载 杀
  • JavaFX检测同时按下的多个键盘按键

    正如标题所说 我想检测同时按下的多个键盘按键 同时地 并被按下 同时地 一段时间 我正在尝试添加多个事件处理程序Scene但它不起作用 EventHandler
  • MySQL如何获取不是我好友的用户

    有人可以帮助我吗 我需要吸引不是我朋友的用户 我有以下表格 users id user 1 Name1 2 name2 和桌子friends id id user id friends 1 2 3 2 5 4 我尝试类似的操作 但在某些查询
  • 全文索引和复合索引以及它们如何影响查询

    只是说我有一个查询如下 SELECT name category address city state FROM table WHERE MATCH name subcategory category tag1 AGAINST educat
  • 与断言相比,scala 中的假设有何含义?

    Scala 似乎定义了 3 种断言 assert require and assume 据我所知 差异 与通用断言相比 require它是专门用于检查输入 参数 传入消息等 的 是什么意思assume then 如果你看一下代码Predef
  • 关闭 WPF 中 Frame 内的页面

    我有一个窗口和一个框架 在该框架中 我打开了许多页面 我想通过单击 关闭 按钮关闭这些页面 问题是页面看不到我的框架我尝试在页面方法中的事件中编写关闭按钮 在主窗口中执行另一个事件 因为在主窗口上很容易看到框架 但它不起作用 这是我在页面中