Animatable.GetAnimationBaseValue(DependencyProperty) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
返回指定的 DependencyProperty 的未经过动画处理的值。
public:
virtual System::Object ^ GetAnimationBaseValue(System::Windows::DependencyProperty ^ dp);
public object GetAnimationBaseValue (System.Windows.DependencyProperty dp);
abstract member GetAnimationBaseValue : System.Windows.DependencyProperty -> obj
override this.GetAnimationBaseValue : System.Windows.DependencyProperty -> obj
Public Function GetAnimationBaseValue (dp As DependencyProperty) As Object
参数
标识应该检索其基值(未经过动画处理的值)的属性。
返回
在指定的属性未经过动画处理时返回的值。
实现
示例
在以下示例中,检索并显示动画属性的非动画值。
/*
This sample shows how to use the
Animatable.GetAnimationBaseValue and
UIElement.GetAnimationBaseValue methods
to get the non-animated value of an
animated Animatable or UIElement.
*/
using System;
using System.Windows;
using System.Windows.Navigation;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Windows.Controls;
using System.Windows.Input;
namespace Microsoft.Samples.Animation.TimingBehaviors
{
public class GetAnimationBaseValueExample : Page {
private RotateTransform animatedRotateTransform;
public GetAnimationBaseValueExample()
{
WindowTitle = "GetAnimationBaseValue Example";
StackPanel myPanel = new StackPanel();
myPanel.Margin = new Thickness(20.0);
// Create a button.
Button animatedButton = new Button();
animatedButton.Content = "Click Me";
animatedButton.Width = 100;
animatedButton.Margin = new Thickness(100);
// Create and animate a RotateTransform and
// apply it to the button's RenderTransform
// property.
animatedRotateTransform = new RotateTransform();
animatedRotateTransform.Angle = 45;
DoubleAnimation angleAnimation =
new DoubleAnimation(0,360, TimeSpan.FromSeconds(5));
angleAnimation.RepeatBehavior = RepeatBehavior.Forever;
animatedRotateTransform.BeginAnimation(
RotateTransform.AngleProperty, angleAnimation);
animatedButton.RenderTransform = animatedRotateTransform;
animatedButton.RenderTransformOrigin = new Point(0.5,0.5);
// Animate the button's width.
DoubleAnimation widthAnimation =
new DoubleAnimation(120, 300, TimeSpan.FromSeconds(5));
widthAnimation.RepeatBehavior = RepeatBehavior.Forever;
widthAnimation.AutoReverse = true;
animatedButton.BeginAnimation(Button.WidthProperty, widthAnimation);
// Handle button clicks.
animatedButton.Click += new RoutedEventHandler(animatedButton_Clicked);
// Add the button to the panel.
myPanel.Children.Add(animatedButton);
this.Content = myPanel;
}
// Display the base value for Button.Width and RotateTransform.Angle.
private void animatedButton_Clicked(object sender, RoutedEventArgs e)
{
Button animatedButton = (Button)sender;
MessageBox.Show("Button width base value: " +
animatedButton.GetAnimationBaseValue(Button.WidthProperty)
+ "\nRotateTransform base value: " +
animatedRotateTransform.GetAnimationBaseValue(RotateTransform.AngleProperty));
}
}
}
'
'
' This sample shows how to use the
' Animatable.GetAnimationBaseValue and
' UIElement.GetAnimationBaseValue methods
' to get the non-animated value of an
' animated Animatable or UIElement.
'
'
Imports System.Windows
Imports System.Windows.Navigation
Imports System.Windows.Media
Imports System.Windows.Media.Animation
Imports System.Windows.Shapes
Imports System.Windows.Controls
Imports System.Windows.Input
Namespace Microsoft.Samples.Animation.TimingBehaviors
Public Class GetAnimationBaseValueExample
Inherits Page
Private animatedRotateTransform As RotateTransform
Public Sub New()
WindowTitle = "GetAnimationBaseValue Example"
Dim myPanel As New StackPanel()
myPanel.Margin = New Thickness(20.0)
' Create a button.
Dim animatedButton As New Button()
animatedButton.Content = "Click Me"
animatedButton.Width = 100
animatedButton.Margin = New Thickness(100)
' Create and animate a RotateTransform and
' apply it to the button's RenderTransform
' property.
animatedRotateTransform = New RotateTransform()
animatedRotateTransform.Angle = 45
Dim angleAnimation As New DoubleAnimation(0,360, TimeSpan.FromSeconds(5))
angleAnimation.RepeatBehavior = RepeatBehavior.Forever
animatedRotateTransform.BeginAnimation(RotateTransform.AngleProperty, angleAnimation)
animatedButton.RenderTransform = animatedRotateTransform
animatedButton.RenderTransformOrigin = New Point(0.5,0.5)
' Animate the button's width.
Dim widthAnimation As New DoubleAnimation(120, 300, TimeSpan.FromSeconds(5))
widthAnimation.RepeatBehavior = RepeatBehavior.Forever
widthAnimation.AutoReverse = True
animatedButton.BeginAnimation(Button.WidthProperty, widthAnimation)
' Handle button clicks.
AddHandler animatedButton.Click, AddressOf animatedButton_Clicked
' Add the button to the panel.
myPanel.Children.Add(animatedButton)
Me.Content = myPanel
End Sub
' Display the base value for Button.Width and RotateTransform.Angle.
Private Sub animatedButton_Clicked(ByVal sender As Object, ByVal e As RoutedEventArgs)
Dim animatedButton As Button = CType(sender, Button)
MessageBox.Show("Button width base value: " & animatedButton.GetAnimationBaseValue(Button.WidthProperty).ToString & vbLf & "RotateTransform base value: " & animatedRotateTransform.GetAnimationBaseValue(RotateTransform.AngleProperty).ToString)
End Sub
End Class
End Namespace
注解
如果未对指定的属性进行动画处理,此方法将返回与相同的结果 GetValue。