2016-09-06 10 views
2

私はUWP C#プログラミングの初心者です。だから私はそれらのスタイルを変更したいいくつかのボタンを持つメニューがあります。私はデフォルトスタイルを変更します。しかし、onMouseEnterスタイルを変更することはできません。私はGoogleで検索した後、私はこのようなコードを見つけました:UWPのmouseEnterボタンスタイルで#

<Style x:Key="ButtonStyle" TargetType="Button"> 
     <Setter Property="BorderBrush" Value="Orange" /> 
     <Style.Triggers> 
      <Trigger Property="IsMouseOver" Value="True"> 
       <Setter Property="Background" Value="Red"/> 
      </Trigger> 
     </Style.Triggers> 
    </Style> 

しかし、Style.TriggersがUWPに対応していませんようです。私を助けてくれますか?

答えて

3

しかし、Style.TriggersはUWPではサポートされていないようです。

はい、あなたは正しいです。 UWPでは、組み込みのVisualStateManagerを使用する必要があります。

私はあなたのメニューをどのように実装したのかわかりませんが、Buttonの背景をマウスオーバーやその他の状態にしたときに変更したい場合は、default template styleボタンを変更できます。

<Button Content="Button 1" Style="{StaticResource ButtonStyle}" /> 

その後
<VisualState x:Name="PointerOver"> 
    <Storyboard> 
     <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background" Storyboard.TargetName="RootGrid"> 
      <DiscreteObjectKeyFrame KeyTime="0" Value="Red" /> 
     </ObjectAnimationUsingKeyFrames> 
     <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="BorderBrush" Storyboard.TargetName="ContentPresenter"> 
      <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ButtonBorderBrushPointerOver}" /> 
     </ObjectAnimationUsingKeyFrames> 
     <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="ContentPresenter"> 
      <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ButtonForegroundPointerOver}" /> 
     </ObjectAnimationUsingKeyFrames> 
     <PointerUpThemeAnimation Storyboard.TargetName="RootGrid" /> 
    </Storyboard> 
</VisualState> 

あなたはStaticResourceと、このような例については、このスタイルのキーを使用して、このテンプレートを適用することができます。このようなPointerOverというVisualStateを変更

関連する問題