■ IsEqualStateTrigger 엘리먼트의 Value/To 속성을 사용해 동일 상태 여부에 따라 처리하는 방법을 보여준다.
※ 비주얼 스튜디오에서 TestProject(Unpackaged) 모드로 빌드한다.
※ TestProject.csproj 프로젝트 파일에서 WindowsPackageType 태그를 None으로 추가했다.
▶ MainPage.xaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
<?xml version="1.0" encoding="utf-8"?> <Page x:Class="TestProject.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:ctw="using:CommunityToolkit.WinUI" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}" FontFamily="나눔고딕코딩" FontSize="16"> <Grid> <VisualStateManager.VisualStateGroups> <VisualStateGroup> <VisualState x:Name="checkstate"> <VisualState.StateTriggers> <ctw:IsEqualStateTrigger Value="{Binding IsChecked, ElementName=checkBox, Mode=OneWay}" To="{x:Null}" /> </VisualState.StateTriggers> <VisualState.Setters> <Setter Target="checkStatusRun.Text" Value="indeterminate" /> </VisualState.Setters> </VisualState> </VisualStateGroup> <VisualStateGroup> <VisualState x:Name="sliderstate"> <VisualState.StateTriggers> <ctw:IsEqualStateTrigger Value="{Binding Value, ElementName=slider, Mode=OneWay}" To="0" /> </VisualState.StateTriggers> <VisualState.Setters> <Setter Target="sliderStatusRun.Text" Value="0" /> </VisualState.Setters> </VisualState> </VisualStateGroup> </VisualStateManager.VisualStateGroups> <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center" Width="400"> <CheckBox Name="checkBox" IsThreeState="True" Content="Check me" IsChecked="True" /> <TextBlock Style="{StaticResource CaptionTextBlockStyle}" Margin="0 10 0 0"> <Run Text="Checkbox value is" /> <Run x:Name="checkStatusRun" FontWeight="SemiBold" Text="not indeterminate" /> </TextBlock> <Slider Name="slider" Margin="0 30 0 0" Minimum="0" Maximum="5" /> <TextBlock Style="{StaticResource CaptionTextBlockStyle}" Margin="0 10 0 0"> <Run Text="Slider value is" /> <Run x:Name="sliderStatusRun" FontWeight="SemiBold" Text="more than 0" /> </TextBlock> </StackPanel> </Grid> </Page> |