分類:[.NET 全般]
WPFアプリを作成しようと思っています。WPFプログラミング自体今回が初めてでいろんなことがわからない状態です。
Blend3を使用して作っているのですが、いまだに要領が得ないものでさっぱりアニメーションの設定の仕方がわかりません。
ですのでとりあえず、アニメーションのStoryboardの部分はXAMLをゴリゴリ記述することにしました。
Borderとその中にImageをいれたものを"Make Into Control"という機能を使ってButtonコントロール化しました。
そこで、マウスが上にきたときに色をかえるということをしたいのです。
BorderのBackgroundの色をアニメーションさせようと思っているのですが(Imageには透過色のある画像を設定)、
BorderとImageの組み合わせによるButtonコントロールですのでStoryboard.TargetPropertyに何を設定すればいいのかがわからないのです。
とりあえず、以下のように記述してみました。
<Style x:Key="ButtonStyle" TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Grid>
<Border BorderBrush="#FF333333" BorderThickness="2">
<Image Margin="0" Source="plus.png" Stretch="None"/>
</Border>
<ContentPresenter
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
RecognizesAccessKey="True"/>
</Grid>
<ControlTemplate.Triggers>
<EventTrigger RoutedEvent="Button.MouseEnter">
<BeginStoryboard>
<Storyboard>
<!--★-->
<ColorAnimation Storyboard.TargetProperty="Border.Background"
From="#00000000" To="#FFFFFFFF" Duration="0:0:1"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
<Trigger Property="IsFocused" Value="True"/>
<Trigger Property="IsDefaulted" Value="True"/>
<Trigger Property="IsMouseOver" Value="True"/>
<Trigger Property="IsPressed" Value="True"/>
<Trigger Property="IsEnabled" Value="False"/>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
実行してみると、とりあえずマウスを上に乗せたときにエラーが発生するのでトリガーは動作しているようです。
エラーの内容は
"ハンドルされていない例外: System.InvalidOperationException: プロパティ パス 'Border.Background' に解決できないプロパティ参照があります。該当するオブジェクトでそれらのプロパティがサポートされていることを確認してください。"
というものです。
Storyboard.TargetPropertyにはどのような文字列を設定すればよろしいのでしょうか?
|