<Style x:Key="likeActionButton" TargetType="ToggleButton">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ToggleButton">
<Grid>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal">
</VisualState>
<VisualState x:Name="PointerOver">
<Storyboard>
<ObjectAnimationUsingKeyFrames
Storyboard.TargetName="HoverBackground"
Storyboard.TargetProperty = "Visibility">
<DiscreteObjectKeyFrame KeyTime="0" Value="Visible"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
<VisualState x:Name="Pressed">
<Storyboard>
<ObjectAnimationUsingKeyFrames
Storyboard.TargetName="PressedBackground"
Storyboard.TargetProperty = "Visibility">
<DiscreteObjectKeyFrame KeyTime="0" Value="Visible"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Border>
<Grid>
<Image Width="25" Source="ms-appx:///Assets\ActionIcons\like-action.png"></Image>
<Image x:Name="HoverBackground" Width="25" Source="ms-appx:///Assets\ActionIcons\like-action-onHover.png" Visibility="Collapsed"></Image>
<Image x:Name="PressedBackground" Width="25" Source="ms-appx:///Assets\ActionIcons\like-action-on-pressed.png" Visibility="Collapsed"></Image>
</Grid>
</Border>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
そして、私はこのテンプレートを呼んでいる:
<ToggleButton Grid.Column="4" HorizontalAlignment="Center"
Style="{StaticResource likeActionButton}"
IsChecked="{Binding LikeState}"
Tapped="Favourite_Tapped"></ToggleButton>
LikeState
のバインディングは、私が望むように完全ではありません。
それは説明するのは難しいのですが、私はそれを試してみるよ...
私が選択しToggleButton
と背景画像は常に反転する選択を解除することができます。
LikeState
の背後にあるバインディングは、プロパティでは機能しているようですが、イメージでは機能していないようです。これは、データがロードされ、ブール値
LikeState = true
が
ToggleButton.IsChecked = true
のプロパティであるが、背景イメージが
VisualState x:Name="Normal"
のイメージであることを意味します。
もう一度... 私はLikeState = true
でデータをロードしています。私はトグルボタンに最初の時間をクリックすると、背景画像が変更されませんが、コードビハインドファイルには、そうVisualState x:Name="Pressed"
になりました背景画像を変更するんトグルボタン上の第二の時間をクリックするisChecked = true
ためのコードを実行します私は動的に満たされたプロパティに依存して右の背景画像を設定するisChecked={Binding LikeState}
乾杯、
クリス
試してみてください= 2Wayバインディングで – Archana