Style 클래스

정의

형식 인스턴스 간에 속성, 리소스 및 이벤트 처리기를 공유할 수 있게 합니다.

public ref class Style : System::Windows::Threading::DispatcherObject, System::Windows::Markup::IAddChild, System::Windows::Markup::INameScope
public ref class Style : System::Windows::Threading::DispatcherObject, System::Windows::Markup::IAddChild, System::Windows::Markup::INameScope, System::Windows::Markup::IQueryAmbient
[System.Windows.Localizability(System.Windows.LocalizationCategory.Ignore)]
[System.Windows.Markup.ContentProperty("Setters")]
[System.Windows.Markup.DictionaryKeyProperty("TargetType")]
public class Style : System.Windows.Threading.DispatcherObject, System.Windows.Markup.IAddChild, System.Windows.Markup.INameScope
[System.Windows.Localizability(System.Windows.LocalizationCategory.Ignore)]
[System.Windows.Markup.ContentProperty("Setters")]
[System.Windows.Markup.DictionaryKeyProperty("TargetType")]
public class Style : System.Windows.Threading.DispatcherObject, System.Windows.Markup.IAddChild, System.Windows.Markup.INameScope, System.Windows.Markup.IQueryAmbient
[<System.Windows.Localizability(System.Windows.LocalizationCategory.Ignore)>]
[<System.Windows.Markup.ContentProperty("Setters")>]
[<System.Windows.Markup.DictionaryKeyProperty("TargetType")>]
type Style = class
    inherit DispatcherObject
    interface INameScope
    interface IAddChild
[<System.Windows.Localizability(System.Windows.LocalizationCategory.Ignore)>]
[<System.Windows.Markup.ContentProperty("Setters")>]
[<System.Windows.Markup.DictionaryKeyProperty("TargetType")>]
type Style = class
    inherit DispatcherObject
    interface INameScope
    interface IAddChild
    interface IQueryAmbient
[<System.Windows.Localizability(System.Windows.LocalizationCategory.Ignore)>]
[<System.Windows.Markup.ContentProperty("Setters")>]
[<System.Windows.Markup.DictionaryKeyProperty("TargetType")>]
type Style = class
    inherit DispatcherObject
    interface IAddChild
    interface INameScope
    interface IQueryAmbient
Public Class Style
Inherits DispatcherObject
Implements IAddChild, INameScope
Public Class Style
Inherits DispatcherObject
Implements IAddChild, INameScope, IQueryAmbient
상속
특성
구현

예제

다음 예제에서는 속성에 영향을 Background 주는 스타일 선언을 보여 주는 Control합니다.

<Style x:Key="Style1">
  <Setter Property="Control.Background" Value="Yellow"/>
</Style>

위의 스타일을 적용하려면 다음을 수행합니다.

<Label Content="Yellow Background" Style="{StaticResource Style1}" />

속성을 사용하여 지정된 형식의 모든 요소에 스타일을 적용할 TargetType 수도 있습니다. 스타일에 대상 형식을 추가하면 더 이상 구문으로 ClassName.PropertyName 설정하려는 속성을 정규화할 필요가 없습니다. 다음 예제에서는 모든 TextBlock 요소에 적용할 스타일을 정의합니다.

<Style TargetType="{x:Type TextBlock}">
  <Setter Property="FontFamily" Value="Segoe Black" />
  <Setter Property="HorizontalAlignment" Value="Center" />
  <Setter Property="FontSize" Value="12pt" />
  <Setter Property="Foreground" Value="#777777" />
</Style>

참고

많은 WPF 컨트롤은 다른 WPF 컨트롤의 조합으로 구성되므로 형식의 모든 컨트롤에 적용되는 스타일을 만들면 광범위한 영향을 미칠 수 있습니다. 예를 들어 컨트롤을 대상으로 TextBlock 하는 스타일을 만들면 캔버스의 모든 TextBlock 컨트롤Canvas에 스타일이 적용됩니다(예: ListBox다른 컨트롤의 일부인 경우TextBlock).

정의된 스타일에서 확장 또는 상속하는 방법에 대한 자세한 내용은 페이지를 참조하세요 BasedOn .

설명

