Storyboard.SetTargetProperty(Timeline, String) 메서드

정의

Storyboard 값을 설정합니다. 대상 요소에 대한 TargetProperty XAML 연결 속성입니다.

UWP에 해당하는 WinUI 2 API: Microsoft.UI.Xaml.Media.Animation.Storyboard. SetTargetProperty(Windows 앱 SDK WinUI의 경우 Windows 앱 SDK 네임스페이스 참조).

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

Storyboard. 설정할 대상 요소의 TargetProperty 값입니다. 애니메이션이 적용되는 종속성 속성을 대상으로 하는 정규화 경로를 지정합니다. 설명 부분을 참조하세요.

설명

초기 XAML 정의에서 애니메이션을 대상으로 지정하는 대신 코드에서 SetTargetProperty를 사용하는 경우는 드뭅니다. 특히 런타임에만 사용할 수 있는 값을 통합하려는 경우 애니메이션에서 모든 대상 지정 및 타이밍을 올바르게 가져오는 것이 까다롭습니다. XAML에서 애니메이션을 만드는 것이 좋습니다. 즉, Storyboard 사용합니다. SetTargetProperty 런타임 메서드가 아닌 TargetProperty 연결된 속성입니다(백그라운드에서 XAML을 지원함). 코드에서 애니메이션을 빌드하는 것은 고급 시나리오입니다. 관련된 내용에 대한 매우 기본적인 코드 예제는 다음과 같습니다.

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 개별 Timeline파생 애니메이션에 설정됩니다.

Storyboard. TargetName 속성은 속성 값의 하위 속성을 대상으로 지정할 수 있는 문자열 구문을 처리할 수 있습니다. 구문은 특정 하위 속성이 식별될 때까지 개체 속성 관계 체인을 대상으로 지정하기 위해 "점 아래로" 은유를 사용합니다. 이렇게 하면 지원 애니메이션 구조(Double, ColorPoint 및 Object for)가 있는 값 형식에 DiscreteObjectKeyFrameAnimation애니메이션을 적용할 수 있습니다. 예를 들어 개체 형식Brush을 사용하는 값에 애니메이션 Background Control효과를 주려고 할 수 있습니다. "BrushAnimation" 애니메이션 형식은 없으므로 애니메이션을 Background 직접 대상으로 지정할 수 없습니다. 그러나 대신 수행할 수 있는 작업은 형식 ColorSolidColorBrush 사용하여 대상을 지정할 ColorAnimation수 있는 이름이 지정된 Color하위 속성입니다. 이에 대한 문자열 구문은 다음과 같습니다.

(Control.Background).(SolidColorBrush.Color)

"(Control.Background)" 주위의 괄호는 중간 "dot"가 "dot down"되어서는 안 되며 대상 지정에 대한 ownertype 정규화된 Background 속성을 찾는 정규화된 이름의 일부임을 처리에 알립니다. 다음 "점"은 형식의 Brush 하위 속성이 요청되는 "dot-down" 명령으로 처리됩니다. 마지막 "(SolidColorBrush.Color)" 조각에는 괄호가 다시 포함되므로 내부 "점"이 다시 "dot-down"이 아닌 ownertype.member 정규화로 사용됩니다.

하위 속성 값의 경우 일부 값 유추가 있을 수 있습니다. 예를 들어 다음 문자열은 "Color"가 실제로 특정 Brush 하위 클래스 SolidColorBrush의 값인 경우에도 유추에 의해 작동합니다.

(Control.Background).Color

속성 경로 사양에는 이보다 훨씬 더 많은 것이 있습니다. 이 설명은 기본 대상 지정 시나리오를 시작하기 위한 것입니다. 자세한 내용은 속성 경로 구문스토리보드 애니메이션을 참조하세요.

마이그레이션 정보

경로 매개 변수에 대한 경로 값을 지정하면 문자열을 지정하고 값을 다시 사용하여 GetTargetProperty검색하면 값도 문자열로 가져옵니다. 이는 Microsoft Silverlight 및 WPF(Windows Presentation Foundation)와 같은 개념을 대상으로 하는 애니메이션 속성의 다른 구현과는 대조적입니다. 이러한 XAML 기술은 대표 개체 형식(개별 PropertyPath 개체)을 사용하여 애니메이션 대상 지정에 대한 속성 경로 정보를 저장하고 SetTargetProperty 메서드의 구문은 PropertyPath 형식을 사용합니다. Windows 런타임 클래스도 있지만 PropertyPath 해당 클래스는 데이터 바인딩에만 사용되며 이는 속성 경로 정의에 대한 또 다른 시나리오입니다. Windows 런타임 문자열을 사용하여 정의한 후 속성 경로 Storyboard 수정을 지원하지 않으므로 Storyboard 구현합니다. TargetProperty는 문자열을 사용합니다. 이러한 구분은 XAML 구문 및 연결된 속성 지원에 대해서도 중요하지 않습니다. 코드에서 동적 스토리보드를 만들거나 XAML에서 처음 정의한 후 프로그래밍 방식으로 스토리보드 값을 수정하는 경우에만 중요합니다. 런타임에 애니메이션의 대상을 다른 속성으로 다시 지정해야 하는 경우 새 속성 경로 문자열을 사용하여 완전히 새로 Storyboard 만들고, 새 Storyboard애니메이션으로 애니메이션을 실행하고, 이전 속성 사용을 중지합니다.

적용 대상

추가 정보