2016-03-22 5 views
1

Ich möchte eine Eigenschaft des Viewmodels an die Farbe eines DropShadowEffect binden. Ich habe versucht wie tausend Variationen, aber keiner von ihnen schien zu funktionieren.DropShadowEffect Farbbindung funktioniert nicht

Der Stil:

<Style TargetType="{x:Type Image}" x:Key="CentralImageStyle"> 
    <Style.Triggers> 
     <Trigger Property="IsMouseOver" Value="True"> 
      <Setter Property="Effect"> 
       <Setter.Value> 
        <DropShadowEffect ShadowDepth="0" 
        Color="{Binding Path=DataContext.CurrentPlayer.Character, Converter={StaticResource CharacterColorConverter}, 
         RelativeSource={RelativeSource AncestorType={x:Type Window}}}" 
        Opacity="1" BlurRadius="50"/> 
       </Setter.Value> 
      </Setter> 
     </Trigger> 
    </Style.Triggers> 
</Style> 

Die Steuerung:

<Image Source="{Binding CurrentPlayer.BackImageSource}" 
     Style="{DynamicResource ResourceKey=CentralImageStyle}"> 

und der Wandler:

switch ((string)value) 
{ 
    case "char1": 
     return new SolidColorBrush(Colors.WhiteSmoke); 
    case "char2": 
     return new SolidColorBrush(Colors.Red); 
    default: 
     return new SolidColorBrush(Colors.White); 
} 

Mein Problem ist, dass die Farbe des DropShadowEffect schwarz ist. Das bedeutet, dass der Konverter nicht verwendet wird.

Antwort

1

Sie binden an die Color-Eigenschaft, aber der Konverter gibt Brushes zurück. Entfernen Sie die SolidColorBrush's aus dem Konverter und geben Sie einfach Colors.WhiteSmoke, Colors.Red, etc ...

+0

Danke, das hat mein Problem gelöst. –

Verwandte Themen