wpf 窗口弹出问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wpf 窗口弹出问题相关的知识,希望对你有一定的参考价值。

主窗体上有个按钮,点击按钮式弹出另一个窗体,我是这样写的比如:window wnd=new window(); wnd.show();但是每点一次按钮就弹出一个窗口,我不想用wnd.showdialog();
和加一个bool值来判断,有更好的方法吗?求高手解答,谢谢。

这种情况下应该使用单例模式啊
你可以将wnd 对象 作为原页面的一个属性
每次点击按钮的时候先判断wnd 是否已经实例化
如果已经实例化了就直接使用,没有实例化再new 新的
这样就保证了你只会弹出一个窗体
PS:多线程下情况会复杂一些
你还需要判断一下wnd 的弹出状态
参考技术A 对象级变量:
private window = null;
按钮事件:
if (this.window == null)
this.window = new Window();

this.window.show();追问

第二次点击窗口弹不出来啊

追答

你把弹出窗口关了吧?!
在那个弹出的窗口里注册下closing事件,把关闭操作改为隐藏
this.visible = false;
主窗口按钮事件里
this.window.visible = true;
思路就是这么个思路了。。。

WPF 工具包自动完成框中可调整大小的弹出窗口

【中文标题】WPF 工具包自动完成框中可调整大小的弹出窗口【英文标题】:Resizable popup in WPF toolkit autocompletebox 【发布时间】:2012-02-13 20:49:09 【问题描述】:

有没有办法使 WPF 工具包自动完成框的弹出窗口可调整大小(通过添加调整大小抓手)?但是首先,可以在xaml文件中访问吗?

【问题讨论】:

【参考方案1】:

这里有一个解决方案

http://kentb.blogspot.co.at/2007/04/resizer-wpf-control.html

<kb:Resizer xmlns:kb="http://kent.boogaart/controls">
    Content
</kb:Resizer> 

Resizer 控件将调整大小的行为添加到您放置在其中的内容中。默认模板使用 ResizeGrip 并允许用户拖动夹点以调整内容大小。例如,您可以通过以下方式向 TextBox 添加调整大小的行为(从这里开始假定 XML 命名空间映射):

<kb:Resizer>
   <TextBox>My TextBox</TextBox>
</kb:Resizer> 

【讨论】:

以上是关于wpf 窗口弹出问题的主要内容,如果未能解决你的问题,请参考以下文章

仅底部带有圆角的 WPF 弹出窗口

WPF 弹出窗口捕获鼠标双击事件

WPF 弹出窗口:如何为弹出窗口制作可重复使用的模板?

单击按钮时打开 WPF 弹出窗口

WPF 解决弹出模态窗口关闭后,主窗口不在最前

wpf弹出的窗口只能是一个?