2009-05-27 6 views
3

Je charge un fichier XAML avec XamlReader et définit l'objet de retour à la propriété Content de la fenêtre. Bien que cela semble bien fonctionner, il ne fait pas tout à fait ce que j'attends. Si le code XAML d'origine de la fenêtre contient des raccourcis clavier ou des boutons, ils semblent toujours exister. Les raccourcis clavier fonctionnent toujours et tous les objets Button du code sont toujours valides. J'aurais attendu que tout soit détruit depuis que je les ai remplacés par un nouveau XAML mais ce n'est pas le cas.Définition de Window.Content ne détruit pas l'interface utilisateur qui était là avant?

Alors, que fait exactement le réglage de contenu? Qu'est-ce que ça ne fait pas?

Merci!

Répondre

1

Modification de la propriété Content vous changez simplement l'objet qui représente le contenu de la fenêtre, toute l'arborescence des éléments sera conservée, y compris les liaisons. Dans WPF, vous ne pouvez pas disposer explicitement d'un contrôle car il n'y a rien à éliminer, je veux dire, aucune ressource non gérée à libérer. Si vous ne référez pas ces contrôles plus tard, le GC les nettoiera. Pour les raccourcis clavier, vous devrez les enlever programatically, itérer contrôle de fenêtre ou d'appeler le nettoyeur de commande d'application respectif, par exemple:

ApplicationCommands.Close.InputGestures.Clear(); 

Hope this helps!

Questions connexes