2014-09-11 90 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