Home Dashboard Directory Help
Search

WPF Tooltip behind layered window by Lars Heinrich


Status: 

Closed
 as Won't Fix Help for as Won't Fix


1
0
Sign in
to vote
Type: Bug
ID: 431170
Opened: 4/7/2009 1:10:22 PM
Access Restriction: Public
1
Workaround(s)
view
2
User(s) can reproduce this bug

Description

We are getting reports from our testers that Tooltips are not showing on WinXP. After some research we figured out that they where showing, but behind the window. After restarting the machine the Problem is gone.
Changing Window to normal window also fixes the problem.
Strange thing is that this happens not every time.
It happens after a view houres the machines are running with different user changes.
Before we can reproduce the bug, we see a black screen for a few seconds just after the application start, and then all tooltips are showing behind the window.

We already tried to fix this by applying KB943326-x86 on a testmachine. This doesn´t fix the problem. The steps to reproduce are for dual monitor machines, but we also see the problem on single monitor machines.
Details
Sign in to post a comment.
Posted by Microsoft on 7/7/2009 at 12:00 PM
Thank you for reporting this issue. Though this issue is under investigation, we will likely not have a fix available in .NET 4.0. We will update this bug again when we are able to fix the issue in a future release. Thanks!
Posted by Microsoft on 4/7/2009 at 11:13 PM
Thanks for your feedback.

We are escalating this issue to the appropriate group within the Visual Studio Product Team for triage and resolution. These specialized experts will follow-up with your issue.

Thank you,
Visual Studio Product Team
Sign in to post a workaround.
Posted by BlackR2D on 11/19/2009 at 7:20 AM
The problem is not happening when the window is Topmost. Since we don't want to have it stuck Topmost all of the time, we do a little trick, this way the window is topmost only when it's in focus (any kind) anyway:

        private void Window_MouseEnter(object sender, MouseEventArgs e)
        {
            Topmost = true;
        }

        private void Window_MouseLeave(object sender, MouseEventArgs e)
        {
            Topmost = false;
        }

        private void Window_GotFocus(object sender, RoutedEventArgs e)
        {
            Topmost = true;
        }

        private void Window_LostFocus(object sender, RoutedEventArgs e)
        {
            Topmost = false;
        }

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

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