Share via


Storyboard.SetTargetProperty(Timeline, String) メソッド

定義

ターゲット要素の 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 プロパティは、プロパティ値のサブプロパティをターゲットにする文字列構文を処理できます。 この構文では、特定のサブプロパティが識別されるまで、オブジェクトとプロパティのリレーションシップのチェーンをターゲットにするための "ドットダウン" メタファーが使用されます。 これにより、アニメーションをサポートするアニメーション構造 (DoubleColorPointおよび Object for DiscreteObjectKeyFrameAnimation) がある値の型にアニメーションを適用できます。 たとえば、オブジェクトの種類である Brush を受け取る ControlBackground 値をアニメーション化することができます。 "BrushAnimation" アニメーションの種類がないため、 バックグラウンド のアニメーションを直接ターゲットにすることはできません。 しかし、代わりにできることは、Colorという名前SolidColorBrush サブプロパティを参照することです。これは Color 型を受け取り、ColorAnimation の対象にすることができます。 この文字列構文は次のとおりです。

(Control.Background).(SolidColorBrush.Color)

"(Control.Background)" の周りのかっこは、中間の "dot" は "dot down" ではなく、ターゲット設定の 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 で最初に定義された後にプログラムでストーリーボードの値を変更する場合にのみ重要です。 実行時にアニメーションを別のプロパティに再ターゲットする必要がある場合は、新しいプロパティ パス文字列を使用してまったく新しい ストーリーボード を作成し、新しいストーリーボードでアニメーションを実行し、前の ストーリーボードの使用を停止します。

適用対象

こちらもご覧ください