WinRT/XAML 開発は初めてです。ネットで何時間もの調査と多くの試行錯誤を繰り返した結果、オブジェクトに対するユーザー入力に基づいて VisualStateManager を使用して楕円の塗りつぶしの色を変更する方法をまだ理解できません。次のコードは機能しません。現在のコードは次のとおりです。
<Ellipse Stroke="White" StrokeThickness="5" Width="90" Height="90">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal"/>
<VisualState x:Name="MouseOver">
<Storyboard>
<ColorAnimation To="Red" Storyboard.TargetName="Ellipse" Storyboard.TargetProperty="Fill.Color"/>
</Storyboard>
</VisualState>
<VisualStateGroup.Transitions>
<VisualTransition To="Normal" GeneratedDuration="00:00:01"/>
<VisualTransition To="MouseOver" GeneratedDuration="00:00:01"/>
</VisualStateGroup.Transitions>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
</Ellipse>
アップデート:
正しい方向への微調整をしてくれた Nicholas W. に感謝します。テンプレートと正しいターゲット プロパティがありませんでした。次のコードは意図したとおりに機能しています。
<Button>
<Button.Template>
<ControlTemplate>
<Grid>
<Ellipse x:Name="myEllipse" Stroke="White" StrokeThickness="5" Width="70" Height="70" Fill="Transparent"/>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal"/>
<VisualState x:Name="Pressed">
<Storyboard>
<ColorAnimation Storyboard.TargetName="myEllipse" To="#FF0061D4" Storyboard.TargetProperty="(Rectangle.Fill).(SolidColorBrush.Color)" Duration="0:0:0"/>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
</Grid>
</ControlTemplate>
</Button.Template>
</Button>