web-dev-qa-db-fra.com

Comment définir l'opacité d'arrière-plan et l'opacité de bordure en XAML?

J'ai un TextBox:

<TextBox x:Name="myTextBox"/>

Le TextBox en code derrière a deux booléens:

 myTextBox.Background.Opacity = 0;
 myTextBox.BorderBrush.Opacity = 0;

Maintenant, tout cela est bon et dandy, mais comment puis-je définir ces deux propriétés en XAML?

Btw, réglage:

<TextBox x:Name="myTextBox" Background="#00FFFFFF"/>

N'affecte pas la propriété Opacity. Je voudrais définir spécifiquement cette propriété d'opacité en XAML.

25
foreyez

Vous voulez faire quelque chose comme ça:

<TextBlock Text="foo bar">
    <TextBlock.Background>
        <SolidColorBrush Color="Azure" Opacity="0.5" />
    </TextBlock.Background>
</TextBlock>
53
zi3guw

L'opacité en XAML est définie comme un double et non comme un triplet de couleurs HTML.

http://msdn.Microsoft.com/en-us/library/system.windows.uielement.opacity.aspx

Vous voudrez le définir comme ceci:

<TextBlock Opacity="0" />

Vous pouvez également utiliser un pinceau pour le définir:

<SolidColorBrush Color="#FF295564" Opacity="0.3"/>

... puis définissez la propriété d'arrière-plan sur votre pinceau.

14
Joshua Tompkins

Si vous voulez juste un fond transparent en XAML, il y a un preset Transparent:

<Border Background="Transparent"/>
3
David Douglas

Je ne sais pas quand ni si cela a été changé dans le passé, mais au moins avec WPF 4.5, il est parfaitement possible d'utiliser des codes de couleur hexadécimaux à 8 chiffres:

<Element Background="#19ff0000"/> // background will be red with an alpha of 10%

Les deux premiers chiffres spécifient le canal alpha, avec 00 (0) étant totalement transparent et FF (255) étant entièrement opaque.

2
Marc Pabst