다음을 통해 공유


Setter 클래스

정의

Style 또는 VisualState의 속성에 값을 적용합니다.

public ref class Setter sealed : SetterBase
/// [Windows.Foundation.Metadata.Activatable(65536, "Microsoft.UI.Xaml.WinUIContract")]
/// [Windows.Foundation.Metadata.Activatable(Microsoft.UI.Xaml.ISetterFactory, 65536, "Microsoft.UI.Xaml.WinUIContract")]
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class Setter final : SetterBase
[Windows.Foundation.Metadata.Activatable(65536, "Microsoft.UI.Xaml.WinUIContract")]
[Windows.Foundation.Metadata.Activatable(typeof(Microsoft.UI.Xaml.ISetterFactory), 65536, "Microsoft.UI.Xaml.WinUIContract")]
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class Setter : SetterBase
Public NotInheritable Class Setter
Inherits SetterBase
<Setter .../>
상속
Object Platform::Object IInspectable DependencyObject SetterBase Setter
특성

예제

이 예제에서는 TextBlock 요소의 스타일에서 문을 사용하는 Setter 방법을 보여 줍니다.

<StackPanel>
    <StackPanel.Resources>
        <!-- Create a Style for a TextBlock to specify that the
             Foreground equals Navy, FontSize equals 14, and
             VerticalAlignment equals Bottom. -->
        <Style TargetType="TextBlock" x:Key="TextBlockStyle">
            <Setter Property="Foreground" Value="Navy"/>
            <Setter Property="FontSize" Value="14"/>
            <Setter Property="VerticalAlignment" Value="Bottom"/>
        </Style>
    </StackPanel.Resources>

    <!-- Apply the TextBlockStyle to 2 different TextBlocks. -->
    <TextBlock Style="{StaticResource TextBlockStyle}" Text=”Hello”/>
    <TextBlock Style="{StaticResource TextBlockStyle}" Text=”World”/>
</StackPanel>

이 예제에서는 VisualState.Setters 속성 내에서 여러 Setter 문을 사용하여 VisualState가 적용될 때 다양한 요소(애니메이션 없음)에 불연속 속성 값 변경 내용을 적용하는 방법을 보여 줍니다.

<Page>
    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        <VisualStateManager.VisualStateGroups>
            <VisualStateGroup>
                <VisualState x:Name="NarrowState">
                    <VisualState.Setters>
                        <Setter Target="myPanel.Orientation" Value="Vertical"/>
                        <Setter Target="myPanel.Width" Value="380"/>
                        <Setter Target="myTextBlock.MaxLines" Value="3"/>
                    </VisualState.Setters>
                </VisualState>
            </VisualStateGroup>
        </VisualStateManager.VisualStateGroups>

        <StackPanel x:Name="myPanel" Orientation="Horizontal">
            <TextBlock x:Name="myTextBlock" MaxLines="5" Style="{ThemeResource BodyTextBlockStyle}"/>
        </StackPanel>
    </Grid>
</Page>

AttachedPropertyProvider에서 연결된 속성 이름을 지정하여 연결된 속성 값에 setter를 적용할 수도 있습니다. PropertyName 양식입니다. 예를 들어 연결된 속성 Canvas.LeftSetter를 사용하려면 이 XAML을 사용합니다.

<Setter Property="Canvas.Left" Value="100"/>

연결된 속성 값을 사용하여 업데이트하려면 연결된 속성 Target경로를 괄호 안에 배치합니다. 이 예제에서는 'TitleTextBlock'이라는 이름으로 요소의 값을 업데이트 RelativePanel.AlignRightWithPanel 하는 방법을 보여줍니다.

<RelativePanel>
    <TextBlock x:Name="TitleTextBlock" Text="Title"/>
</RelativePanel>

...

<Setter Target="TitleTextBlock.(RelativePanel.AlignRightWithPanel)" Value="True"/>

설명

문을 사용하여 SetterStyle 또는 VisualState 내에서 속성 값을 설정합니다.

