2013-08-28 65 views
0

我來自網頁背景,所以我真的很苦惱這個。在鼠標懸停和類變量爲true時應用樣式

我有一個我需要應用的樣式,當兩個IsMouseOver爲true並且一個類變量(稱爲_isLinking)在我的Linking類中爲true時也是如此。我有用IsMouseOver構建和運行的樣式,但我不知道如何使用_isLinking獲取第二個條件。

<Path.Style> 
    <Style> 
     <Setter Property="Path.Stroke" Value="Black" /> 
     <Setter Property="Path.Fill" Value="LightGray" /> 
     <Style.Triggers> 
      <Trigger Property="Canvas.IsMouseOver" Value="True"> 
       <Setter Property="Path.Stroke" Value="Blue" /> 
       <Setter Property="Path.Fill" Value="LightBlue" /> 
      </Trigger> 
     </Style.Triggers> 
    </Style> 
</Path.Style> 

回答

2

您應該使用MultiDataTriggermsdn)。

實施例:

<Canvas> 
    <Path> 
     <Path.Data> 
      <PathGeometry Figures="M 10,100 C 10,300 300,-200 300,100" /> 
     </Path.Data> 
     <Path.Style> 
      <Style> 
       <Setter Property="Path.Stroke" Value="Black" /> 
       <Setter Property="Path.Fill" Value="LightGray" /> 
       <Style.Triggers>        
        <MultiDataTrigger> 
         <MultiDataTrigger.Conditions>          
          <Condition Binding="{Binding IsMouseOver, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Canvas}}" Value="True" /> 
          <Condition Binding="{Binding IsLinking}" Value="True" /> 
         </MultiDataTrigger.Conditions> 
         <MultiDataTrigger.Setters> 
          <Setter Property="Path.Stroke" Value="Blue" /> 
          <Setter Property="Path.Fill" Value="LightBlue" /> 
         </MultiDataTrigger.Setters> 
        </MultiDataTrigger> 
       </Style.Triggers> 
      </Style> 
     </Path.Style> 
    </Path> 
</Canvas> 

在上面的例子DataContext設置Linking類型的反對。

this.DataContext = new Linking { IsLinking = true };