まとめる
タイミング、イージング、方向性、重力が連携して Fluent モーションの基盤を形成します。 それぞれが他のコンテキストで考慮され、アプリのコンテキストで適切に適用される必要があります。
アプリで Fluent モーションの基礎を適用する 3 つの方法を次に示します。
- 暗黙的なアニメーション
標準化された値を使用して非常に単純な Fluent モーションを実現するために、パラメーター変更の値間の自動ツイーンとタイミング。 - 組み込みのアニメーション
共通コントロールや共有モーションなどのシステム コンポーネントは、"既定では Fluent" です。 基礎は、暗黙的な使用法と一貫性のある方法で適用されています。 - ガイダンスの推奨事項に従ったカスタム アニメーション
システムがシナリオに正確なモーション ソリューションをまだ提供していない場合があります。 そのような場合は、エクスペリエンスの出発点としてベースラインの基本的な推奨事項を使用します。
切り替えの例
方向前方アウト:
フェードアウト: 150 m、イージング: 既定の加速 方向前方イン:
スライド アップ 150 px: 300 ms、イージング: 既定の減速
方向後方アウト:
スライド ダウン 150 px: 150 ms、イージング: 既定の加速 方向後方イン:
フェードイン: 300 ms、イージング: 既定の減速
オブジェクトの例
方向の拡大:
拡大: 300 ms、イージング: 標準
方向の縮小:
拡張: 150 ms、イージング: 既定の加速
例
WinUI 3 ギャラリー アプリには、ほとんどの WinUI 3 コントロールと機能の対話型の例が含まれています。 Microsoft Store からアプリを入手するか、GitHub でソース コードを取得します。
暗黙的なアニメーション
暗黙的なアニメーションは、パラメーターの変更時に新旧の値を自動的に補間することで Fluent の動きを実現する簡単な方法です。
次のプロパティに対する変更を暗黙的にアニメーション化できます。
-
- 不透明度
- 回転
- スケール
- 翻訳
Border、ContentPresenter、またはPanel
- 背景
暗黙的にアニメーション化された変更が可能な各プロパティには、対応する transition プロパティがあります。 プロパティをアニメーション化するには、対応する transition プロパティに遷移の種類を割り当てます。 次の表に、transition プロパティと、それぞれに使用する遷移の種類を示します。
この例では、不透明度プロパティと遷移を使用して、コントロールが有効になったときにボタンをフェードインし、無効になったときにフェードアウトする方法を示しています。
<Button x:Name="SubmitButton"
Content="Submit"
Opacity="{x:Bind OpaqueIfEnabled(SubmitButton.IsEnabled), Mode=OneWay}">
<Button.OpacityTransition>
<ScalarTransition />
</Button.OpacityTransition>
</Button>
public double OpaqueIfEnabled(bool IsEnabled)
{
return IsEnabled ? 1.0 : 0.2;
}
UWP と WinUI 2
重要
この記事の情報と例は、Windows アプリ SDKと WinUI 3 を使用するアプリ向けに最適化されていますが、一般に WinUI 2 を使用する UWP アプリに適用されます。 プラットフォーム固有の情報と例については、UWP API リファレンスを参照してください。
このセクションには、UWP または WinUI 2 アプリでコントロールを使用するために必要な情報が含まれています。
- UWP API: Windows.UI.Xaml.Media.Animation 名前空間、 Windows.UI.Xaml.Controls 名前空間
- WinUI 2 Apis: Microsoft.UI.Xaml.Controls 名前空間
- WinUI 2 ギャラリー アプリを開き、暗黙的な遷移の動作を確認します。 WinUI 2 ギャラリー アプリには、ほとんどの WinUI 2 コントロールと機能の対話型の例が含まれています。 Microsoft Store からアプリを入手するか、GitHub でソース コードを取得します。
暗黙的なアニメーションには Windows 10 Version 1809 (SDK 17763) 以降が必要です。
関連記事
Windows developer