在当前窗口之外显示工具提示

时间:2009-04-21 13:36:23

标签: .net wpf winapi visual-c++

我有.NET WPF应用程序,其中一个要求是用户可以在我的应用程序之外选择和复制文本。我的应用程序必须响应剪贴板事件。从字典中查找单词,然后在选定的文本旁边显示工具提示,并带有单词的翻译。

据我所知,这必须使用对Windows API的调用来完成。

我找到了完成此任务的示例代码。

http://www.codeproject.com/KB/miscctrl/tooltipzen.aspx?fid=4069&df=90&mpp=25&noise=3&sort=Position&view=Quick&fr=26

我的第一个想法之一是将此示例转换为可以从.NET应用程序调用的库(基本上我的库将包含2个方法:show and hide tooltip)。不幸的是,我的VC ++知识几乎没有。

还有其他方法可以解决这个问题吗?

非常感谢你。

1 个答案:

答案 0 :(得分:2)

工具提示没有什么神奇之处 - 它们只是带有薄边框,没有标题,背景黄色并始终处于顶级风格的窗户。

您可以轻松地在WPF中复制这些内容:

<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        ResizeMode="NoResize" 
        SizeToContent="WidthAndHeight"
        Background="Yellow" 
        WindowStyle="None" 
        Topmost="True">
    <Border BorderBrush="Black" BorderThickness="1">
        <TextBlock Text="Tooltip text"/>
    </Border>
</Window>

现在您可以使用Window的所有方法和属性来移动,调整大小,显示和隐藏您的“工具提示”,作为奖励您还可以在工具提示中插入更多高级上下文(图像,按钮,超链接,您的徽标)或者让它看起来更有趣。