代码之家  ›  专栏  ›  技术社区  ›  Jeff B

正在剪裁XAML工具提示

  •  0
  • Jeff B  · 技术社区  · 17 年前

    我正在尝试制作WPF应用程序(常规Windows应用程序,而不是XBAP或Silverlight)。 我希望主应用程序窗口支持透明度,并通过下面的桌面显示。

    但当我在按钮上指定工具提示文本时,工具提示会出现 在下方

    *另一个应用程序重叠并阻塞部分透明主窗口的视图。 *“我的”按钮的工具提示显示在其他应用程序的前面。 *如果工具提示不在其他应用程序前面,则为 在…的后面 部分透明。

    我在别处读到,这是32位XP的WPF引擎的一个已知问题,在Vista中不会发生。

    我正在寻找的是修复/解决方法。

    3 回复  |  直到 17 年前
        1
  •  1
  •   Janie    17 年前

    在要放在顶部的UIElement上尝试.SetValue(Canvas.ZIndex,100)方法。(我使用了100,只是为了将元件顶到顶部)

        2
  •  0
  •   dalind    17 年前

    这是WIndows XP和WPF的一个已知问题(例如,请参见此处 on Connect ).

    不使用分层窗口 (使用带框架的)。我认为另一个解决办法是设置整个窗口 最顶端=真 ,但对我来说,这不是一个很好的解决方案,对此我不确定。

    我不知道微软是否正在解决这个问题,因为我认为它在XP的图形层中非常深入。

        3
  •  0
  •   Jeff B    17 年前

    好的-以下是我发现的解决方法:

    当窗口也被设置为顶部时,工具提示的问题就消失了。

    private void Window_GotKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)
    {
        this.Topmost = true;
    }
    
    private void Window_LostKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)
    {
        this.Topmost = false;
    }
    

    然后,仅当我的窗口位于最上方时,我才使用绑定启用每个工具提示:

    ToolTipService="{Binding ElementName=MainWindow, Path=Topmost}"
    

    这将关闭工具提示,除非它正常工作。 当我的窗口没有焦点时,不需要工具提示。

    现在唯一恼人的事情是,必须对定义工具提示的每个元素进行开/关绑定。