2009-05-24 7 views
0

Comment créer un masque pour couvrir TOUS les éléments d'un Windows/Canvas (avec sous-canevas/éléments à l'intérieur)?Masquer tous les éléments d'une fenêtre/toile avec C#/WPF

Merci à l'avance

EDIT: Je veux ajouter d'autres contrôles/éléments/whatever après je crée le masque. Est-ce correct? Comment?

+0

Je suis toujours surpris que quelque chose d'aussi simple n'obtienne aucune réponse. Peut-être que MS est à des années-lumière d'Adobe sur ce sujet? Ou y at-il quelque chose que je ne comprends pas à propos de WPF/C#? – ozke

Répondre

0

Je ne suis pas sûr que vous ayez à "masquer" les contrôles. Pourquoi n'utilisez-vous pas la propriété de visibilité?

Par exemple, si vous avez un StackPanel et que vous voulez masquer et son contenu, il suffit de mettre

<StackPanel Visibility="Hidden"> 
... 
</StackPanel> 

De cette manière, vous pouvez contrôler la visibilité de chaque gadget. Si vous voulez "ajouter" ou rendre les autres visibles, définissez la propriété sur "Visible".

+0

Et si je ne veux en cacher qu'une moitié? (Par exemple: pour une animation glissante) – ozke

+1

Peut-être que vous devriez utiliser un autre widget tel que Expander, ou des onglets. Une solution laide serait d'utiliser un rectangle pour masquer vos widgets, mais je suis convaincu, même sans connaître votre programme, qu'il existe une façon plus intelligente de le faire. Tout d'abord, il est un peu étrange de masquer les éléments de l'interface utilisateur ... Si vous ajoutez un widget, ils doivent être visibles, sinon ne les utilisez pas! Deuxièmement, pour effectuer une animation coulissante, vous pouvez utiliser un élément commun comme une pile, une grille ou une toile et lui appliquer une animation entre 2 états (visible -> caché) – rockeye

Questions connexes