相关疑难解决方法(0)

如何在用户点击外部时关闭WPF对话窗口

我想关闭一个System.Windows.Window,如果用户点击它以外的任何地方.窗口显示为对话框.如何在wpf窗口外收到点击?

AppointmentDetailsView.ShowDialog();
Run Code Online (Sandbox Code Playgroud)

wpf

13
推荐指数
1
解决办法
8009
查看次数

如何捕获(WPF)窗口之外发生的鼠标事件?

我有一个Window有元素WindowStyle="None"AllowsTransparency="True",因此它没有标题栏和支持透明度.

我希望用户能够通过左键单击窗口中的任意位置并拖动来将窗口移动到屏幕上的任何位置.只要按下鼠标左键,窗口就会随鼠标一起拖动.

我能够使用这个功能有一个例外:当鼠标移动到窗口之外时(例如当在窗口边缘按下鼠标左键并且鼠标移动时),窗口不再捕获鼠标位置,不随鼠标拖动.

以下是我用来完成工作的代码隐藏代码:

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; …
Run Code Online (Sandbox Code Playgroud)

c# wpf window capture mouseevent

10
推荐指数
2
解决办法
1万
查看次数

标签 统计

wpf ×2

c# ×1

capture ×1

mouseevent ×1

window ×1