2016-12-09 3 views
0

Ich bin ein Neuling in XAML-Bereich, möchte ich nur über VSM lernen. Wenn ich etwas in das StoryBoard einfüge, wird immer derselbe Fehler angezeigt. wie unten:Change Border Hintergrundfarbe in Animation

Kann TargetProperty Background.Color für das angegebene Objekt nicht auflösen.

<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}" 
      /> 

warum und wie man es repariert, danke!

Antwort

2

Ihr visueller Status sollte PointerOver anstatt MouseOver sein.

Trotzdem tut die ColorAnimation nichts für mich. Dies ist jedoch tut:

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

Beachten Sie die Zieleigenschaft ist Background statt Background.Color.

+0

Wenn diese Antwort akzeptabel ist, bitte ** akzeptieren ** es. –

Verwandte Themen