2017-02-08 50 views
2

我想使用DataTrigger来修改我的按钮的不透明度。'成员“不透明度”不被识别或无法访问。为什么我不能设置不透明度?

   <Button x:Name="StartTreatment" 
        Grid.Column="3" 
        Width="160" 
        Height="30" 
        Content="{x:Static resources:UserMessages.TrcsConsoleViewModel_LoadWfSequence_StartProcedure}" 
        IsEnabled="{Binding CanStartProcedure}" 
        Visibility="{Binding CanStartPatientTreatment, Converter={StaticResource BooleanToVisibility}}" > 
       <Button.Style> 
        <Style> 
         <Style.Triggers> 
          <DataTrigger Binding="{Binding CanStartProcedure}" Value="False"> 
           <Setter Property="Opacity" Value="0.5"></Setter> 
          </DataTrigger> 
         </Style.Triggers> 
        </Style> 
       </Button.Style> 
      </Button> 

我知道Button有一个可以设置的不透明度,并且DataTriggers必须用在Style中。然而,编译器报告“成员”不透明度“未被识别或无法访问。”我究竟做错了什么?

回答

6

您应该添加TargetType

... 
<Button.Style> 
    <Style TargetType="Button"> 
     <Style.Triggers> 
      <DataTrigger Binding="{Binding CanStartProcedure}" Value="False"> 
       <Setter Property="Opacity" Value="0.5"></Setter> 
      </DataTrigger> 
     </Style.Triggers> 
    </Style> 
</Button.Style> 
... 
+1

完美!很棒。谢谢。 – Will