我试图让一个WPF应用程序(通常的Windows应用程序,不XBAP或Silverlight)。 我想主要的应用程序窗口,以支持透明度,并通过下面的桌面显示。

但是,当我在一个按钮指定工具提示文本,显示的工具提示的下方的(z顺序)主窗口!

我的屏幕截图,其中: *部分透明的主窗口的另一个应用程序和overlapps块图。 *从我的按钮工具提示出现在其他应用程序的前面。 *如果工具提示没有在其他应用程序的前面,它是后面的部分的透明性。

我读别处,这是与发动机WPF为32位XP一个已知的问题和在Vista中不会发生。

我所寻找的是一个固定/解决方法。

有帮助吗?

解决方案 3

在这里确定 - 是我的发现作为一种解决方法:

使用工具提示的问题消失,当窗口也由最顶层。

不过,我不希望我的窗口是最顶层,所以我只做到这一点时,我的窗口有键盘焦点:

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}"

此关闭除了当它工作权的工具提示。 不要真的需要提示时,我的窗口不是焦点呢。

只有讨厌的事现在是,开/关的结合必须在每个限定了工具提示元件上完成的。

其他提示

尝试.SetValue(Canvas.ZIndex,100)上的要在上面的UIElement方法。 (我使用100,只以迫使元件顶端)

这是Windows XP和WPF的一个已知的问题(例如,请参见此处的上连接)。

可以通过避免该问题的不使用分层窗口(使用一用一帧)。我认为另一个解决办法是设置整个窗口的最顶层=真的,但对我来说,这不是一个很好的解决方案,我不知道这一点。

我不知道,如果MS正在解决这个问题,因为我认为这是XP的图形层颇深。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top