2010-07-23 1 views
1

ce que je manque d'avoir ce code derrière une fenêtre XAMLwindow.Owner (comportement attendu)

// Création d'une fenêtre et faire cette fenêtre son propriétaire fenêtre ownedWindow = new Window(); ownedWindow.Owner = this; ownedWindow.ShowDialog();

Je ne vois pas le comportement http://msdn.microsoft.com/en-us/library/system.windows.window.owner.aspx

Une fois que cette relation est établie, les comportements suivants sont exposés:

• Si une fenêtre de propriétaire est réduite au minimum, toutes les fenêtres appartenant sont réduites au minimum aussi bien.

• Si une fenêtre possédée est réduite, son propriétaire n'est pas réduit.

• Si une fenêtre propriétaire est agrandie, la fenêtre propriétaire et ses fenêtres propriétaires sont restaurées.

• Une fenêtre propriétaire ne peut jamais couvrir une fenêtre possédée.

• Les fenêtres possédées qui n'ont pas été ouvertes à l'aide de ShowDialog ne sont pas modales. L'utilisateur peut toujours interagir avec la fenêtre du propriétaire.

• Si vous fermez une fenêtre propriétaire, ses fenêtres propriétaires sont également fermées.

• Si une fenêtre possédée a été ouverte par sa fenêtre de propriétaire à l'aide de l'option Afficher et que la fenêtre du propriétaire est fermée, l'événement de fermeture de la fenêtre possédée n'est pas déclenché.

TIA

Répondre

3

Le ShowDialog() method montre la fenêtre comme une boîte de dialogue modale, remplaçant la plupart de ce comportement.

Vous devez appeler Show() à la place pour afficher la fenêtre en tant que fenêtre enfant. Notez que Show() n'est pas un appel bloquant; votre prochaine ligne de code s'exécutera immédiatement, pas après la fermeture de la fenêtre.

+0

Merci SLaks Qu'en est- http://msdn.microsoft.com/en-us/library/system.windows.window.owner.aspx Lorsque vous ouvrez une fenêtre enfant en appelant ShowDialog, vous devez également définir la Propriétaire propriété de la fenêtre de l'enfant. – ramnz

+0

@ramnz: Quoi? Si vous voulez une boîte de dialogue modale, appelez 'ShowDialog()'. Si ce n'est pas le cas, appelez 'Show'. – SLaks