Как я изменяю изображение, когда кнопка отключена?

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

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

<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>
12
задан durron597 23 August 2015 в 16:37
поделиться

1 ответ

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

Любое свойство, явно заданное в объявлении объекта, не может быть изменено в стиле. Итак, поскольку вы установили свойство 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>
23
ответ дан 2 December 2019 в 06:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: