2010-05-14 3 views
11

Я пытаюсь показать другое изображение, когда кнопка отключена; Я думал, что с триггерами будет легко.Как изменить изображение, когда кнопка отключена?

Однако я не смог заставить источник изображения переключиться на отключенное изображение, когда кнопка отключена. Я попытался установить триггеры как на изображение, так и на кнопку. Что не так с тем, что у меня есть? Как изменить источник изображения, когда кнопка включена/отключена?

<Button 
     x:Name="btnName" 
     Command="{Binding Path=Operation}" 
     CommandParameter="{x:Static vm:Ops.OpA}"> 
      <Button.Content> 
       <StackPanel> 
        <Image 
        Width="24" 
        Height="24"    
        RenderOptions.BitmapScalingMode="NearestNeighbor" 
        SnapsToDevicePixels="True" 
        Source="/MyAssembly;component/images/enabled.png"> 
         <Image.Style> 
          <Style> 
           <Style.Triggers> 
            <DataTrigger Binding="{Binding ElementName=btnName, Path=Button.IsEnabled}" Value="False"> 
             <Setter Property="Image.Source" Value="/MyAssembly;component/images/disabled.png" /> 
            </DataTrigger> 
           </Style.Triggers> 
          </Style> 
         </Image.Style> 
        </Image> 
       </StackPanel> 
      </Button.Content> 
     </Button> 

ответ

23

Да, этот всплывает совсем немного.

Любое свойство, явно заданное в объявлении объекта, не может быть изменено в стиле. Поэтому, поскольку вы установили свойство Source в объявлении изображения, Setter этого стиля не коснется его.

Попробуйте вместо этого:

<Image 
    Width="24" 
    Height="24"    
    RenderOptions.BitmapScalingMode="NearestNeighbor" 
    SnapsToDevicePixels="True" 
    > 
    <Image.Style> 
     <Style TargetType="Image"> 
      <Setter Property="Source" 
        Value="/MyAssembly;component/images/enabled.png" /> 
      <Style.Triggers> 
       ... your trigger and setter ... 
      </Style.Triggers> 
     </Style> 
    </Image.Style> 
</Image> 
+0

Я дам, что пытаясь угадать Спасибо за быстрый ответ, а также объяснение и пример! –

Смежные вопросы