确保实现WPF任务栏窗口预览

时间:2011-06-09 20:02:44

标签: wpf windows-7 taskbar

当用户将鼠标放在任务栏图标上时,如何确保刷新WPF应用程序(.net 4)的功能预览。
我有一个可视化某些状态值的应用程序。如果应用程序窗口最小化并且用户将鼠标悬停在任务栏按钮上,则显示的预览窗口将显示窗口处于活动状态的窗口的最后一个视图。不过,我想有一个实际的观点 是否有可能实现这一目标?

2 个答案:

答案 0 :(得分:6)

我认为您需要自定义预览,如here所述(在“自定义预览”部分下)。利用Windows API Code Pack for Microsoft® .NET Framework

可以找到一个示例here,但看起来像是:

TabbedThumbnail preview = new TabbedThumbnail(parentForm.Handle, childForm.Handle);
TaskbarManager.Instance.TabbedThumbnail.AddThumbnailPreview(preview);
preview.TabbedThumbnailBitmapRequested += (o, e) =>
    {
        Bitmap bmp = new Bitmap(width, height);

        // draw custom bitmap...

        e.SetImage(bmp);
        e.Handled = true;
    };

另一个例子,可以找到here,其中说明:

  

CustomWindowsManager类   提供了一个抽象   定制窗口缩略图预览   和实时预览(偷看),包括   接收通知的设施   当请求预览位图时   桌面窗口管理器(DWM)和   自动抓取预览   窗口的位图。

此代码的下载链接是here,其中包含CustomWindowsManager类。这似乎提供了实时预览。

答案 1 :(得分:1)

你可能不能。 Windows 7将打开窗口的图形管理到任务栏的实时预览。当它被最小化时,它无法知道窗口现在是什么样的,因为它根本没有被绘制。

我想自定义缩略图并非不可能。除了CodeNaked的回答,我还找到了this article,它甚至包含来自同一个应用程序的多个缩略图。