![]() |
没读研的油条 · 陕西省教育厅等三部门关于印发《陕西省普通高校 ...· 1 年前 · |
![]() |
被表白的骆驼 · 全球变装皇后掀留胡子风潮 ...· 1 年前 · |
![]() |
热心的黄花菜 · 为什么国内的宽带上行速度相对下行很低,从技术 ...· 1 年前 · |
![]() |
玩滑板的消炎药 · 【达梦】DM8-数据迁移-导入导出 - ...· 1 年前 · |
![]() |
伤情的红豆 · 渗透测试中的Exchange - 知乎· 1 年前 · |
想进技术交流群的加微信 zls20210502(可以扫描下方二维码) ,这里没有套路,没有广告,只为打造纯净的技术交流群,( 想进群捣乱打广告的免加,会有技术考核,别白费心思 )
如果你想用一些咖啡来支持我的工作,你可以在这里做: 给我买杯咖啡 [2] 。你的帮助让我有动力继续花时间在这个项目上,并继续维护和更新它的新功能。提前谢谢!
Install from Nuget [3]
Features Overview [4]
Basic Concepts [5]
Usage [6]
Base Animation Types [7]
Color Animations (*WPF And Uno Only*) [8]
Overriding the Global Default Values [9]
Using a `ResourceDictionary` for Base Settings [10]
Default Animations (*WPF Only*) [11]
`TransformOn` Property (*WPF Only*) [12]
Perspective Rotations (*UWP Only*) [13]
Combining Animations [14]
Overriding Values [15]
Relative Translations on X and Y Axes [16]
Compound Animations [17]
Repeating Animations [18]
Events and Bindings [19]
Primary and Secondary Completion Commands [20]
Using the `StartWith` Property [21]
Using the `AllowOpacityReset` Property (*WPF Only*) [22]
Using the `ClipToBounds` Property (*UWP And Uno Only*) [23]
Debugging Animations [24]
Logging Animations [25]
`ListViewBase` (_UWP and Uno_) and `ListBox`-based (_WPF_) Animations [26]
Platform | Package | NuGet | [XamlFlair.UWP][UWPNuGet] | [![UWPNuGetShield]][UWPNuGet] | [XamlFlair.WPF][WPFNuGet] | [![WPFNuGetShield]][WPFNuGet] | [XamlFlair.Uno][UNONuGet] | [![UNONuGetShield]][UNONuGet] |
---|
使用以下命令从 Package Manager Console 下载 XamlFlair :
Install-Package XamlFlair.UWP
您的应用程序必须至少针对Windows 10版本1809(内部版本17763)
Install-Package XamlFlair.WPF
Install-Package XamlFlair.Uno
功能概述(Features Overview) 基本概念(Basic Concepts)您的UWP应用程序必须至少针对Windows 10版本1809(构建18362)
XamlFlair的基本概念是基于From和To的动画。由From动画组成的任何UI元素都将以 一个或多个任意值开始,并使用相应属性的默认值完成 。由To动画组成的任何UI元素都将 以其当前状态开始,并设置为一个或多个任意值 。
From动画的示例(一个移动到Translation(0)的UI元素):
To动画示例(从当前状态滑出的UI元素):
注意 :需要注意的是,对于彩色动画,此规则有一个例外,这在“基本动画类型”部分中进行了说明。
首先,需要添加以下Xaml命名空间引用:
UWP and Uno:
xmlns:xf="using:XamlFlair"
xmlns:xf="clr-namespace:XamlFlair;assembly=XamlFlair.WPF"
给任何需要动画的UI元素
FrameworkElement
添加附加属性:
<Border xf:Animations.Primary="{StaticResource FadeIn}" />
注意 :如果
FrameworkElement
在Xaml中定义了CompositeTransform
,则它将在动画过程中更改。
基本动画类型(Base Animation Types) 淡入淡出(Fade)注意 :
StaticResource
的用法是引用全局通用动画,这将在下一节中讨论。
移动(Translate) 缩放(Scale) 旋转(Rotate) 模糊 (Blur,只支持UWP 和 WPF) 饱和度 (Saturate,只支持UWP)警告 :设置
FadeTo
动画时要小心,因为如果Visibility
是Visible
,元素将保留在可视树中。在某些情况下,您可能需要手动管理IsHitTestVisible
,以允许用户点击元素。
旋轴 (Swivel,只支持UWP)注意 :重要的是要注意,当使用
From
动画设置色彩动画时,颜色将从指定值设置为其 当前状态 ,而不是默认值。
注意 :请阅读 Perspective Rotations (*UWP Only*) [27] 一节了解更多详细信息。
下面列出了使用XamlFlair时一些值得注意的
默认值
:
使用色彩动画时需要注意,因为它们与其他基本类型动画
略有
不同。使用
ColorTo
和
ColorFrom
时,必须执行以下操作:
Control.Background
,
Control.Foreground
,
Control.BorderBrush
,
Border.Background
,
Border.BorderBrush
,
TextBlock.Foreground
,
Shape.Fill
,
Shape.Stroke
ColorOn
指定目标属性
以下示例将为Rectangle的
Fill
属性设置从RoyalBlue到DarkGreen的动画:
<xf:AnimationSettings x:Key="SampleColorAnimation"
Kind="ColorTo"
Color="DarkGreen"
ColorOn="Fill" />
<Rectangle Fill="RoyalBlue"
xf:Animations.Primary="{StaticResource SampleColorAnimation}" />
覆盖全局默认值
如果需要全局更改默认动画值之一(例如,默认
Duration
为750而不是500),则可以在应用程序的初始化代码中调用
OverrideDefaultSettings
函数。以下示例更改
Duration
和
Easing
的默认值:
XamlFlair.Animations.OverrideDefaultSettings(
duration: 750,
easing: EasingType.Quadratic);
因此,在上面的示例代码中,每个动画都将以二次缓和的方式运行750ms。
使用
ResourceDictionary
进行基本设置
所有
常见
动画都应该放在全局
ResourceDictionary
(例如:
Animations.xaml
)中,并在应用程序中需要时使用。目标是将所有动画合并为一个具有有意义名称的文件,以便任何开发人员都能准确地了解将动画应用到
FrameworkElement
中的内容。下面是一个小例子:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:xf="using:XamlFlair">
<x:Double x:Key="PositiveOffset">50</x:Double>
<x:Double x:Key="NegativeOffset">-50</x:Double>
<x:Double x:Key="SmallScaleFactor">0.75</x:Double>
<x:Double x:Key="LargeScaleFactor">1.25</x:Double>
<xf:AnimationSettings x:Key="FadeIn"
Kind="FadeFrom"
Opacity="0" />
<xf:AnimationSettings x:Key="FadeOut"
Kind="FadeTo"
Opacity="0" />
<!-- Scale to a larger value -->
<xf:AnimationSettings x:Key="Expand"
Kind="ScaleXTo,ScaleYTo"
ScaleX="{StaticResource LargeScaleFactor}"
ScaleY="{StaticResource LargeScaleFactor}" />
<!-- Scale from a larger value -->
<xf:AnimationSettings x:Key="Contract"
Kind="ScaleXFrom,ScaleYFrom"
ScaleX="{StaticResource LargeScaleFactor}"
ScaleY="{StaticResource LargeScaleFactor}" />
.
.
.
</ResourceDictionary>
要设置应用程序中已有的这组预配置
AnimationSettings
,请执行以下步骤:
Animations.xaml
App.xaml
内容如下:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Animations.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
Animations.xaml
中,复制粘贴以下相应链接中的内容
Animation settings for UWP [28]
Animation settings for WPF [29]
Animation settings for Uno [30]
你的应用程序现在有一组
通用
动画可以使用了。
除了创建包含自定义
AnimationSettings
的
ResourceDictionary
之外,XamlFlair还提供一些
默认
动画。
要在应用程序中引用这些默认动画,请在
App.xaml
中执行以下步骤:
XamlFlair.WPF
命名空间
xmlns:xf="clr-namespace:XamlFlair;assembly=XamlFlair.WPF"
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<xf:XamlFlairResources />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
您的应用程序现在有一系列全局
默认
的动画可以使用了。
如果Visual Studio Intellisense在使用
<xf:XamlFlairResources />
时不起作用,您可能需要尝试以下操作:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/XamlFlair.WPF;component/DefaultAnimations.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
TransformOn
属性 (
只支持WPF
)
RenderTransform
可使用
TransformOn
属性应用动画。可用选项为
Render
和
Layout
。未指定任何内容时,默认为
Render
。以下是关于两个选项的示例:
注意 :非常重要的是要注意WPF的
LayoutTransform
不支持任何TranslateTransform
,因此translate动画永远不会生效。您可以在 这里 [31] 的备注部分了解更多信息。
原文readme.md太长了,翻译累了,大家有兴趣看原文吧,最后上一图:
[1]Sekuence Puzzle Game: https://sekuence.fun
[2]给我买杯咖啡: https://www.buymeacoffee.com/xamlflair
[3]Install from Nuget: #install-from-nuget
[4]Features Overview: #features-overview
[5]Basic Concepts: #basic-concepts
[6]Usage: #usage
[7]Base Animation Types: #base-animation-types
[8]Color Animations ( WPF And Uno Only ): #color-animations-wpf-and-uno-only
[9]Overriding the Global Default Values: #overriding-the-global-default-values
[10]
Using a
ResourceDictionary
for Base Settings:
#using-a-resourcedictionary-for-base-settings
Default Animations ( WPF Only ): #default-animations-wpf-only
[12]
TransformOn
Property (
WPF Only
):
#transformon-property-wpf-only
Perspective Rotations ( UWP Only ): #perspective-rotations-uwp-only
[14]Combining Animations: #combining-animations
[15]Overriding Values: #overriding-values
[16]Relative Translations on X and Y Axes: #relative-translations-on-x-and-y-axes
[17]Compound Animations: #compound-animations
[18]Repeating Animations: #repeating-animations
[19]Events and Bindings: #events-and-bindings
[20]Primary and Secondary Completion Commands: #primary-and-secondary-completion-commands
[21]
Using the
StartWith
Property:
#using-the-startwith-property
Using the
AllowOpacityReset
Property (
WPF Only
):
#using-the-allowopacityreset-property-wpf-only
Using the
ClipToBounds
Property (
UWP And Uno Only
):
#using-the-cliptobounds-property-uwp-and-uno-only
Debugging Animations: #debugging-animations
[25]Logging Animations: #logging-animations
[26]
ListViewBase
(
UWP and Uno
) and
ListBox
-based (
WPF
) Animations:
#listviewbase-uwp-and-uno-and-listbox-based-wpf-animations
Perspective Rotations ( UWP Only ): #perspective-rotations-uwp-only
[28]Animation settings for UWP: https://github.com/XamlFlair/XamlFlair/blob/master/Samples/XamlFlair.Samples.UWP/Animations.xaml
[29]Animation settings for WPF: https://github.com/XamlFlair/XamlFlair/blob/master/Samples/XamlFlair.Samples.WPF/Animations.xaml
[30]Animation settings for Uno: https://github.com/XamlFlair/XamlFlair/blob/master/Samples/Uno/XamlFlair.Samples.Uno.Shared/Animations.xaml
[31]这里: https://docs.microsoft.com/en-us/dotnet/api/system.windows.frameworkelement.layouttransform?redirectedfrom=MSDN&view=net-5.0#remarks
Feature | UWP (Uno) | iOS (Uno) | Android (Uno) | Wasm (Uno) EXPERIMENTAL | ||
---|---|---|---|---|---|---|
Animation System | Composition | Storyboards | Storyboards | Storyboards | Storyboards | Storyboards |
Transform Type | TransformGroup | CompositeTransform | CompositeTransform | CompositeTransform | CompositeTransform | |
DefaultAnimations.xaml | ||||||
TransformOn
|
||||||
Compound Animations | ||||||
Relative Translations | ||||||
Repeating Animations | ||||||
Events & Bindings | ||||||
Primary/Secondary Completion Commands | ||||||
StartWith
|
||||||
AllowOpacityReset
|
||||||
ClipToBounds
|
||||||
Animated Lists | ||||||
Blur Effect | ||||||
Saturation Effect | ||||||
Tint Effect | ||||||
Color Animations | ||||||
Perspective Rotations (Swivel) | ||||||
Debugging Animations |
![]() |
伤情的红豆 · 渗透测试中的Exchange - 知乎 1 年前 |