2009-05-27 35 views
3

我正在用XamlReader加載XAML文件,並將返回的對象設置爲窗口的Content屬性。雖然這似乎工作得很好,但它沒有達到我所期望的。如果窗口的原始XAML包含鍵綁定或按鈕,它們似乎仍然存在。鍵綁定仍然有效,代碼中的任何Button對象仍然有效。我預料到一切都會被銷燬,因爲我用新的XAML代替了它們,但情況並非如此。設置Window.Content不會破壞之前存在的用戶界面?

那麼設置Content究竟做了什麼?它不能做什麼?

謝謝!

回答

1

更改Content屬性,您只需切換表示窗口內容的對象,將保留所有元素樹,包括綁定。 在WPF中,你不能明確地處理控件,因爲沒有任何可處置的東西,我的意思是,沒有非託管資源要釋放。如果稍後不提及此控件,則GC將清除它們。對於按鍵組合,你將不得不以編程方式刪除它們,通過窗口控件迭代或調用相應的應用程序的命令清潔,例如:

ApplicationCommands.Close.InputGestures.Clear(); 

希望這有助於!