【问题标题】:How to snap a WPF app to the nearest screen corner by a certain threshold?如何按某个阈值将 WPF 应用程序捕捉到最近的屏幕角落?
【发布时间】:2018-07-14 20:16:43
【问题描述】:

基本上我有一个 MouseDown 事件,我在其中移动窗口。我希望能够将我的 WPF 应用程序捕捉到最近的屏幕角落某个阈值(即 20 像素),而不仅仅是屏幕边缘,而是最近的角落。

我应该使用哪些事件来完成此任务?我看到了一些文章,但它们似乎是对 Window 类的子类化等等。

我知道我将遍历屏幕的每个角落和应用程序窗口的每个角落,但我不确定我需要使用哪些事件以及 WPF 窗口的哪个属性为我提供了窗口范围的确切坐标。

【问题讨论】:

    标签: c# wpf layout screen


    【解决方案1】:

    我们可以通过 SystemParameters.WorkArea.Width(x1) 和 SystemParameters.WorkArea.Height(y1) 得到屏幕的位置,而你的窗口大小是 this.width(x2) 和 this.Height(y2)。所以,我们得到四个角的位置:(0,0),(x1-x2,0),(0,y1-y2),(x1-x2,y1-y2)。 然后,我们可以使用窗口的 MouseLeftButtonUp 和 down 事件,我试过了,但我只是在它写的窗口中点击。点击它的标题栏时移动窗口不能触发事件。我厚也许我们可以自定义标题栏并在它的 MouseLeftButtonUp 和 down 中写入事件。

    【讨论】:

    • thx 我没有使用标题栏,但 WorkArea 不能完全使用 2 个屏幕。
    • 也许你可以试试 System.Windows.Forms.Screen.AllScreens[0].WorkingArea
    猜你喜欢
    • 2021-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-09
    • 2013-04-29
    • 1970-01-01
    • 2021-01-30
    相关资源
    最近更新 更多