/ / Afficher une fenêtre centrée - .net, wpf, xaml, grille, centrage

Affichage d'une fenêtre centrée - .net, wpf, xaml, grid, centrage

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 № 1

Pour 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