Style 클래스

정의

형식 인스턴스 간에 속성, 리소스 및 이벤트 처리기를 공유할 수 있게 합니다.Enables the sharing of properties, resources, and event handlers between instances of a type.

public ref class Style : System::Windows::Threading::DispatcherObject, System::Windows::Markup::IAddChild, System::Windows::Markup::INameScope, System::Windows::Markup::IQueryAmbient
public ref 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")]
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")>]
type Style = class
    inherit DispatcherObject
    interface IAddChild
    interface INameScope
    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 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
Public Class Style
Inherits DispatcherObject
Implements IAddChild, INameScope, IQueryAmbient
Public Class Style
Inherits DispatcherObject
Implements IAddChild, INameScope
상속
특성
구현

예제

다음 예제에서는의 속성에 영향을 주는 스타일 선언을 보여 줍니다 Background Control .The following example shows a style declaration that will affect the Background property of a Control.

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

위의 스타일을 적용 하려면 다음을 수행 합니다.To apply the above style, do the following:

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

또한 속성을 사용 하 여 지정 된 형식의 모든 요소에 스타일을 적용할 수 있습니다 TargetType .You can also apply styles to all elements of a given type by using the TargetType property. 스타일에 대상 유형을 추가 하는 것은 더 이상 구문으로 설정 하는 속성을 정규화 할 필요가 없음을 의미 ClassName.PropertyName 합니다.Adding the target type to the style means that you no longer have to fully qualify the property you are setting with the ClassName.PropertyName syntax. 다음 예제에서는 모든 요소에 적용 되는 스타일을 정의 합니다 TextBlock .The following example defines a style that will be applied to every TextBlock element.

<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 컨트롤의 조합으로 구성 되어 있으므로 형식의 모든 컨트롤에 적용 되는 스타일을 만들면 광범위 한 영향을 줄 수 있습니다.Many WPF controls consist of a combination of other WPF controls, so creating a style that applies to all controls of a type can have broad impact. 예를 들어,의 컨트롤을 대상으로 하는 스타일을 만드는 경우 TextBlock Canvas 이 스타일은 TextBlock TextBlock 와 같은 다른 컨트롤의 일부인 경우에도 캔버스의 모든 컨트롤에 적용 됩니다 ListBox .For instance, if you create a style that targets the TextBlock controls in a Canvas, the style is applied to all TextBlock controls in the canvas, even if the TextBlock is part of another control, such as a ListBox.

정의 된 스타일에서 확장 하거나 상속 하는 방법에 대 한 자세한 내용은 페이지를 참조 하십시오 BasedOn .For information on how to extend or inherit from a defined style, see the BasedOn page.

설명

Style또는에서 파생 되는 모든 요소에를 설정할 수 있습니다 FrameworkElement FrameworkContentElement .You can set a Style on any element that derives from FrameworkElement or FrameworkContentElement. 스타일은 일반적으로 섹션 내에서 리소스로 선언 됩니다 Resources .A style is most commonly declared as a resource inside the Resources section. 스타일은 리소스 이기 때문에 모든 리소스에 적용 되는 것과 동일한 범위 지정 규칙을 따르지만 스타일을 선언 하는 데 적용할 수 있는 위치에 영향을 줍니다.Because styles are resources, they obey the same scoping rules that apply to all resources, so where you declare a style affects where it can be applied. 예를 들어 응용 프로그램 정의 XAML 파일의 루트 요소에서 스타일을 선언 하는 경우 응용 프로그램의 모든 위치에서 스타일을 사용할 수 있습니다.If, for instance, you declare the style in the root element of your application definition XAML file, the style can be used anywhere in your application. 탐색 응용 프로그램을 만들고 응용 프로그램의 XAML 파일 중 하나에서 스타일을 선언 하는 경우 해당 XAML 파일에만 스타일을 사용할 수 있습니다.If you are creating a navigation application and declare the style in one of the application's XAML files, the style can be used only in that XAML file. 리소스의 범위 지정 규칙에 대 한 자세한 내용은 XAML 리소스를 참조 하세요.For more information on scoping rules for resources, see XAML Resources.

스타일 선언은 Style 하나 이상의 개체 컬렉션을 포함 하는 개체로 구성 됩니다 Setter .The style declaration consists of a Style object that contains a collection of one or more Setter objects. 각는 Setter 및로 구성 됩니다 Property Value .Each Setter consists of a Property and a Value. 속성은 스타일을 적용할 요소의 속성 이름입니다.The property is the name of the property of the element the style is to apply to. 스타일을 리소스로 선언한 후에는 다른 리소스와 마찬가지로 참조할 수 있습니다.After the style is declared as a resource, it can then be referenced just like any other resource.

참고

Setter 컬렉션에 동일한 속성 값을 가진 setter가 둘 이상 있는 경우 Property 마지막으로 선언 된 setter가 사용 됩니다.If there is more than one setter in the setter collection with the same Property property value, the setter that is declared last is used. 마찬가지로, 스타일에서 같은 속성에 대 한 값을 직접 설정 하는 경우 요소에 설정 된 값이 바로 우선적으로 적용 됩니다.Similarly, if you set a value for the same property in a style and on an element directly, the value set on the element directly takes precedence.

WPF (Windows Presentation Foundation) 스타일 지정 및 템플릿 모델을 사용 하면 모양과 논리의 분리 뿐만 아니라 모양과 공유를 유지 관리할 수 있습니다.The Windows Presentation Foundation (WPF) styling and templating model allows maintenance and sharing of a look as well as the separation of presentation and logic. 스타일 지정 및 템플릿 모델에는 UI를 사용자 지정할 수 있는 기능 모음이 포함 되어 있습니다.The styling and templating model includes a suite of features that enable you to customize your UI. 이 기능 집합에는 다음과 같은 클래스가 포함 됩니다 Style .This suite of features includes the Style class as well as the following:

자세한 내용은 스타일 지정 및 템플릿을 참조 하세요.For more information, see Styling and Templating.

생성자

Style()

Style 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the Style class.

Style(Type)

지정된 Style에 사용할 Type 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the Style class to use on the specified Type.

Style(Type, Style)

지정된 Style을 기반으로, 그리고 지정된 Type에 대해 사용할 Style 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the Style class to use on the specified Type and based on the specified Style.

속성

BasedOn

현재 스타일의 기준이 되는 정의된 스타일을 가져오거나 설정합니다.Gets or sets a defined style that is the basis of the current style.

Dispatcher

Dispatcher와 연결된 DispatcherObject를 가져옵니다.Gets the Dispatcher this DispatcherObject is associated with.

(다음에서 상속됨 DispatcherObject)
IsSealed

이 스타일이 읽기 전용이고 변경될 수 없는지 여부를 나타내는 값을 가져옵니다.Gets a value that indicates whether the style is read-only and cannot be changed.

Resources

이 스타일의 범위 내에서 사용할 수 있는 리소스의 컬렉션을 가져오거나 설정합니다.Gets or sets the collection of resources that can be used within the scope of this style.

Setters

SetterEventSetter 개체의 컬렉션을 가져옵니다.Gets a collection of Setter and EventSetter objects.

TargetType

이 스타일을 적용할 형식을 가져오거나 설정합니다.Gets or sets the type for which this style is intended.

Triggers

지정된 조건에 따라 속성 값을 적용하는 TriggerBase 개체 컬렉션을 가져옵니다.Gets a collection of TriggerBase objects that apply property values based on specified conditions.

메서드

CheckAccess()

호출 스레드가 이 DispatcherObject에 액세스할 수 있는지 여부를 확인합니다.Determines whether the calling thread has access to this DispatcherObject.

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

지정된 개체가 현재 개체와 같은지 확인합니다.Determines whether the specified object is equal to the current object.

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

Style의 해시 코드를 반환합니다.Returns the hash code for this Style.

GetType()

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

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

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

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

현재 이름 범위에 새 이름-개체 쌍을 등록합니다.Registers a new name-object pair in the current namescope.

Seal()

이 스타일과 모든 팩터리 및 트리거를 변경할 수 없도록 잠급니다.Locks this style and all factories and triggers so they cannot be changed.

ToString()

현재 개체를 나타내는 문자열을 반환합니다.Returns a string that represents the current object.

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

이름 범위에서 이름-개체 매핑을 제거합니다.Removes a name-object mapping from the namescope.

VerifyAccess()

호출 스레드에서 이 DispatcherObject에 액세스할 수 있는지 확인합니다.Enforces that the calling thread has access to this DispatcherObject.

(다음에서 상속됨 DispatcherObject)

명시적 인터페이스 구현

IAddChild.AddChild(Object)

자식 개체를 추가합니다.Adds a child object.

IAddChild.AddText(String)

노드의 텍스트 콘텐츠를 개체에 추가합니다.Adds the text content of a node to the object.

INameScope.FindName(String)

지정된 식별 이름이 있는 개체를 반환합니다.Returns an object that has the provided identifying name.

IQueryAmbient.IsAmbientPropertyAvailable(String)

지정된 앰비언트 속성을 현재 범위에서 사용할 수 있는지 여부를 쿼리합니다.Queries whether a specified ambient property is available in the current scope.

적용 대상