J'ai besoin de montrer un Window
centré dans la deuxième colonne de mon Grid
. Puisque c'est un Window
, Je ne peux pas "l'ajouter directement à la grille via XAML. Puis-je rechercher par programme le centre de la deuxième colonne de ma grille, afin de déplacer ma fenêtre avant de l'afficher?"
Ma deuxième fenêtre est juste une petite boîte de message élégante. J'essayais plus tôt de le convertir en un UserControl
au lieu d'un Window
, afin que je puisse le mettre directement dans la deuxième colonne de la grille, mais alors je ne peux pas "faire ShowDialog()
dessus. Je dois attendre que l'utilisateur clique sur OK avant de continuer.
Réponses:
1 pour la réponse № 1Pour ceux qui recherchent une réponse, voici ce que j'ai obtenu:
private void CenterWindowInRightPane(Window window, UIElement rightPane)
{
Point loc = rightPane.TransformToAncestor(this).Transform(new Point(0, 0));
w.Left = (this.Left + loc.X) + (rightPane.ActualWidth - w.ActualWidth) / 2;
w.Top = (this.Top + loc.Y) + (rightPane.ActualHeight - w.ActualHeight) / 2;
}
0 pour la réponse № 2
Je pense que l'interface MDI convient à votre cas: http://wpfmdi.codeplex.com
0 pour la réponse № 3
Vous pouvez utiliser un Popup
auquel vous définissez la grille comme PlacementTarget
Et mettre Placement=Center