2

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>

自分が間違っていることに気づきません。あなたが私を助けてくれることを願っています。前もって感謝します。

4

2 に答える 2

3

のを削除しButton.ますPath。だから代わりに

Path=Button.IsEnabled

あなたが持っている必要があります

Path=IsEnabled

<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=IsEnabled}" Value="True">
                            <Setter Property="Source" Value="Images/MoveFirst_Enabled.bmp" />
                        </DataTrigger>
                        <DataTrigger Binding="{Binding ElementName=topButton, Path=IsEnabled}" Value="False">
                            <Setter Property="Source" Value="Images/MoveFirst_Disabled.bmp" />
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </Image.Style>
        </Image>
    </StackPanel>
</Button>
于 2012-06-20T16:24:56.630 に答える
1

画像のソースに正しい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>

お役に立てば幸いです...

于 2012-06-20T16:21:13.583 に答える