Nudge WPF窗口

时间:2014-05-15 19:45:07

标签: c# wpf xaml

我试图找到一种方法来轻推WPF窗口(类似于msn messenger窗口用于轻推的方式)。我知道有些人会说我不应该这样做,但它是为了满足特定的用户要求。通过轻推我的意思是摇动窗口位置大约半秒钟(我对MSN之类的声音不感兴趣,因为客户环境不允许声音)。

我也将把窗户带到前面(但我已经知道如何做到这一点)。

这样做的原因是在发生极其重要的事件时与最终用户联系。

我在应用程序中使用WPF XAML和c#

我考虑在计时器上随机移动窗口,但也想知道我是否可以通过XAML实现这一点?

1 个答案:

答案 0 :(得分:1)

好的,我已经找到了如何通过修改代码项目示例中为Windows窗体执行此操作的代码来完成此操作。 http://www.codeproject.com/Articles/10131/Simulate-the-quot-Nudge-quot-Effect

public  void NudgeWindow(Window window)
{
    var maxOffset = 9;
    var minOffset = 1; 
    var originalLeft = (int) window.Left;
    var originalTop = (int) window.Top;
    var rnd = 0;

    var RandomClass = new Random();
    for (int i = 0; i <= 500; i++)
    {
        rnd = RandomClass.Next(originalLeft + minOffset, originalLeft + maxOffset);
        window.Left = rnd;
        rnd = RandomClass.Next(originalTop + minOffset, originalTop + maxOffset);
        window.Top = rnd;
    }
    window.Left = originalLeft;
    window.Top = originalTop;
}