Setter 클래스

정의

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

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

Windows 요구 사항

디바이스 패밀리
Windows 10 (10.0.10240.0에서 도입되었습니다.)
API contract
Windows.Foundation.UniversalApiContract (v1.0에서 도입되었습니다.)

예제

이 예제에서는 요소에 대한 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"/>

설명

Setter 문을 사용하여 a 또는 VisualStatea 내에서 Style 속성 값을 설정합니다.

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

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

Setter에서 Value둘 다 지정 Target Property해야 합니다. 그렇지 않으면 예외가 throw됩니다(Setter가 XAML에서 생성되었는지 아니면 코드에서 수정되었는지에 따라 구문 분석 예외 또는 런타임 오류).

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

마이그레이션 정보

  • WPF(Windows Presentation Foundation)와 Microsoft Silverlight는 식을 사용하여 Binding Setter를 제공하는 Value 기능을 지원했습니다Style. Windows 런타임 사용량을 Setter.Value 지원하지 Binding 않습니다(Binding평가되지 않고 Setter에 영향을 주지 않으므로 오류가 발생하지 않지만 원하는 결과도 얻을 수 없음). XAML 스타일을 Windows Presentation Foundation(WPF) 또는 Microsoft Silverlight XAML에서 변환하는 경우 식 Binding 사용량을 값을 설정하는 문자열 또는 개체로 바꾸거나 값을 -obtained 값이 아닌 Binding공유 {StaticResource} 태그 확장 값으로 리팩터링합니다.

생성자

Setter()

초기 Property 또는 Value을 사용하지 않고 클래스의 새 인스턴스를 Setter 초기화합니다.

Setter(DependencyProperty, Object)

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

속성

Dispatcher

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

UWP에 해당하는 WinUI 2 API: Microsoft.UI.Xaml.DependencyObject.Dispatcher(Windows 앱 SDK WinUI의 경우 Windows 앱 SDK 네임스페이스 참조).

(다음에서 상속됨 DependencyObject)
IsSealed

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

UWP에 해당하는 WinUI 2 API: Microsoft.UI.Xaml.SetterBase.IsSealed(Windows 앱 SDK WinUI의 경우 Windows 앱 SDK 네임스페이스 참조).

(다음에서 상속됨 SetterBase)
Property

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

Target

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

Value

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

메서드

ClearValue(DependencyProperty)

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

UWP에 해당하는 WinUI 2 API: Microsoft.UI.Xaml.DependencyObject.ClearValue(Windows 앱 SDK WinUI의 경우 Windows 앱 SDK 네임스페이스 참조).

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

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

UWP에 해당하는 WinUI 2 API: Microsoft.UI.Xaml.DependencyObject.GetAnimationBaseValue(Windows 앱 SDK WinUI의 경우 Windows 앱 SDK 네임스페이스 참조).

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

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

UWP에 해당하는 WinUI 2 API: Microsoft.UI.Xaml.DependencyObject.GetValue(Windows 앱 SDK WinUI의 경우 Windows 앱 SDK 네임스페이스 참조).

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

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

UWP에 해당하는 WinUI 2 API: Microsoft.UI.Xaml.DependencyObject.ReadLocalValue(Windows 앱 SDK WinUI의 경우 Windows 앱 SDK 네임스페이스 참조).

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

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

UWP에 해당하는 WinUI 2 API: Microsoft.UI.Xaml.DependencyObject.RegisterPropertyChangedCallback(Windows 앱 SDK WinUI의 경우 Windows 앱 SDK 네임스페이스 참조).

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

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

UWP에 해당하는 WinUI 2 API: Microsoft.UI.Xaml.DependencyObject.SetValue(Windows 앱 SDK WinUI의 경우 Windows 앱 SDK 네임스페이스 참조).

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

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

UWP에 해당하는 WinUI 2 API: Microsoft.UI.Xaml.DependencyObject.UnregisterPropertyChangedCallback(Windows 앱 SDK WinUI의 경우 Windows 앱 SDK 네임스페이스 참조).

(다음에서 상속됨 DependencyObject)

적용 대상

추가 정보