2010-08-24 18 views
0

Comment puis-je régler l'opacité de l'arrière-plan pour une zone de groupe, etc.du style d'une zone de groupe dans WPF

Le code ne compile pas sous:

<Style TargetType="GroupBox"> 
    <Setter Property="Background"> 
     <Setter.Value> 
      <SolidColorBrush Opacity="0.5">White</SolidColorBrush> 
     </Setter.Value> 
    </Setter> 
</Style> 

Répondre

3

Votre code ne compile pas à cause de l'opacité, mais à cause de la valeur "Blanc". Vous devez appliquer cela à la brosse Color.

Vous pouvez utiliser:

<SolidColorBrush Opacity="0.5" Color="White" /> 

ou

<SolidColorBrush Opacity="0.5"> 
    <SolidColorBrush.Color>White</SolidColorBrush.Color> 
</SolidColorBrush> 
+0

Oh oui, je vois ... est exactement ce que je cherche. Ayez lu votre conversation ci-dessous, et IMO la solution ci-dessus (premier one-liner) est la plus claire pour moi, mais merci à vous deux! – kahr

0

Opacité est une propriété de soi Zone de groupe, et non pas de son arrière-plan.

Essayez

<Style TargetType="GroupBox"> 
    <Setter Property="Background" Value="White"/> 
    <Setter Property="Opacity" Value="0.5"/> 
</Style> 

Ou vous pouvez définir le style GroupBox à l'endroit où vous l'utilisez, comme dans @ la réponse de Jay.

Si vous voulez vraiment changer seulement l'opacité d'arrière-plan, utilisez ce qui suit:

<Style TargetType="GroupBox"> 
    <Setter Property="Background" Value="#80ffffff"/> 
</Style> 
+0

Les contrôles ont une opacité, c'est vrai, mais les pinceaux le sont aussi. Grande différence entre faire le contrôle entier semi-transparent par rapport à l'arrière-plan, pour lequel l'OP demande. – Jay

+0

Si nous voulons de la transparence sur le fond, nous devons utiliser une valeur numérique pour la couleur au lieu de simplement 'White'. – Vlad

+0

Non, non. '' est très bien. – Jay

0

vous pouvez définir l'opacité à ce que vous voulez directement sur la couleur. les deux premiers nombres hexadécimaux contrôlent le "alpha" de la brosse. 7F est de 50%

<SolidColorBrush x:Key="MyBrush" Color="#7FFFFFFF"/> 

donc, votre style ressemblerait à ceci:

<Style TargetType="GroupBox"> 
    <Setter Property="Background"> 
     <Setter.Value> 
      <SolidColorBrush Color="#7FFFFFFF"/> 
     </Setter.Value> 
    </Setter> 
</Style> 
+0

Merci aussi pour cette réponse ...: o) – kahr