【问题标题】:Show tooltip outside of current Window在当前窗口之外显示工具提示
【发布时间】:2009-04-21 13:36:22
【问题描述】:

我有 .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 个方法:显示和隐藏工具提示)。不幸的是,我的 VC++ 知识几乎一无所有。

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

非常感谢。

【问题讨论】:

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


    【解决方案1】:

    工具提示并没有什么神奇之处 - 它们只是带有细边框、没有标题、淡黄色背景且始终位于顶部的样式的窗口。

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

    【讨论】:

    • 你是对的。我让我的生活变得更加艰难。将用户您的解决方案。谢谢
    • 除了它们可能不是黄色的,或者可能像 vista 上那样有圆角
    • Anders,工具提示是一个普通的日常窗口,您可以自己应用一些样式,颜色存储在注册表中(我忘了在哪里),使用 SetWindowRgn 函数可以轻松获得圆角。跨度>
    猜你喜欢
    • 2023-03-18
    • 2015-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-01
    • 2013-11-04
    相关资源
    最近更新 更多