Setter 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
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 .../>
- 상속
- 특성
예제
이 예제에서는 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.Left에 Setter를 사용하려면 이 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
Style 또는 VisualState 내에서 속성 값을 설정합니다.
Setter.Target 속성은 Style 또는 VisualState에서 사용할 수 있지만 다른 방식으로 사용할 수 있습니다. 에서 Style
사용할 경우 수정해야 하는 속성을 직접 지정할 수 있습니다. 에서 VisualState
사용되는 경우 속성에 Target
TargetPropertyPath (대상 요소와 속성이 명시적으로 지정된 점선 구문)가 지정되어야 합니다.
Setter.Property 속성은 VisualState가 아닌 Style에서만 사용할 수 있습니다. Windows 10 시작하여 대신 모든 곳에서 Setter.Target을 Setter.Property
사용할 수 있습니다.
값과 대상 또는 속성을 모두 에 Setter
지정해야 합니다. 그렇지 않으면 예외가 throw됩니다(Setter가 XAML에서 만들어지거나 코드에서 수정되었는지 여부에 따라 구문 분석 예외 또는 런타임 오류).
코드를 사용하여 instance 액세스하는 Setter
경우 부모 Styletrue
의 IsSealed 속성 Setter
값이 인 경우 instance 속성의 값을 변경할 수 없습니다. 이는 개별 Setter
의 IsSealed 속성에서도 보고됩니다. 시스템은 런타임이 UI 요소에 true
스타일을 적용하고 UI에 표시할 때 이러한 속성을 로 설정합니다. 봉인된 Setter
을 변경하려고 시도하면 런타임 오류가 발생합니다.
마이그레이션 정보
- WPF(Windows Presentation Foundation) 및 Microsoft Silverlight는 Binding 식을 사용하여 Style에서 의 값을
Setter
제공하는 기능을 지원했습니다. Windows 런타임 Setter.Value에 대한 사용량을 지원하지Binding
않습니다(Binding
은 평가Setter
되지 않고 는 효과가 없으며 오류가 발생하지 않지만 원하는 결과도 얻지 못합니다). WPF 또는 Microsoft Silverlight XAML에서 XAML 스타일을 변환하는 경우 식Binding
사용량을 값을 설정하는 문자열 또는 개체로 바꾸거나 값을 가져온 값이 아닌Binding
공유 {StaticResource} 태그 확장 값으로 리팩터링합니다.
생성자
Setter() | |
Setter(DependencyProperty, Object) |
속성
Dispatcher |
항상 Windows 앱 SDK 앱에서 를 반환 |
DispatcherQueue |
|
IsSealed |
이 개체가 변경 불가능한 상태인지 여부를 나타내는 값을 가져옵니다. (다음에서 상속됨 SetterBase) |
Property |
Value를 적용할 속성을 가져오거나 설정합니다. |
Target |
Value를 적용할 대상 요소의 속성 경로를 가져오거나 설정합니다. |
Value |
Setter에서 지정한 속성에 적용할 값을 가져오거나 설정합니다. |
메서드
ClearValue(DependencyProperty) |
종속성 속성의 로컬 값을 지웁니다. (다음에서 상속됨 DependencyObject) |
GetAnimationBaseValue(DependencyProperty) |
애니메이션이 활성화되지 않은 경우에 적용되는 종속성 속성에 대해 설정된 기본 값을 반환합니다. (다음에서 상속됨 DependencyObject) |
GetValue(DependencyProperty) |
DependencyObject에서 종속성 속성의 현재 유효 값을 반환합니다. (다음에서 상속됨 DependencyObject) |
ReadLocalValue(DependencyProperty) |
로컬 값이 설정된 경우 종속성 속성의 로컬 값을 반환합니다. (다음에서 상속됨 DependencyObject) |
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback) |
이 DependencyObject instance 특정 DependencyProperty에 대한 변경 내용을 수신 대기하기 위한 알림 함수를 등록합니다. (다음에서 상속됨 DependencyObject) |
SetValue(DependencyProperty, Object) |
DependencyObject에 대한 종속성 속성의 로컬 값을 설정합니다. (다음에서 상속됨 DependencyObject) |
UnregisterPropertyChangedCallback(DependencyProperty, Int64) |
RegisterPropertyChangedCallback을 호출하여 이전에 등록된 변경 알림을 취소합니다. (다음에서 상속됨 DependencyObject) |