PointerDownThemeAnimation 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示在项或元素上检测到指针向下时运行的预配置动画。
public ref class PointerDownThemeAnimation sealed : Timeline
/// [Windows.Foundation.Metadata.Activatable(65536, "Microsoft.UI.Xaml.WinUIContract")]
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class PointerDownThemeAnimation final : Timeline
[Windows.Foundation.Metadata.Activatable(65536, "Microsoft.UI.Xaml.WinUIContract")]
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class PointerDownThemeAnimation : Timeline
Public NotInheritable Class PointerDownThemeAnimation
Inherits Timeline
<PointerDownThemeAnimation .../>
- 继承
- 属性
示例
下面是使用 PointerDown/Up 主题动画的自定义控件的模板示例。
// Themes/Generic.xaml
<!-- Example template of a custom control that uses PointerDown/Up theme
animations. The PointerDownThemeAnimation will be run when the control
is in the PointerDown state.-->
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:BlankApp1">
<Style TargetType="local:TapControl" >
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="local:TapControl">
<Grid>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="TapStates">
<VisualState x:Name="Normal"/>
<VisualState x:Name="PointerDown">
<Storyboard>
<PointerDownThemeAnimation TargetName="contentRectangle"/>
</Storyboard>
</VisualState>
<VisualState x:Name="PointerUp">
<Storyboard>
<PointerUpThemeAnimation TargetName="contentRectangle"/>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Rectangle x:Name="contentRectangle" Width="100" Height="100" Fill="{TemplateBinding Background}"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
public sealed class TapControl : Control
{
public TapControl()
{
this.DefaultStyleKey = typeof(TapControl);
}
protected override void OnPointerPressed(PointerRoutedEventArgs e)
{
this.CapturePointer(e.Pointer);
VisualStateManager.GoToState(this, "PointerDown", true);
}
protected override void OnPointerReleased(PointerRoutedEventArgs e)
{
VisualStateManager.GoToState(this, "PointerUp", true);
this.ReleasePointerCapture(e.Pointer);
}
}
// TapControl.h
struct TapControl : TapControlT<TapControl>
{
TapControl(){ DefaultStyleKey(winrt::box_value(L"MyApp.TapControl")); }
void OnPointerPressed(Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e);
void OnPointerReleased(Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e);
};
// TapControl.cpp
void TapControl::OnPointerPressed(Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e)
{
CapturePointer(e.Pointer());
// Go to the PointerDown state, which will start the PointerDownThemeAnimation.
Windows::UI::Xaml::VisualStateManager::GoToState(*this, L"PointerDown", true);
}
void TapControl::OnPointerReleased(Windows::UI::Xaml::Input::PointerRoutedEventArgs const& e)
{
Windows::UI::Xaml::VisualStateManager::GoToState(*this, L"PointerUp", true);
ReleasePointerCapture(e.Pointer());
}
// TapControl.h:
public ref class TapControl sealed : public Windows::UI::Xaml::Controls::Control
{
public:
TapControl();
protected:
virtual void OnPointerPressed(Windows::UI::Xaml::Input::PointerRoutedEventArgs^ e) override;
virtual void OnPointerReleased(Windows::UI::Xaml::Input::PointerRoutedEventArgs^ e) override;
};
// TapControl.cpp:
TapControl::TapControl()
{
DefaultStyleKey = "MyApp.TapControl";
}
void SplitOpenControl::OnPointerPressed(PointerRoutedEventArgs^ e)
{
CapturePointer(e->Pointer);
VisualStateManager::GoToState(this, "PointerDown", true);
}
void SplitOpenControl::OnPointerReleased(PointerRoutedEventArgs^ e)
{
VisualStateManager::GoToState(this, "PointerUp", true);
ReleasePointerCapture(e->Pointer);
}
注解
设置 Duration 属性不会对此对象产生影响,因为持续时间已预配置。
PointerDownThemeAnimation 替代 投影 和 RenderTransform 的当前值。
Windows 8.1和之前的投影和 RenderTransform 不受 PointerDownThemeAnimation 的影响。
构造函数
PointerDownThemeAnimation() |
初始化 PointerDownThemeAnimation 类的新实例。 |
属性
AutoReverse |
获取或设置一个值,该值指示时间线在完成向前迭代后是否按相反的顺序播放。 (继承自 Timeline) |
BeginTime |
获取或设置此 时间线 应开始的时间。 (继承自 Timeline) |
Dispatcher |
始终在Windows 应用 SDK应用中返回 |
DispatcherQueue |
|
Duration |
获取或设置此时间线播放的时间长度,而不是计数重复。 (继承自 Timeline) |
FillBehavior |
获取或设置一个值,该值指定动画在其活动周期结束时的行为方式。 (继承自 Timeline) |
RepeatBehavior |
获取或设置此时间线的重复行为。 (继承自 Timeline) |
SpeedRatio |
获取或设置相对于其父级的速率,此时此 时间线的进度。 (继承自 Timeline) |
TargetName |
获取或设置目标控件元素的引用名称。 |
TargetNameProperty |
标识 TargetName 依赖属性。 |
方法
ClearValue(DependencyProperty) |
清除依赖属性的本地值。 (继承自 DependencyObject) |
GetAnimationBaseValue(DependencyProperty) |
返回为依赖属性建立的任何基值,该基值适用于动画未处于活动状态的情况。 (继承自 DependencyObject) |
GetValue(DependencyProperty) |
从 DependencyObject 返回依赖属性的当前有效值。 (继承自 DependencyObject) |
ReadLocalValue(DependencyProperty) |
如果设置了本地值,则返回依赖属性的本地值。 (继承自 DependencyObject) |
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback) |
注册通知函数,用于侦听此 DependencyObject 实例上对特定 DependencyProperty 的更改。 (继承自 DependencyObject) |
SetValue(DependencyProperty, Object) |
设置 DependencyObject 上依赖属性的本地值。 (继承自 DependencyObject) |
UnregisterPropertyChangedCallback(DependencyProperty, Int64) |
取消以前通过调用 RegisterPropertyChangedCallback 注册的更改通知。 (继承自 DependencyObject) |
事件
Completed |
在 Storyboard 对象完成播放时发生。 (继承自 Timeline) |