c# - 设置 Window.Content 不会破坏之前存在的 UI?

标签 c# wpf xaml

我正在使用 XamlReader 加载 XAML 文件,并将返回对象设置为窗口的 Content 属性。虽然这似乎工作得很好,但它并没有达到我的预期。如果窗口的原始 XAML 包含键绑定(bind)或按钮,它们似乎仍然存在。键绑定(bind)仍然有效,代码中的任何 Button 对象仍然有效。自从我用新的 XAML 替换它们后,我希望一切都被销毁,但事实并非如此。

那么设置内容到底有什么作用呢?它不做什么?

谢谢!

最佳答案

改变 Content 属性你只是在切换代表 Window 内容的对象,所有的元素树都将被维护,包括绑定(bind)。 在 WPF 中,您不能显式处置控件,因为没有任何东西可以处置,我的意思是,没有非托管资源可以释放。如果以后不引用此控件,GC 将清理它们。对于键绑定(bind),您必须以编程方式删除它们,遍历窗口控件或调用相应的应用程序命令清理器,例如:

ApplicationCommands.Close.InputGestures.Clear();

希望这对您有所帮助!

关于c# - 设置 Window.Content 不会破坏之前存在的 UI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/916732/

相关文章:

c# - Win32 和 x64 平台命名

c# - 获取 .ttf 文件的字体名称

c# - 禁用文本框样式中的文本选择

c# - 如何在 Silverlight 中的附加依赖属性上设置 TypeConverter?

c# - WPF 菜单项未关闭

c# - MVC 不路由到我的 Controller 的操作结果之一?

c# - WPF Datagrid - 订阅单元格加载事件?

WPF 用户控件内存泄漏

c# - 尝试从代码隐藏加载 xaml 时出现 xaml 解析异常

c# - 将数据从服务器发送到特定客户端