2016-12-09 3 views
0

Я новичок в области XAML, я просто хочу узнать о VSM. Когда я добавляю что-то в StoryBoard, всегда предупреждается о той же ошибке. как указано ниже:Изменить цвет фона рамки в анимации

Невозможно решить задачу TargetProperty Background.Color на указанном объекте.

<phone:PhoneApplicationPage.Resources> 
    <ControlTemplate x:Key="ButtonControlTemplate1" TargetType="Button"> 
     <Border 
      BorderThickness="{TemplateBinding BorderThickness}" 
      Height="{TemplateBinding Height}" 
      Width="{TemplateBinding Width}" 
      Margin="{TemplateBinding Margin}" 
      Padding="{TemplateBinding Padding}" 
      Background="{TemplateBinding Background}" 
      BorderBrush="{TemplateBinding BorderBrush}" 
      Name="btnBorder"> 
      <VisualStateManager.VisualStateGroups> 
       <VisualStateGroup x:Name="CommonStates"> 
        <VisualState x:Name="Normal"/> 
        <VisualState x:Name="MouseOver"> 
         <Storyboard> 
          <ColorAnimation Duration="0" 
              To="Blue" 
              Storyboard.TargetName="btnBorder" 
              Storyboard.TargetProperty="Background.Color" 
              /> 
         </Storyboard> 
        </VisualState> 
        <VisualState x:Name="Pressed"/> 
        <VisualState x:Name="Disabled"/> 
       </VisualStateGroup> 
      </VisualStateManager.VisualStateGroups> 
      <ContentPresenter 
       HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" > 
      </ContentPresenter> 
     </Border> 
    </ControlTemplate> 
</phone:PhoneApplicationPage.Resources> 

<Button 
      x:Name="btnSubmit" 
      Grid.Row="3" 
      Grid.Column="0" 
      Grid.ColumnSpan="2" 
      Content="Login" 
      IsEnabled="False" 
      Click="btnSubmit_Click" 
      Margin="0" 
      BorderThickness="2" 
      BorderBrush="White" 
      Background="Aqua" 
      Padding="15" 
      Template="{StaticResource ButtonControlTemplate1}" 
      /> 

Почему и как исправить это, спасибо!

ответ

2

Ваше визуальное состояние должно быть PointerOver, а не MouseOver.

Даже в этом случае ColorAnimation ничего не делает для меня. Это, однако, делает:

<VisualState x:Name="PointerOver"> 
    <Storyboard> 
     <ObjectAnimationUsingKeyFrames 
      Storyboard.TargetName="btnBorder" 
      Storyboard.TargetProperty="Background"> 
      <DiscreteObjectKeyFrame KeyTime="0" Value="Blue" /> 
     </ObjectAnimationUsingKeyFrames> 
    </Storyboard> 
</VisualState> 

Обратите внимание на целевое свойство Background, а не Background.Color.

+0

Если этот ответ приемлем, пожалуйста ** примите ** его. –