none
Flickering with AllowsTransparency=True

    Question

  • I am seeing problems with flickering with Popup controls with AllowsTransparency="True". This problem seems to be related to specific video cards. I can see the problem using a Dell Latitude D820 with Intel 945GM video chipset. Other Dell Latitude 820 systems with an NVidia chipset do not have this problem. I have installed the latest drivers availble for this chipset.

    I have investigated the problem enough to find that there are known issues with Layered Window support in some cases --
    http://support.microsoft.com/kb/937106/en-us and http://forums.msdn.microsoft.com/en-US/wpf/thread/e6c0a499-9104-4971-ad5f-949dbe4de910

    I have applied the hotfix in the linked knowledgebase article, but it did not resolve the issue. I have been able to fix the problem by setting AllowsTransparency="False". However, in order to resolve the issue completely, I must change this for every popup in the application that has that setting.

    Is there any way to force AllowsTransparency="False" for all Popups (including third-party controls)? Or, are there other options that I should try to resolve this issue?


    Thanks,
    Josh
    Monday, August 25, 2008 9:04 PM

Answers

  • I'm not sure I'd solve this problem by disabling AllowsTransparency across the app.  It seems like you are sacrificing the general user experience to accomodate the needs of the lower end machines.  If anything, you might just want to add a way to toggle AllowsTransparency on or off.  (I'd probably just document the behavior and identify any known graphics cards/drivers that exhibit the behavior.)

    If you do want to solve this by modifying AllowsTransparency, you will need to approach this by retemplating the controls that contain or leverage popups (MenuItem, ComboBox, etc).  Most of the default templates for these controls explicitly set AllowsTransparency to True on their popups.  This means the local value cannot be overridden via property metadata or a simple style setter.  Retemplating is really the only option.
    Dr. WPF - Online Office at http://drwpf.com/blog/
    Monday, August 25, 2008 10:45 PM

All replies

  • I'm not sure I'd solve this problem by disabling AllowsTransparency across the app.  It seems like you are sacrificing the general user experience to accomodate the needs of the lower end machines.  If anything, you might just want to add a way to toggle AllowsTransparency on or off.  (I'd probably just document the behavior and identify any known graphics cards/drivers that exhibit the behavior.)

    If you do want to solve this by modifying AllowsTransparency, you will need to approach this by retemplating the controls that contain or leverage popups (MenuItem, ComboBox, etc).  Most of the default templates for these controls explicitly set AllowsTransparency to True on their popups.  This means the local value cannot be overridden via property metadata or a simple style setter.  Retemplating is really the only option.
    Dr. WPF - Online Office at http://drwpf.com/blog/
    Monday, August 25, 2008 10:45 PM
  • I did some further work on this issue and determined that Intel has released drivers that resolve the issue, but they are not available from Dell yet. The setup program from Intel won't install them and instructs me to contact the computer manufacturer, so I had to bypass the installer and force Windows to use those drivers anyway. I hope Dell releases new drivers soon.
    Wednesday, September 10, 2008 5:23 PM