WindowStyle="None"
とAllowsTransparency="True"
を持つWindow
要素があるため、タイトルバーがなく、透過性をサポートしています。(WPF)ウィンドウの外で発生するマウスイベントをキャプチャする方法はありますか?
ウィンドウ内の任意の場所を左クリックしてドラッグすると、画面上の任意の位置にウィンドウを移動できるようにしたいと考えています。左マウスボタンが押されている限り、ウィンドウはマウスと共にドラッグする必要があります。
マウスをウィンドウの外側に移動したとき(マウスの左ボタンをウィンドウの端に近づけてマウスをきれいに動かしたときなど)、この機能が動作するようになりました。ウィンドウはマウスの位置をキャプチャしなくなり、マウスと共にドラッグしません。ここで
は、私が仕事を得るために使用するコードビハインドからのコードです:
public Point MouseDownPosition { get; set; }
public Point MousePosition { get; set; }
public bool MouseIsDown { get; set; }
private void window_MyWindowName_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
MouseDownPosition = e.GetPosition(null);
MouseIsDown = true;
}
private void window_MyWindowName_MouseMove(object sender, MouseEventArgs e)
{
if (MouseIsDown)
{
MousePosition = e.GetPosition(null);
Left += MousePosition.X - MouseDownPosition.X;
Top += MousePosition.Y - MouseDownPosition.Y;
}
}
private void window_MyWindowName_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
MouseIsDown = false;
}