2009-11-10 4 views
3

WPF nous promet beaucoup de subtilités, mais certaines d'entre elles ne répondent pas à nos attentes.Solution pour les fenêtres qui se chevauchent bug?

Un exemple est la fenêtre sans bordure. Il suffit donc de ce simple code ajouté à la Xaml de la fenêtre:

AllowsTransparency="True" 
Background="Transparent" 
WindowStyle="None" 

fera mon l'air bien comme ceci: (ignorer les couleurs laides ils se sont foiré lors de la capture d'écran) alt text http://img29.imageshack.us/img29/5759/withoutborder.png

Trop bon pour être vrai? Oui c'est!

Cela semble bien, mais une fois que l'utilisateur essaie de sélectionner quelque chose dans la ComboBox, il ne peut pas, parce qu'il s'ouvre derrière !! - Oui derrière la fenêtre. Bien sûr, il ne peut rien voir qui ne soit pas très pratique.

Ceci est dû à un bogue connu de Windows XP, plus here. J'ai eu la chance de développer sur une machine XP sinon je ne l'aurais pas découvert avant que les commentaires négatifs de mes utilisateurs m'aient frappé ... ce qui me fait me demander, pourquoi ce bug n'est pas mentionné ailleurs, où cette "grande" fonction de fenêtre transparente est expliquée (par exemple, livres, MSDN etc.)

Même si le correctif mentionné (lien ci-dessus) peut fonctionner, je ne demanderai pas à mes utilisateurs de télécharger un correctif, juste pour que mes fenêtres soient belles. C'est pourquoi je cherche une meilleure solution, peut-être que quelqu'un a trouvé quelque chose?

Jusque-là mes fenêtres devront ressembler à ceci:

alt text http://img29.imageshack.us/img29/1570/withborder.png

Pas très agréable comme vous pouvez le voir, vous pouvez donc imaginer mon appréciation pour toutes les solutions là-bas.

MISE À JOUR:

En attendant, je confirme, que ce n'est un problème lors de l'utilisation de plusieurs moniteurs (dans mon cas bureau étendu). Après l'installation du correctif, le problème est complètement disparu (même avec le bureau étendu).

Le téléchargement du correctif a été pénible. Pourquoi Microsoft vous demande-t-il de leur donner votre adresse électronique pour vous envoyer un lien vers un fichier protégé par un mot de passe, qui doit ensuite être extrait manuellement pour pouvoir enfin installer le correctif de bogue?

Sont-ils sérieux?

Ne devrait-il pas être simple pour les utilisateurs de corriger les bogues de Microsoft? Comment puis-je dire à mes utilisateurs (qui ne sont peut-être pas aussi enclins que nous développeurs) à aller sur un site, entrer email (oh et captcha aussi - je suppose que Microsoft a peur que les ordinateurs volent leurs corrections de bugs LOL) à travers le processus décrit ci-dessus?

De toute façon, je vais m'arrêter ici avant que la question ne soit complètement différente, ce qui me permet de souligner que je cherche encore plus de solutions alternatives au problème.

+0

Salut Thorsten, vous avez évidemment écrit ceci quand vous étiez contrarié. Je connais ce sentiment. J'espère que ma réponse ci-dessous aide. Il est possible d'obtenir une bonne expérience pour vos utilisateurs, mais pas facile. Je vous suggère également d'éditer la question pour enlever une partie du vitriol. En d'autres termes, il est légèrement atténué. Pratiquement chaque logiciel a au moins un bug ou une fonctionnalité qui ne fonctionne pas correctement. Je dis "Ne vous fâchez pas - obtenez une solution de contournement". (Et soumettre un rapport de bogue au vendeur) –

+0

Merci pour votre réponse Ray, cela m'aide à trouver une solution acceptable. En ce qui concerne ma question, je ne pense pas avoir dit quoi que ce soit que je regrette, peut-être que le ton est dynamique, mais c'est tout. Ma principale plainte n'est pas qu'il y a un bug, mais que Microsoft rend la tâche difficile pour les utilisateurs. –

Répondre

0

Oui, c'est ennuyeux quand une fonctionnalité comme celle-ci ne fonctionne pas dans un système d'exploitation plus ancien et que vous devez le supporter.Voici comment je le résoudre:

  1. Vérifiez le contrat de licence Microsoft pour le téléchargement de correctif pour vous assurer que les suivantes serait légal

  2. Ajouter l'extrait .exe à votre application (soit en tant que distincte fichier ou à l'intérieur de votre exécutable, extrait avec GetManifestResourceStream, ReadAllBytes et WriteAllBytes)

  3. Lorsque votre application démarre pour la première fois, vérifiez si vous êtes sur XP avec Extended Desktop et si c'est le cas, si le correctif a été installé ou vous êtes sur un Service Pack plus récent. Si c'est le cas, cachez ce fait dans le registre afin de pouvoir passer la vérification à l'avenir. Si vous utilisez Windows XP avec Extended Desktop et que vous n'avez pas le hotfix ou le dernier Service Pack, modifiez l'arrière-plan de la fenêtre pour qu'il soit opaque et activez une option de menu pour installer le correctif. Si vous exécutez pour la première fois en tant qu'administrateur, ouvrez une MessageBox indiquant qu'un correctif logiciel permet la transparence de la fenêtre et vous demande si vous devez l'installer. Si l'utilisateur dit oui, exécutez l'installation du correctif. S'ils disent non, dites-leur que l'option de menu est disponible s'ils changent d'avis à l'avenir.

Ou bien, si elles sont en cours d'exécution sur XP, vous pouvez toujours courir opaque et un message apparaitre votre application « fonctionne encore mieux sur Vista ou Windows 7 ».

Questions connexes