XAML でボタンの ControlTemplate を作成しようとしています。Triggers コレクションでは、RotateTransform を使用してボタンの 1 つの要素を回転させたいと考えています。これは後でアニメーション化されます (簡単にするためにアニメーションをオフにしました)。これを行うには、ボタンの要素に関連付けられた回転変換の Angle プロパティを参照する必要があります。そして、これが問題です。それを参照する方法が見つからないようです。コードは次のとおりです。
<ControlTemplate x:Key="myButtonTemplate"
TargetType="Button">
<Grid>
<Ellipse x:Name="OuterCircle"
RenderTransformOrigin="0.5, 0.5">
<Ellipse.Fill>
<RadialGradientBrush Center="0.7,0.7">
<GradientStop Offset="0.9" Color="DarkBlue"/>
<GradientStop Offset="0.2" Color="White"/>
</RadialGradientBrush>
</Ellipse.Fill>
<Ellipse.RenderTransform>
<RotateTransform x:Name="myTransform" Angle="0"/>
</Ellipse.RenderTransform>
</Ellipse>
<Ellipse x:Name="InnerCircle"
RenderTransformOrigin="0.5, 0.5"
Stroke="DarkBlue"
>
<Ellipse.Fill>
<RadialGradientBrush Center="0.35,0.35"
RadiusX="0.7"
RadiusY="0.7">
<GradientStop Offset="0.05" Color="#70B0FF"/>
<GradientStop Offset="0.9" Color="DarkBlue"/>
</RadialGradientBrush>
</Ellipse.Fill>
<Ellipse.RenderTransform>
<ScaleTransform ScaleX="0.8" ScaleY="0.8"/>
</Ellipse.RenderTransform>
</Ellipse>
<Viewbox Margin="10">
<ContentPresenter Margin="{TemplateBinding Padding}"/>
</Viewbox>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="myTransform" Property="Angle" Value="90"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
RotateTransform に x:Name="myTransform" という名前を付け、それを Setter の TargetName として使用して参照しようとしました。これはうまくいきませんでした。試した他のことは、 のような「ドットダウン」TargetName="OuterCircle.RenderTransofrm.RotateTransform"
でした。喜びもありません。
これは簡単なはずですが、おそらくそうです。誰かが私を正しい方向に向けることができますか?
ありがとう、クリス。