인라인 스타일 및 템플릿Inline Styles and Templates

WPF(Windows Presentation Foundation)Windows Presentation Foundation (WPF)는 여러 번 사용할 수 있도록 리소스에서 요소의 시각적 모양을 정의 하는 방법으로 Style 개체 및 템플릿 개체 (FrameworkTemplate 서브 클래스)를 제공 합니다.provides Style objects and template objects (FrameworkTemplate subclasses) as a way to define the visual appearance of an element in resources, so that they can be used multiple times. 이러한 이유로 StyleFrameworkTemplate 형식을 사용 하는 XAMLXAML 특성은 거의 항상 새 항목을 인라인으로 정의 하지 않고 기존 스타일 및 템플릿에 대 한 리소스 참조를 만듭니다.For this reason, attributes in XAMLXAML that take the types Style and FrameworkTemplate almost always make resource references to existing styles and templates rather than define new ones inline.

인라인 스타일 및 템플릿의 제한 사항Limitations of Inline Styles and Templates

XAML(Extensible Application Markup Language)Extensible Application Markup Language (XAML)에서 스타일 및 템플릿 속성은 기술적으로 두 가지 방법 중 하나로 설정할 수 있습니다.In XAML(Extensible Application Markup Language)Extensible Application Markup Language (XAML), style and template properties can technically be set in one of two ways. 특성 구문을 사용 하 여 리소스 내에 정의 된 스타일을 참조할 수 있습니다. 예를 들어 <개체Style="{StaticResourcemyResourceKey}" .../>합니다.You can use attribute syntax to reference a style that was defined within a resource, for example <objectStyle="{StaticResourcemyResourceKey}" .../>. 또는 속성 요소 구문을 사용 하 여 인라인 스타일을 정의할 수 있습니다. 예를 들면 다음과 같습니다.Or you can use property element syntax to define a style inline, for instance:

< 개체 >< object >

< 개체 .Style>< object .Style>

< Style``.../>< Style .../>

</ 개체 .Style></ object .Style>

</ 개체 ></ object >

특성 사용은 훨씬 더 일반적입니다.The attribute usage is much more common. 인라인으로 정의 되 고 리소스에 정의 되지 않은 스타일은 반드시 포함 하는 요소로만 범위가 지정 되며 리소스 키가 없기 때문에 쉽게 다시 사용할 수 없습니다.A style that is defined inline and not defined in resources is necessarily scoped to the containing element only, and cannot be re-used as easily because it has no resource key. 일반적으로 리소스 정의 스타일은 더 다양 하 고 유용 하며, 코드에서 프로그램 논리를 태그 디자인 으로부터 분리 하는 일반적인 WPF(Windows Presentation Foundation)Windows Presentation Foundation (WPF) 프로그래밍 모델 원칙을 유지 하는 것이 더 좋습니다.In general a resource-defined style is more versatile and useful, and is more in keeping with the general WPF(Windows Presentation Foundation)Windows Presentation Foundation (WPF) programming model principle of separating program logic in code from design in markup.

일반적으로 스타일 또는 템플릿 인라인을 설정 하는 이유는 해당 위치에서 해당 스타일이 나 템플릿만 사용 하려는 경우에도 마찬가지입니다.Usually there is no reason to set a style or template inline, even if you only intend to use that style or template in that location. 스타일이 나 템플릿을 사용할 수 있는 대부분의 요소는 콘텐츠 속성과 콘텐츠 모델도 지원 합니다.Most elements that can take a style or template also support a content property and a content model. 스타일 지정 또는 템플릿을 한 번만 사용 하 여 만든 논리 트리를 사용 하는 경우에는 직접 태그에서 해당 하는 자식 요소를 사용 하 여 해당 콘텐츠 속성을 간단 하 게 채울 수 있습니다.If you are only using whatever logical tree you create through styling or templating once, it would be even easier to just fill that content property with the equivalent child elements in direct markup. 이는 스타일 및 템플릿 메커니즘을 모두 무시 합니다.This would bypass the style and template mechanisms altogether.

개체를 반환 하는 태그 확장에서 사용 하도록 설정 된 다른 구문은 스타일 및 템플릿에도 사용할 수 있습니다.Other syntaxes enabled by markup extensions that return an object are also possible for styles and templates. 가능한 시나리오의 두 확장에는 TemplateBindingBinding가 있습니다.Two such extensions that have possible scenarios include TemplateBinding and Binding.

참조See also