C#中的Windows资源管理器/ Aero样式工具提示?

unr*_*ity 5 c# tooltip winforms

如果您使用Windows Vista或更高版本,您可能已经看到了这种工具提示,带有彩色文本和图标:

在此输入图像描述

我使用各种关键字搜索,例如Explorer,Aero,Windows,工具提示,并没有遇到任何有关如何实现此目的的有用信息.

最好,我想解决WinForms的问题.有人有运气吗?

unr*_*ity 8

这篇关于wyDay的博客文章有解决方案.

它链接到一个名为"Shell Style Drag and Drop in .NET"的3部分系列:

第3部分链接到此存档,其中包含大量项目.请注意,为了进行编译,您可能需要设置DragDropLib和WpfDragDropLib项目以允许不安全的代码.

里面有样品,但为方便起见,这里有一个摘录:

#region Drop target accepting FileDrop

private void textBox2_DragEnter(object sender, DragEventArgs e)
{
    if (e.Data.GetDataPresent(DataFormats.FileDrop))
    {
        e.Effect = e.AllowedEffect & DragDropEffects.Copy;
        DropTargetHelper.DragEnter(textBox2, e.Data, new Point(e.X, e.Y), e.Effect, "Copy to %1", "Here");
    }
    else
    {
        e.Effect = DragDropEffects.None;
        DropTargetHelper.DragEnter(textBox2, e.Data, new Point(e.X, e.Y), e.Effect);
    }
}

private void textBox2_DragOver(object sender, DragEventArgs e)
{
    if (e.Data.GetDataPresent(DataFormats.FileDrop))
        e.Effect = e.AllowedEffect & DragDropEffects.Copy;
    else
        e.Effect = DragDropEffects.None;
    DropTargetHelper.DragOver(new Point(e.X, e.Y), e.Effect);
}

private void textBox2_DragLeave(object sender, EventArgs e)
{
    DropTargetHelper.DragLeave(textBox2);
}

private void textBox2_DragDrop(object sender, DragEventArgs e)
{
    if (e.Data.GetDataPresent(DataFormats.FileDrop))
        e.Effect = e.AllowedEffect & DragDropEffects.Copy;
    else
        e.Effect = DragDropEffects.None;
    DropTargetHelper.Drop(e.Data, new Point(e.X, e.Y), e.Effect);

    if (e.Effect == DragDropEffects.Copy)
        AcceptFileDrop(textBox2, e.Data);
}

#endregion // Drop target accepting FileDrop
Run Code Online (Sandbox Code Playgroud)

从我的实验来看,似乎我可以写e.Effect = DragDropEffects.Copy;而不是e.Effect = e.AllowedEffect & DragDropEffects.Copy;; 虽然我目前还不明白&它的用途,所以有人可能会帮助我.除此之外,似乎文本删除类型不会显示描述工具提示.

否则,我对此非常满意.

希望这也有助于解决这个问题的任何人.