Wpf 更改按钮图像问题

Wpf 更改按钮图像问题,wpf,image,xaml,controls,Wpf,Image,Xaml,Controls,我在WPF中工作,我正在尝试更改按钮的图像,我已经创建了一些触发器和设置器,但它不起作用 以下是我的XAML代码: <Button BorderThickness="0" Height="23" HorizontalAlignment="Left" Margin="59,6,0,0" Name="topButton" Width="26" VerticalAlignment="Top" Style="{StaticResource {x:Static Tool

我在WPF中工作,我正在尝试更改按钮的图像,我已经创建了一些触发器和设置器,但它不起作用

以下是我的XAML代码:

<Button BorderThickness="0" Height="23" HorizontalAlignment="Left" Margin="59,6,0,0" Name="topButton" Width="26"  VerticalAlignment="Top"  
            Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}" IsEnabled="False" >
        <StackPanel>
            <Image>
                <Image.Style>
                    <Style TargetType="Image">
                        <Style.Triggers>
                            <DataTrigger Binding="{Binding ElementName=topButton, Path=Button.IsEnabled}" Value="True">
                                <Setter Property="Image.Source" Value="Images/MoveFirst_Enabled.bmp" />
                            </DataTrigger>
                            <DataTrigger Binding="{Binding ElementName=topButton, Path=Button.IsEnabled}" Value="False">
                                <Setter Property="Image.Source" Value="Images/MoveFirst_Disabled.bmp" />
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
                </Image.Style>
            </Image>
        </StackPanel>
    </Button>

我不知道我做错了什么。希望你能帮助我。提前谢谢。

我认为您没有使用正确的Uri字符串作为图像源

<Button BorderThickness="0" Height="23" HorizontalAlignment="Left" Margin="59,6,0,0" Name="topButton" Width="26"  VerticalAlignment="Top"  
                Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}" IsEnabled="False" >
            <StackPanel>
                <Image>
                    <Image.Style>
                        <Style TargetType="Image">

                                <!-- If you are using the Image as a Resource, you should use the following format.-->

                            <Style.Triggers>    
                                <DataTrigger Binding="{Binding ElementName=topButton, Path=Button.IsEnabled}" Value="True">
                                    <Setter Property="Image.Source" Value="assemblyname;component/Images/MoveFirst_Enabled.bmp" />
                                </DataTrigger>
                                <DataTrigger Binding="{Binding ElementName=topButton, Path=Button.IsEnabled}" Value="False">
                                    <Setter Property="Image.Source" Value="assemblyname;component/Images/MoveFirst_Disabled.bmp" />
                                </DataTrigger>
                            </Style.Triggers>

                           <!-- If you are using the Image as Content then you should use the below format.-->

                            <Style.Triggers>    
                                <DataTrigger Binding="{Binding ElementName=topButton, Path=Button.IsEnabled}" Value="True">
                                    <Setter Property="Image.Source" Value="Images/MoveFirst_Enabled.bmp" />
                                </DataTrigger>
                                <DataTrigger Binding="{Binding ElementName=topButton, Path=Button.IsEnabled}" Value="False">
                                    <Setter Property="Image.Source" Value="Images/MoveFirst_Disabled.bmp" />
                                </DataTrigger>
                            </Style.Triggers>

                        </Style>
                    </Image.Style>
                </Image>
            </StackPanel>
        </Button>

我希望它可以帮助您……

我认为您没有使用正确的Uri字符串作为图像源

<Button BorderThickness="0" Height="23" HorizontalAlignment="Left" Margin="59,6,0,0" Name="topButton" Width="26"  VerticalAlignment="Top"  
                Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}" IsEnabled="False" >
            <StackPanel>
                <Image>
                    <Image.Style>
                        <Style TargetType="Image">

                                <!-- If you are using the Image as a Resource, you should use the following format.-->

                            <Style.Triggers>    
                                <DataTrigger Binding="{Binding ElementName=topButton, Path=Button.IsEnabled}" Value="True">
                                    <Setter Property="Image.Source" Value="assemblyname;component/Images/MoveFirst_Enabled.bmp" />
                                </DataTrigger>
                                <DataTrigger Binding="{Binding ElementName=topButton, Path=Button.IsEnabled}" Value="False">
                                    <Setter Property="Image.Source" Value="assemblyname;component/Images/MoveFirst_Disabled.bmp" />
                                </DataTrigger>
                            </Style.Triggers>

                           <!-- If you are using the Image as Content then you should use the below format.-->

                            <Style.Triggers>    
                                <DataTrigger Binding="{Binding ElementName=topButton, Path=Button.IsEnabled}" Value="True">
                                    <Setter Property="Image.Source" Value="Images/MoveFirst_Enabled.bmp" />
                                </DataTrigger>
                                <DataTrigger Binding="{Binding ElementName=topButton, Path=Button.IsEnabled}" Value="False">
                                    <Setter Property="Image.Source" Value="Images/MoveFirst_Disabled.bmp" />
                                </DataTrigger>
                            </Style.Triggers>

                        </Style>
                    </Image.Style>
                </Image>
            </StackPanel>
        </Button>
我希望它能帮助您……

卸下按钮。为路径。所以不是

Path=Button.IsEnabled
你应该

Path=IsEnabled
范例

卸下按钮。为路径。所以不是

Path=Button.IsEnabled
你应该

Path=IsEnabled
范例


重复:@MortenFrederiksen我正在尝试和你刚才写的链接做同样的事情。但它不起作用,因此我请求一些帮助。重复:@MortenFrederiksen我正在尝试做与你刚才写的链接相同的事情。谢谢你的回复,我接受了你的建议,但是它仍然不起作用。谢谢你的回复,我接受了你的建议,但是它仍然不起作用working@Dante:当然,很高兴有帮助。@Dante:当然,很高兴有帮助: