2016-04-28 8 views
1

Ich habe den folgenden Xaml-Code und ich habe Label-Trigger. Ich möchte einen Auslöser haben, der ein Bild für einige Inhalte in den Hintergrund stellt. Wie mache ich das als Auslöser?WPF Set label background to image je nach Inhalt

<Window.Resources> 
    <DataTemplate x:Key="DataTemplate_Level2"> 
     <Label Content="{Binding }" Width="70" Height="70" HorizontalContentAlignment="Center" x:Name="Background"> 
     </Label> 
     <DataTemplate.Triggers> 
      <DataTrigger Binding="{Binding}" Value="1"> 
       <Setter TargetName="Background" Property="Background" Value="Black"/> 
      </DataTrigger> 
      <DataTrigger Binding="{Binding}" Value="5"> 
       <Setter TargetName="Background" Property="Background" Value="Image"/> 
      </DataTrigger> 
      <DataTrigger Binding="{Binding }" Value="9"> 
       <Setter TargetName="Background" Property="Background" Value="Green"/> 
      </DataTrigger> 
      <DataTrigger Binding="{Binding}" Value="7"> 
       <Setter TargetName="Background" Property="Background" Value="blue"/> 
      </DataTrigger> 
     </DataTemplate.Triggers> 
    </DataTemplate> 
    <DataTemplate x:Key="DataTemplate_Level1"> 
     <ItemsControl ItemsSource="{Binding}" ItemTemplate="{DynamicResource DataTemplate_Level2}"> 
      <ItemsControl.ItemsPanel> 
       <ItemsPanelTemplate> 
        <StackPanel Orientation="Horizontal"/> 
       </ItemsPanelTemplate> 
      </ItemsControl.ItemsPanel> 
     </ItemsControl> 
    </DataTemplate> 
</Window.Resources> 
+0

Möchten Sie 'Image' auf' Background' von 'Label' setzen? – StepUp

+0

Ja, aber nur, wenn das Label einen bestimmten Wert hat, da es wie ein Trigger sein muss – user2955610

Antwort

3

Verwenden Sie einfach ImageBrush als Hintergrund.

Fügen Sie zuerst den Pinsel in den Ressourcen hinzu. Beispiel:

<Window.Resources> 
    <ImageBrush x:Key="MyImageBrush" 
       ImageSource="C:\Test.png" /> 
</Window.Resources> 

Dann einfach Static verwendet es in dem spezifischen Auslöser einzustellen.

<DataTemplate x:Key="DataTemplate_Level2"> 
     <Label Content="{Binding }" 
       Width="70" 
       Height="70" 
       HorizontalContentAlignment="Center" 
       x:Name="Background"> 
     </Label> 
     <DataTemplate.Triggers> 
      <DataTrigger Binding="{Binding}" 
         Value="7"> 
       <Setter TargetName="Background" 
         Property="Background" 
         Value="{StaticResource MyImageBrush}" /> 
      </DataTrigger> 
     </DataTemplate.Triggers> 
    </DataTemplate> 
+0

Danke! Perfekt! – user2955610