2014-09-11 88 views
0

風格我想數據觸發上的圖標,但我不能找出如何做到這一點:(我想這個代碼baut是行不通任何一個可以幫助pleaaaase?使用mahapps.metro圖標,datatrigger

<Style x:Key="ConnectionIcon" TargetType="{x:Type Rectangle}"> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding Path=ConnectionStatus}" Value="True"> 
        <Setter Property="Resources"> 
         <Setter.Value> 
          <SolidColorBrush Color="Green" /> 
         </Setter.Value> 
        </Setter> 
        <Setter Property="Fill"> 
         <Setter.Value> 
          <VisualBrush Stretch="Fill" Visual="{StaticResource appbar_disconnect}" /> 
         </Setter.Value> 
        </Setter> 
       </DataTrigger> 
       <DataTrigger Binding="{Binding Path=ConnectionStatus}" Value="False"> 
        <Setter Property="Resources"> 
         <Setter.Value> 
          <SolidColorBrush Color="Red" /> 
         </Setter.Value> 
        </Setter> 
        <Setter Property="Fill"> 
         <Setter.Value> 
          <VisualBrush Stretch="Fill" Visual="{StaticResource appbar_connect}" /> 
         </Setter.Value> 
        </Setter> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
+1

使用Snoop檢查綁定是否正常工作或中斷...當你說它不起作用時,你會更具體嗎? – MoonKnight 2014-09-24 10:16:17

回答

0

下面是這一個小動作使用OpacityMask和簡單的變化RectangleFill財產。

<Style x:Key="ConnectionIcon" 
     TargetType="{x:Type Rectangle}"> 
    <Style.Triggers> 
    <DataTrigger Binding="{Binding Path=ConnectionStatus}" 
        Value="True"> 
     <Setter Property="Fill" 
       Value="Green" /> 
     <Setter Property="OpacityMask"> 
     <Setter.Value> 
      <VisualBrush Stretch="Fill" 
         Visual="{StaticResource appbar_disconnect}" /> 
     </Setter.Value> 
     </Setter> 
    </DataTrigger> 
    <DataTrigger Binding="{Binding Path=ConnectionStatus}" 
        Value="False"> 
     <Setter Property="Fill" 
       Value="Red" /> 
     <Setter Property="OpacityMask"> 
     <Setter.Value> 
      <VisualBrush Stretch="Fill" 
         Visual="{StaticResource appbar_connect}" /> 
     </Setter.Value> 
     </Setter> 
    </DataTrigger> 
    </Style.Triggers> 
</Style> 

希望這有助於。

+0

嗨,這不工作。沒有OpacityMask的填充設置工具按預期工作,但使用OpacityMask時該圖標保持空白 – R00st3r 2015-02-20 19:59:21