파생 FrameworkElement 되거나 FrameworkContentElement파생되는 Style 모든 요소에 대해 설정할 수 있습니다. 스타일은 가장 일반적으로 섹션 내 Resources 의 리소스로 선언됩니다. 스타일은 리소스이므로 모든 리소스에 적용되는 동일한 범위 지정 규칙을 준수하므로 스타일을 선언하는 위치는 적용할 수 있는 위치에 영향을 줍니다. 예를 들어 애플리케이션 정의 XAML 파일의 루트 요소에서 스타일을 선언하는 경우 애플리케이션의 어느 곳에서나 스타일을 사용할 수 있습니다. 탐색 애플리케이션을 만들고 애플리케이션의 XAML 파일 중 하나에서 스타일을 선언하는 경우 해당 XAML 파일에서만 스타일을 사용할 수 있습니다. 리소스에 대한 범위 지정 규칙에 대한 자세한 내용은 XAML 리소스를 참조하세요.

스타일 선언은 하나 이상의 Setter 개체 컬렉션을 포함하는 개체로 구성 Style 됩니다. 각각 Setter 은 a와 a PropertyValue구성됩니다. 속성은 스타일이 적용할 요소의 속성 이름입니다. 스타일이 리소스로 선언된 후 다른 리소스와 마찬가지로 해당 스타일을 참조할 수 있습니다.

참고

setter 컬렉션에 동일한 Property 속성 값을 가진 두 개 이상의 setter가 있는 경우 마지막으로 선언된 setter가 사용됩니다. 마찬가지로 스타일 및 요소에서 직접 동일한 속성에 대한 값을 설정하는 경우 요소에 설정된 값이 바로 우선 적용됩니다.

WPF(Windows Presentation Foundation) 스타일 지정 및 템플릿 모델을 사용하면 모양을 유지 관리하고 공유할 수 있을 뿐만 아니라 프레젠테이션과 논리를 분리할 수 있습니다. 스타일 지정 및 템플릿 모델에는 UI를 사용자 지정할 수 있는 기능 모음이 포함되어 있습니다. 이 기능 모음에는 클래스와 다음이 포함됩니다 Style .

자세한 내용은 스타일 지정 및 템플릿을 참조하세요.

생성자

Style()

Style 클래스의 새 인스턴스를 초기화합니다.

Style(Type)

지정된 Style에 사용할 Type 클래스의 새 인스턴스를 초기화합니다.

Style(Type, Style)

지정된 Style을 기반으로, 그리고 지정된 Type에 대해 사용할 Style 클래스의 새 인스턴스를 초기화합니다.

속성

BasedOn

현재 스타일의 기준이 되는 정의된 스타일을 가져오거나 설정합니다.

Dispatcher

Dispatcher와 연결된 DispatcherObject를 가져옵니다.

(다음에서 상속됨 DispatcherObject)
IsSealed

이 스타일이 읽기 전용이고 변경될 수 없는지 여부를 나타내는 값을 가져옵니다.

Resources

이 스타일의 범위 내에서 사용할 수 있는 리소스의 컬렉션을 가져오거나 설정합니다.

Setters

SetterEventSetter 개체의 컬렉션을 가져옵니다.

TargetType

이 스타일을 적용할 형식을 가져오거나 설정합니다.

Triggers

지정된 조건에 따라 속성 값을 적용하는 TriggerBase 개체 컬렉션을 가져옵니다.

메서드

CheckAccess()

호출 스레드가 이 DispatcherObject에 액세스할 수 있는지 여부를 확인합니다.

(다음에서 상속됨 DispatcherObject)
Equals(Object)

지정된 개체가 현재 개체와 같은지 확인합니다.

(다음에서 상속됨 Object)
GetHashCode()

Style의 해시 코드를 반환합니다.

GetType()

현재 인스턴스의 Type을 가져옵니다.

(다음에서 상속됨 Object)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
RegisterName(String, Object)

현재 이름 범위에 새 이름-개체 쌍을 등록합니다.

Seal()

이 스타일과 모든 팩터리 및 트리거를 변경할 수 없도록 잠급니다.

ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)
UnregisterName(String)

이름 범위에서 이름-개체 매핑을 제거합니다.

VerifyAccess()

호출 스레드에서 이 DispatcherObject에 액세스할 수 있는지 확인합니다.

(다음에서 상속됨 DispatcherObject)

명시적 인터페이스 구현

IAddChild.AddChild(Object)

자식 개체를 추가합니다.

IAddChild.AddText(String)

노드의 텍스트 콘텐츠를 개체에 추가합니다.

INameScope.FindName(String)

지정된 식별 이름이 있는 개체를 반환합니다.

IQueryAmbient.IsAmbientPropertyAvailable(String)

지정된 앰비언트 속성을 현재 범위에서 사용할 수 있는지 여부를 쿼리합니다.

적용 대상

추가 정보