ボタンのtranslateXとtranslateYの値を再配置することによって、xamlのスプライトシートを使用してボタンを作成しています。さまざまなホバー状態のボタンリソースを使用する
状態変更のtranslateXとtranslateYの値を変更することですが、これはxamlでは可能ですが、ブレンドしてxとyの値を変更できるようにします計算された値(これらの値はトゥイーンではなく、ホバー上で変更したくない)
現在の単一状態ボタンの例です。
<Button Content="test" HorizontalAlignment="Center" Height="57" VerticalAlignment="Center" Width="294" d:LayoutOverrides="VerticalAlignment">
<Button.Resources>
<Style x:Key="ButtonStyle1" TargetType="Button">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Grid>
<Rectangle x:Name="R" Opacity="1" StrokeThickness="0" Visibility="Visible">
<Rectangle.Fill>
<ImageBrush ImageSource="/Project;component/wp7_buttons.png" Stretch="None" AlignmentX="Left" AlignmentY="Top" >
<ImageBrush.Transform>
<CompositeTransform TranslateX="-558" TranslateY="0"/>
</ImageBrush.Transform>
</ImageBrush>
</Rectangle.Fill>
</Rectangle>
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Button.Resources>
<Button.Style>
<StaticResource ResourceKey="ButtonStyle1"/>
</Button.Style>
</Button>
どうすればよいですか?私はxとyの変換値とImageSourceを含むプロパティに各状態をバインドできる必要があります。
。私は整数値を変更しようとすることによって事態を複雑化させてしまった。 –
要素を複製しないでください。あなたの 'CompositeTransform'を' Storyboard.TargetName'で使用し、 'Storyboard.TargetProperty = TranslateX'と' To = " - 558" 'などを設定して、状態に従って' DoubleAnimation'を再生します。 – Dargos