Setter.Target 속성은 Style 또는 VisualState에서 사용할 수 있지만 다른 방법으로 사용할 수 있습니다. 에서 Style사용하는 경우 수정해야 하는 속성을 직접 지정할 수 있습니다. 이 경우 속성에 VisualStateTargetTargetPropertyPath(대상 요소 및 속성이 명시적으로 지정된 점선 구문)가 지정되어야 합니다.

Setter.Property 속성은 VisualState가 아닌 Style에서만 사용할 수 있습니다. Windows 10부터 는 대신 모든 위치에서Setter.PropertySetter.Target을 사용할 수 있습니다.

에 값대상 또는 속성을Setter 모두 지정해야 합니다. 그렇지 않으면 예외가 throw됩니다(Setter가 XAML에서 생성되거나 코드에서 수정되었는지 여부에 따라 구문 분석 예외 또는 런타임 오류).

코드를 사용하여 인스턴스에 액세스하는 Setter 경우 부모 StyletrueIsSealed 속성 Setter 값이면 인스턴스의 속성 값을 변경할 수 없습니다. 이것은 또한 개인SetterIsSealed 속성에 의해 보고 됩니다. 시스템은 런타임이 UI 요소에 true 스타일을 적용하고 UI에 표시할 때 이러한 속성을 설정합니다. 봉인된 Setter 변경하려고 시도하면 런타임 오류가 발생합니다.

생성자

Name Description
Setter()

초기 속성 또는 값 없이 Setter 클래스의 새 인스턴스를 초기화합니다.

Setter(DependencyProperty, Object)

초기 속성 및 값 정보를 사용하여 Setter 클래스의 새 인스턴스를 초기화합니다.

속성

Name Description
Dispatcher

항상 Windows 앱 SDK 앱에서 반환 null 합니다. 대신 DispatcherQueue 를 사용합니다.

(다음에서 상속됨 DependencyObject)
DispatcherQueue

DispatcherQueue 이 개체가 연결된 개체를 가져옵니다. 코드 DispatcherQueue 가 비 UI 스레드에 의해 시작되더라도 UI 스레드에서 액세스할 DependencyObject 수 있는 기능을 나타냅니다.

(다음에서 상속됨 DependencyObject)
IsSealed

이 개체가 변경할 수 없는 상태인지 여부를 나타내는 값을 가져옵니다.

(다음에서 상속됨 SetterBase)
Property

값을 적용할 속성을 가져오거나 설정합니다.

Target

값을 적용할 대상 요소의 속성 경로를 가져오거나 설정합니다.

Value

Setter에서 지정한 속성에 적용할 값을 가져오거나 설정합니다.

메서드

Name Description
ClearValue(DependencyProperty)

종속성 속성의 로컬 값을 지웁니다.

(다음에서 상속됨 DependencyObject)
GetAnimationBaseValue(DependencyProperty)

애니메이션이 활성화되지 않은 경우 적용되는 종속성 속성에 대해 설정된 기본 값을 반환합니다.

(다음에서 상속됨 DependencyObject)
GetValue(DependencyProperty)

DependencyObject에서 종속성 속성의 현재 유효 값을 반환합니다.

(다음에서 상속됨 DependencyObject)
ReadLocalValue(DependencyProperty)

로컬 값이 설정된 경우 종속성 속성의 로컬 값을 반환합니다.

(다음에서 상속됨 DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

DependencyObject 인스턴스에서 특정 DependencyProperty의 변경 내용을 수신 대기하기 위한 알림 함수를 등록합니다.

(다음에서 상속됨 DependencyObject)
SetValue(DependencyProperty, Object)

DependencyObject에 대한 종속성 속성의 로컬 값을 설정합니다.

(다음에서 상속됨 DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

RegisterPropertyChangedCallback을 호출하여 이전에 등록된 변경 알림을 취소합니다.

(다음에서 상속됨 DependencyObject)

적용 대상

추가 정보