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 속성은 속성 값의 하위 속성을 대상으로 지정할 수 있는 문자열 구문을 처리할 수 있습니다. 구문은 특정 하위 속성이 식별될 때까지 개체 속성 관계 체인을 대상으로 하는 데 "dot-down" 은유를 사용합니다. 이렇게 하면 지원 애니메이션 구조가 있는 값 형식(DiscreteObjectKeyFrameAnimation의 경우 Double, Color, Point 및 Object)에 애니메이션을 적용할 수 있습니다. 예를 들어 개체 형식을 Brush로 사용하는 Control의 Background 값에 애니메이션 효과를 주려고 할 수 있습니다. "BrushAnimation" 애니메이션 형식이 없으므로 백그라운드 에 대한 애니메이션을 직접 대상으로 지정할 수 없습니다. 그러나 대신 수행할 수 있는 작업은 Color 형식을 사용하고 ColorAnimation의 대상이 될 수 있는 Color라는 SolidColorBrush 하위 속성을 참조하는 것입니다. 이에 대한 문자열 구문은 다음과 같습니다.
(Control.Background).(SolidColorBrush.Color)
"(Control.Background)" 주위의 괄호는 중간 "dot"가 "dot down"되어서는 안 되며 대신 대상 지정에 대한 ownertype 정규화된 Background 속성을 찾는 한정 이름의 일부임을 처리에 알립니다. 다음 "dot"는 Brush 형식의 하위 속성을 요청하는 "dot-down" 명령으로 처리됩니다. 마지막 "(SolidColorBrush.Color)" 조각에는 내부 "dot"가 "dot-down"이 아닌 ownertype.member 자격으로 다시 사용되도록 괄호가 다시 포함됩니다.
하위 속성 값의 경우 일부 값 유추가 있을 수 있습니다. 예를 들어 다음 문자열은 "Color"가 실제로 특정 Brush 하위 클래스 SolidColorBrush의 값인 경우에도 유추에서 작동합니다.
(Control.Background).Color
속성 경로 사양에는 이보다 더 많은 것이 있습니다. 이 설명은 기본 대상 지정 시나리오를 시작하기 위한 것입니다. 자세한 내용은 속성 경로 구문 및 스토리보드 애니메이션을 참조하세요.
마이그레이션 정보
path 매개 변수에 대한 경로 값을 지정하는 경우 문자열을 지정하고 GetTargetProperty를 사용하여 값을 다시 검색하면 값도 문자열로 가져옵니다. 이는 Microsoft Silverlight 및 WPF(Windows Presentation Foundation)와 같은 애니메이션 속성 대상 지정 개념의 다른 구현과는 대조적입니다. 이러한 XAML 기술은 대표적인 개체 형식(불연속 PropertyPath 개체)을 사용하여 애니메이션 대상 지정에 대한 속성 경로 정보를 저장하고 SetTargetProperty 메서드의 구문은 PropertyPath 형식을 사용합니다. Windows 런타임 PropertyPath 클래스도 있지만 해당 클래스는 속성 경로 정의에 대한 또 다른 시나리오인 데이터 바인딩에만 사용됩니다. Windows 런타임 문자열을 사용하여 정의한 후 Storyboard의 속성 경로 수정을 지원하지 않으므로 Storyboard.TargetProperty의 구현은 문자열을 사용합니다. 이러한 구분은 XAML 구문 및 연결된 속성 지원에 대해서도 중요하지 않습니다. 코드에서 동적 스토리보드를 만들거나 XAML에서 처음 정의된 후 프로그래밍 방식으로 스토리보드 값을 수정하는 경우에만 중요합니다. 런타임에 애니메이션의 대상을 다른 속성으로 다시 지정해야 하는 경우 새 속성 경로 문자열을 사용하여 완전히 새로운 Storyboard 를 만들고, 새 Storyboard로 애니메이션을 실행하고, 이전 속성 사용을 중지합니다.