WPF 如何只关闭子窗口

问题描述

为什么我在关闭子窗口时,连同父窗体也同时关闭了?我的代码如下:父窗体:index.xaml<UserControlx:Class="WpfOA.Views.BusinessManageView"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:local="clr-namespace:WpfOA.FormControl"mc:Ignorable="d"d:DesignHeight="354"d:DesignWidth="746"><Grid><TextBlockName="textBlock_AddFile"Text="添加业务文件:"/><ButtonClick="ButtonClick_ShowChildWin"Content="添加"></Button></Grid></UserControl>index.xaml.cs//打开子窗口TestChildWintestChildWin=newTestChildWin();publicvoidButtonClick_ShowChildWin(objectsender,EventArgse){testChildWin.WindowStyle=System.Windows.WindowStyle.None;testChildWin.ChangeTextEvent+=newChangeTextHandler(FuncSettingClosed);testChildWin.ShowDialog();}//设置窗口关闭时执行的方法publicvoidFuncSettingClosed(){MessageBox.Show("================");testChildWin.Close();}子窗体:TestChildWin.xaml<Windowx:Class="WpfOA.Views.TestChildWin"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"Title="TestChildWin"Height="300"Width="300"><Grid><ButtonContent="关闭"Click="ButtonClick_Closed"Margin="5,5,0,0"Width="40"Height="30"HorizontalAlignment="Left"VerticalAlignment="Top"IsHitTestVisible="True"></Button><ButtonContent="返回"Click="Window_Closed"Margin="50,5,0,0"Width="40"Height="30"HorizontalAlignment="Left"VerticalAlignment="Top"IsHitTestVisible="True"></Button></Grid></Window>TestChildWin.xaml.csnamespaceWpfOA.Views{//定义委托publicdelegatevoidChangeTextHandler();///<summary>///TestChildWin.xaml的交互逻辑///</summary>publicpartialclassTestChildWin:Window{//定义事件publiceventChangeTextHandlerChangeTextEvent;publicTestChildWin(){InitializeComponent();}privatevoidWindow_Closed(objectsender,EventArgse){StrikeEvent();}privatevoidButtonClick_Closed(objectsender,EventArgse){this.Close();}//触发事件改变MainWindow的值privatevoidStrikeEvent(){if(ChangeTextEvent!=null){ChangeTextEvent();}}}}

解决方案

解决方案二:
一般不会出现这种情况,你是否使用了多线程?

时间: 2024-11-05 07:08:52

WPF 如何只关闭子窗口的相关文章

word多个文档怎么只关闭当前窗口不关闭全部?

  office word关闭时只关闭当前窗口而不是全部关闭,当office word里设置错误了,就会出现,点击关闭按钮时,所有窗口会被一起关掉,拿如何设置呢? 1.如图,打开两个word. 文档怎么只关闭当前窗口不关闭全部?-js关闭当前窗口"> 2.此时,可以看到任务栏出图标只显示一个word图标,而不是两个重叠的. 3.当你关闭时,就都关闭了 4.点击office左上角图标,点击[选项] 5.进入word选项,点击高级,勾选任务栏窗口 6.即可看到下面变成两个图标,关闭时,也只会关

不关闭子窗口不能操作父窗口该怎么做

问题描述 在父窗口中有个按钮 调用js方法弹出一个窗口想要实现:不关闭子窗口 不能操作父窗口该怎么做请各位指教 问题补充:7454103 写道 解决方案 这个也一样啊! 你平时 父子窗口 咋传值这个也可以的! 如果 父子窗口 传值不是很熟悉 可以百度下 一堆资料!解决方案二:模态窗口 本身就是这样!/*打开一个模态窗口*/function openModalWindow(url, actionName, width, height) {window.showModalDialog(url, ac

线程-emgucv Caputre类在打开摄像头的情况下,关闭子窗口,会产生中断错误

问题描述 emgucv Caputre类在打开摄像头的情况下,关闭子窗口,会产生中断错误 这是子窗口关闭时,调用的代码 private void VideoWnd_FormClosing(object sender FormClosingEventArgs e) { capture.Pause(); capture.Stop(); for(int i=0;i<999999999;i++) { if (capture._grabState == Emgu.CV.Capture.GrabState.

lhgdialog插件问题,弹出子窗口,并且点击子窗口的按钮时,关闭子窗口并且刷新父窗口!

问题描述 父窗口代码:<%@PageLanguage="C#"AutoEventWireup="true"CodeBehind="Parent.aspx.cs"Inherits="WebApplication1.Test.关闭子窗口并且刷新父窗口.Parent"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""h

基于Dialog程序,启动时不显示主窗口,只显示子窗口的实现

在项目中有如下的一个需求:软件在网络启动状态下显示主窗口,而在单机状态下只显示其子对话框(我的是无模式的).在网上找了一天,各种办法都似乎不太好,不过晚上终于找到了一个不错的解决办法.使得我很好的解决了这个问题.     if (theApp.m_bUnConnect)    {        CRecordDlg* dlg;        CWnd* m_pCWnd = this;        dlg = new CRecordDlg(m_pCWnd);        dlg->Create

wpf单例模式只打开一个窗口例子

WPF  单例窗口Close()后再Show()会报错,Close会调用Dispose,资源会马上被释放,ShowDialog()的情形是一样的.   重载OnClosing(CancelEventArgs e)方法,使用Hide()方法.  代码如下 复制代码  private static GHXTestControl _instance;         private static readonly object ObjLok = new object();         public

js关闭父窗口时关闭子窗口_javascript技巧

在父窗口写: 复制代码 代码如下: var sonid = window.open ('"+ url2 + "', 'newwindow', 'height=108, width=200, top="+ top + ",left=" + left+ ", toolbar=no, menubar=no, scrollbars=no, resizable=no,location=no, "+ "status=no,titlebar

wpf中关闭子窗体,释放资源问题。

问题描述 wpf程序,请问如何把一个子窗口关闭并且终止执行子窗口的程序,父窗口不受影响.现在尝试了this.Close();发现窗口是关闭了但是后台还在运行.. 解决方案 解决方案二:你说的关闭程序是关闭进程?为何子窗口的进程结束了,父窗口不受影响?他俩竟然不是同一进程?反正结束进程,可以用Environment.Exit(0);解决方案三:用Environment.Exit(0);的话整个进程就结束啦...而我只想关闭子窗口的.解决方案四:有线程在跑吧..解决方案五:System.Window

函数window.open实现关闭所有的子窗口_javascript技巧

此文介绍了如何用window.open方法打开一个子窗口,当我们要关闭主窗口时,这时候所有的子窗口也会跟着关闭.下面有我的实现思路和代码,分享给大家. 实现思路: 1.打开子窗口函数window.open(url,winName)的第二个参数winName可以唯一标识打开的窗口.因此关闭子窗口只需要使用winName.close()函数即可. 2.一个页面可能有多个子窗口.因此需要一个数组存储所有子窗口对象.关闭时,遍历数组即可. 3.子窗口还可以再打开子窗口.无限循环下去.因此需要判断. 此需