Il est un moyen de permettre beaucoup plus facile le traînement, ou le déplacement des Window
s sans marge. S'il vous plaît voir la page Window.DragMove
Method sur MSDN pour plus de détails, mais en bref, il vous suffit d'ajouter cette ligne à votre code dans l'une des souris vers le bas des gestionnaires d'événements:
public YourWindow()
{
InitializeComponent();
MouseLeftButtonDown += YourWindow_MouseLeftButtonDown;
}
...
private void YourWindow_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
DragMove(); // <-- this is all you need to add
}
Les utilisateurs pourront alors cliquer sur n'importe quelle zone du Window
(en fonction de ce que vous y mettez) et le faire glisser autour de l'écran.
MISE A JOUR >>>
Il semble que il y a plus à vos besoins que j'ai remarqué. Pour réaliser ce que vous voulez, il y a un certain nombre de choses que vous devez faire. Tout d'abord, vous devez positionner l'enfant Window
dans un lieu particulier par rapport au MainWindow.xaml Window
. Comme vous l'ouvrez, faire quelque chose comme ceci:
Window window = new Window();
window.Top = this.Top;
window.Left = this.Left;
window.LocationChanged += Window_LocationChanged;
window.ShowDialog();
pourrait être compensée par une certaine quantité de jeu La position enfant Window
:
Window window = new Window();
window.Top = this.Top + someHorizontalOffsetAmount;
window.Left = this.Left + someVerticalOffsetAmount;
window.LocationChanged += Window_LocationChanged;
window.ShowDialog();
Ensuite, vous avez besoin d'un gestionnaire pour l'événement Window.LocationChanged
(qui est soulevée l'enfant Window
est déplacé):
private void Window_LocationChanged(object sender, EventArgs e)
{
Window window = (Window)sender;
this.Top = window.Top;
this.Left = window.Left;
}
C'est tout! Maintenant, les deux Window
vont se déplacer ensemble. Évidemment, si vous utilisez un offset dans le premier exemple, vous devrez utiliser le (s) même (s) offset (s) dans le gestionnaire Window_LocationChanged
.
Ensuite seulement ma fenêtre de dialogue bouge. Ce n'est pas ce que je voulais faire. – Kingpin