使用C#运行程序时删除WPF元素

时间:2010-11-23 15:27:01

标签: c# .net wpf user-interface

我想在用户查看或使用该程序之前从用户那里获取一些信息。目前我只有一个黑色矩形隐藏我的GUI,前面有一个文本框。当信息输入到框中时,我有了它并且矩形的可见性设置为折叠。

我只是在程序一开始就需要它们,我假设它们仍然存在并在崩溃时记忆。一旦我对它们没用,有没有办法彻底删除它们?

3 个答案:

答案 0 :(得分:0)

为什么不弹出一个模态窗口,然后当它关闭时,它将自动从视觉/逻辑树中删除

例如

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

答案 1 :(得分:0)

使用某种标准UI元素(如上面建议的模态窗口或Silverlight中的ChildWindow)会更好。

但是,折叠元素不会导致任何内存问题,它们会从渲染管道中删除。不透明度= 0会坚持下去。 如果你真的想要删除它,那么父Panel(例如Grid)有一个带有Remove()方法的Children集合。

答案 2 :(得分:0)

您可以使用适用于启动画面的技术来完成此操作,如下例所示。

两个不同之处:

  1. 使用ShowDialog()代替Show()使窗口模块化(始终在顶部并冻结执行)。

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

  3. 示例:

    Hide WPF Window Until Fully Loaded

    但是,您可能需要考虑重新考虑您的方法,因为它似乎不方便用户使用。