ここから本文です

WPF ButtonのTriggerで別の要素のプロパティを変更するには 例えば<Button>と<I...

ali********さん

2015/1/2211:45:34

WPF ButtonのTriggerで別の要素のプロパティを変更するには

例えば<Button>と<Image>を配置したとします。

<Button>テスト</Button>
<Image></Image>

このボタンをクリックしたときにImageのSourceプロパティを変更するにはどうすれば良いですか?
TargetTypeをButtonにしてTriggerのコードを書くと<Button>のプロパティにしかアクセスできません。C#側で処理をしないといけないのでしょうか?

補足すいません、クリックイベントではなくてTriggerプロパティのIsMouseOverなどを指定した場合です。
ボタンの上にカーソルがきたときに、ImageのSourceプロパティにアクセスして画像を表示したいです。

閲覧数:
4,775
回答数:
1
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

mom********さん

2015/1/2300:18:04

こんな感じでいかがでしょうか。

ボタンの名前をbutton1としています。

<Button x:Name="button1"
Content="テスト" />
<Image>
<Image.Style>
<Style TargetType="{x:Type Image}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsMouseOver, ElementName=button1}"
Value="True">
<Setter Property="Source"
Value="hoge.png" />
</DataTrigger>
<DataTrigger Binding="{Binding IsMouseOver, ElementName=button1}"
Value="False">
<Setter Property="Source"
Value="huga.png" />
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>

トリガーをボタンではなく、画像の方に書きます。
画像のTriggerにDataTriggerを指定し、ボタンのIsMouseOverのTrue、Falseで画像を切り替えています。

質問した人からのコメント

2015/1/27 13:23:39

降参 詳しい回答ありがとうございました!

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる