Style Class

Definition

속성, 리소스 및 이벤트 처리기 형식의 인스턴스 간에 공유할 수 있습니다.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
type Style = class
    inherit DispatcherObject
    interface IAddChild
    interface INameScope
    interface IQueryAmbient
type Style = class
    inherit DispatcherObject
    interface INameScope
    interface IAddChild
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
Inheritance
Attributes
Implements

Examples

다음 예제에서는 ControlBackground 속성에 영향을 주는 스타일 선언을 보여 줍니다.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>

Note

많은 WPFWPF 컨트롤은 다른 WPFWPF 컨트롤의 조합으로 구성 되므로 형식의 모든 컨트롤에 적용 되는 스타일을 만들면 광범위 한 영향을 줄 수 있습니다.Many WPFWPF controls consist of a combination of other WPFWPF controls, so creating a style that applies to all controls of a type can have broad impact. 예를 들어 CanvasTextBlock 컨트롤을 대상으로 하는 스타일을 만드는 경우 TextBlock ListBox같은 다른 컨트롤의 일부인 경우에도 캔버스의 모든 TextBlock 컨트롤에 스타일이 적용 됩니다.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.

Remarks

FrameworkElement 또는 FrameworkContentElement에서 파생 되는 모든 요소에 Style를 설정할 수 있습니다.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. 애플리케이션 정의의 루트 요소에서 스타일을 선언 하는 예를 들어 하는 경우 XAMLXAML 파일인 애플리케이션에서 어디서 나 사용할 수 있습니다.If, for instance, you declare the style in the root element of your application definition XAMLXAML file, the style can be used anywhere in your application. 탐색 애플리케이션을 만드는 경우 애플리케이션 중 하나에 선언 된 스타일 XAMLXAML 파일, 스타일에만 사용할 수 있습니다 XAMLXAML 파일입니다.If you are creating a navigation application and declare the style in one of the application's XAMLXAML files, the style can be used only in that XAMLXAML file. 리소스의 범위 지정 규칙에 대 한 자세한 내용은 XAML 리소스를 참조 하세요.For more information on scoping rules for resources, see XAML Resources.

스타일 선언은 하나 이상의 Setter 개체의 컬렉션을 포함 하는 Style 개체로 구성 됩니다.The style declaration consists of a Style object that contains a collection of one or more Setter objects. SetterPropertyValue구성 됩니다.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.

Note

Setter 컬렉션에 동일한 Property 속성 값을 가진 setter가 둘 이상 있는 경우 마지막으로 선언 된 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)Windows Presentation Foundation (WPF) 스타일 지정 및 템플릿 모델을 사용 하면 모양과 논리의 분리 뿐만 아니라 모양과 공유를 유지 관리할 수 있습니다.The WPF(Windows Presentation Foundation)Windows Presentation Foundation (WPF) styling and templating model allows maintenance and sharing of a look as well as the separation of presentation and logic. 스타일 지정 및 템플릿 모델에는 UIUI를 사용자 지정할 수 있는 기능 모음이 포함 되어 있습니다.The styling and templating model includes a suite of features that enable you to customize your UIUI. 이 기능 집합에는 다음과 같은 Style 클래스도 포함 됩니다.This suite of features includes the Style class as well as the following:

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

Constructors

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.

Properties

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.

(Inherited from 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.

Methods

CheckAccess()

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

(Inherited from DispatcherObject)
Equals(Object)

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

(Inherited from Object)
GetHashCode()

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

GetType()

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

(Inherited from Object)
MemberwiseClone()

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

(Inherited from 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.

(Inherited from Object)
UnregisterName(String)

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

VerifyAccess()

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

(Inherited from DispatcherObject)

Explicit Interface Implementations

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.

Applies to

See also