2010-11-23 23 views
0

我想在用户看到或使用程序之前从用户那里获取一些信息。目前,我只有一个黑色的矩形,在其前面隐藏了一个文本框。当信息被输入框中时,我已经将矩形的可见性设置为折叠状态。当程序运行C时删除WPF元素#

我只在程序开始的时候需要它们,我假设它们仍然存在,并在崩溃时记忆。有没有一种方法可以完全删除元素,一旦我没有使用它们?

回答

0

为什么没有弹出,那么它关闭时,它会被删除形成视觉/逻辑树自动

例如

Window win = new MyPopupWindow(); 
win.ShowDialog(); 
0

使用某种标准UI元素的模态窗口就像上面提到的模式窗口或Silverlight中的ChildWindow会更好。

但是,折叠的元素不应该引起任何内存问题,它们会从渲染管道中取出。虽然不透明度= 0将坚持。 如果你真的想删除它,父面板(例如Grid)有一个带有Remove()方法的Children集合。

0

你可以用一种专门用于启动屏幕的技术来做到这一点,就像下面的例子。

两点区别:

  1. 使用的ShowDialog(),而不是显示()使窗口模块(总在最前面,并冻结执行)。

  2. 在main.thread上运行,而不是在单独的线程上运行。

例子:

Hide WPF Window Until Fully Loaded

但是,您可能要考虑重新思考你的方法,因为似乎用户友好它不。