2017-06-23 6 views
1

私はこの3日間問題を抱えています。 マウスの上で特定のボタンの背景色を変更しなければならず、ボタンの内容を削除する必要があります。しかし、ボタンをホバーしているとすべてのボタンが変更されてしまうという問題があります。 私はリソースディクショナリで自分のデザインを入れ 以下は私のデザインコード特定のボタンを変更するxaml wpfでマウスオーバーしたときの背景色

<VisualStateManager.VisualStateGroups> 
    <VisualStateGroup x:Name="CommonStates"> 
      <VisualState x:Name="Normal" /> 
      <VisualState x:Name="MouseOver"> 
        <Storyboard>`<ObjectAnimationUsingKeyFrames Storyboard.TargetName="BaseShape" Storyboard.TargetProperty="Background"> 
              <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource ButtonHoverBackgroundBrush}" /> 
         </ObjectAnimationUsingKeyFrames> 
         <ObjectAnimationUsingKeyFrames Storyboard.TargetName="BaseShape" Storyboard.TargetProperty="BorderBrush"> 
       <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource ButtonHoverBorderBrush}" /> 
     </ObjectAnimationUsingKeyFrames> 
         <DoubleAnimationUsingKeyFrames Storyboard.TargetName="ButtonHighlight" Storyboard.TargetProperty="Opacity"> 
              <SplineDoubleKeyFrame KeyTime="0" Value="1" /> 
        </DoubleAnimationUsingKeyFrames> 
       </Storyboard> 
      </VisualState> </VisualStateGroup></VisualStateManager.VisualStateGroups>' 
          <Border x:Name="BaseShape" CornerRadius="10" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" /> 
         <Rectangle x:Name="ButtonHighlight" Margin="1" RadiusX="9" RadiusY="9" Stroke="{StaticResource ButtonHoverHighlightBorderBrush}" StrokeThickness="1" Grid.ColumnSpan="2" Opacity="0" /> 
         <ContentPresenter x:Name="contentPresenter" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}" /> 
         <Rectangle x:Name="FocusedVisualElement" Stroke="{StaticResource ButtonFocusedBorderBrush}" StrokeThickness="1" RadiusX="10" RadiusY="10" Opacity="0" /> 
         <Rectangle x:Name="DisabledVisualElement" Fill="{StaticResource DisabledBackgroundBrush}" IsHitTestVisible="false" RadiusX="10" RadiusY="10" Opacity="0" /> 

<Button Content="delete" Name="xyz" Width="70"Margin="0,65,59,4" HorizontalAlignment="Right">  
      </Button>` 

とデザインで XAML ファイルで であると私は私がでと仮定してい

+1

です。私はこれが 'Trigger'でかなり簡単だと思います。 – Peter

+0

あなたのボタンにはスタイルが定義されていないので、VisualStateManagerの定義があるスタイルがすべてのボタンに適用されるようにスタイルが定義されていると思います。