Storyboard.SetTargetProperty(Timeline, String) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
ターゲット要素の Storyboard.TargetProperty XAML 添付プロパティの値を設定します。
public:
static void SetTargetProperty(Timeline ^ element, Platform::String ^ path);
static void SetTargetProperty(Timeline const& element, winrt::hstring const& path);
public static void SetTargetProperty(Timeline element, string path);
function setTargetProperty(element, path)
Public Shared Sub SetTargetProperty (element As Timeline, path As String)
パラメーター
- element
- Timeline
値を設定する対象の要素。
- path
-
String
Platform::String
winrt::hstring
設定するターゲット要素の Storyboard.TargetProperty 値。 これは、アニメーションが適用される依存関係プロパティを対象とする修飾パスを指定します。 「解説」を参照してください。
注釈
最初の XAML 定義でアニメーションをターゲットにするのではなく、コードで SetTargetProperty を使用することはまれです。 特に実行時にのみ使用可能な値を組み込もうとしている場合は、アニメーションですべてのターゲット設定とタイミングを正しく取得するのは難しいです。 XAML でアニメーションを作成することをお勧めします。つまり、 SetTargetProperty ランタイム メソッド (バックグラウンドで XAML をサポートする) ではなく、Storyboard.TargetProperty 添付プロパティを使用します。 コードでアニメーションを構築することは、高度なシナリオです。 関連する内容の非常に基本的なコード例を次に示します。
Rectangle rect = new Rectangle();
rect.RenderTransform = new ScaleTransform();
//TODO - connect this Rectangle to the visual tree
Storyboard storyboard = new Storyboard();
DoubleAnimation scalex = new DoubleAnimation()
{
From = 0,
To = 8,
AutoReverse = true,
Duration = TimeSpan.FromSeconds(2)
};
Storyboard.SetTargetProperty(scalex, "(Rectangle.RenderTransform).(ScaleTransform.ScaleX)");
Storyboard.SetTarget(scalex, rect);
//TODO - Begin the animation
アニメーション プロパティのターゲット設定のプロパティ パス
Storyboard.TargetProperty 添付プロパティは、通常、XAML のアニメーション定義の Storyboard.Children コレクションを構成する個々のタイムライン派生アニメーションに設定されます。
Storyboard.TargetName プロパティは、プロパティ値のサブプロパティを対象とする文字列構文を処理できます。 この構文では、特定のサブプロパティが識別されるまで、オブジェクトとプロパティのリレーションシップのチェーンをターゲットにするための "ドットダウン" メタファーが使用されます。 これにより、アニメーションをサポートするアニメーション構造 (DiscreteObjectKeyFrameAnimation の場合は Double、Color、Point、Object) がある値の型にアニメーションを適用できます。 たとえば、オブジェクトの種類である Brush を受け取る Control の Background 値をアニメーション化できます。 "BrushAnimation" アニメーションの種類がないため、 背景 のアニメーションを直接ターゲットにすることはできません。 ただし、代わりに実行できるのは、Color という名前の SolidColorBrush サブプロパティを参照することです。Color 型を受け取り、ColorAnimation の対象にすることができます。 この文字列構文は次のとおりです。
(Control.Background).(SolidColorBrush.Color)
"(Control.Background)" の周りのかっこは、中間の "dot" が "ドットダウン" ではなく、対象指定の ownertype 修飾 Background プロパティを検索する修飾名の一部であることを処理に通知します。 次の "dot" は、 Brush 型のサブプロパティを要求する "ドットダウン" 命令として扱われます。 最後の "(SolidColorBrush.Color)" フラグメントには、内部の "dot" が "dot-down" ではなく ownertype.member 修飾として再び使用されるように、かっこが再び含まれています。
サブプロパティ値の場合、値の推論が存在する可能性があることに注意してください。 たとえば、次の文字列は、"Color" が実際には特定の Brush サブクラス SolidColorBrush の値である場合でも、推論によって機能します。
(Control.Background).Color
プロパティ パスの指定には、これよりも多くのものがあります。 この解説は、基本的なターゲット設定シナリオを開始することを目的としています。 詳細については、「 プロパティ パスの構文 」および「 ストーリーボードアニメーション」を参照してください。
移行に関する注意事項
path パラメーターのパス値を指定する場合は、文字列を指定し、GetTargetProperty を使用して値を再度取得すると、値も文字列として取得されます。 これは、Microsoft Silverlight や Windows Presentation Foundation (WPF) などのアニメーション プロパティの概念をターゲットとする他の実装とは対照的です。 これらの XAML テクノロジでは、代表的なオブジェクト型 (個別の PropertyPath オブジェクト) を使用して、アニメーションターゲットのプロパティ パス情報を格納し、 SetTargetProperty メソッドの構文では PropertyPath 型を使用します。 Windows ランタイムには PropertyPath クラスもあります。ただし、そのクラスはデータ バインディングにのみ使用されます。これは、プロパティ パス定義のもう 1 つのシナリオです。 Windows ランタイムでは、 文字列を使用して定義された後のストーリーボードのプロパティ パスの変更はサポートされていないため、Storyboard.TargetProperty の実装は文字列を受け取ります。 この違いは、XAML 構文と添付プロパティのサポートについても重要ではありません。 これは、コードで動的なストーリーボードを作成するか、XAML で最初に定義された後にストーリーボードの値をプログラムで変更する場合にのみ重要です。 実行時にアニメーションを別のプロパティに再ターゲットする必要がある場合は、新しいプロパティ パス文字列を使用してまったく新しい ストーリーボード を作成し、新しいストーリーボードでアニメーションを実行し、前の ストーリーボードの使用を停止します。