Неполадка в работе стиля

153
27 ноября 2018, 02:00

Создал свой стиль чекбокса на основе стиля из сети (слайдер). Проблема в том, что если создать этот слайдер с дефолтным параметром IsChecked = true, то при появлении этого слайдера на форме, он не сразу будет в положении ВКЛ, а переключится из ВЫКЛ в ВКЛ. Пытался что-то подкрутить внутри<VisualTransition GeneratedDuration="0:0:0.15" To="Checked">, но не вышло.

Что нужно исправить, что бы слайдер сразу появлялся в положении ВКЛ?

<Style x:Key="slider" TargetType="CheckBox">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="CheckBox">
                <Grid>
                    <VisualStateManager.VisualStateGroups>
                        <VisualStateGroup x:Name="CommonStates">
                            <VisualStateGroup.Transitions>
                                <VisualTransition GeneratedDuration="0:0:0.1" To="MouseOver" />
                                <VisualTransition From="MouseOver" GeneratedDuration="0:0:0.15" To="Normal" />
                            </VisualStateGroup.Transitions>
                            <VisualState x:Name="Normal" />
                            <VisualState x:Name="MouseOver">
                                <Storyboard>
                                    <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="pressed">
                                        <EasingDoubleKeyFrame KeyTime="0" Value="0.3" />
                                    </DoubleAnimationUsingKeyFrames>
                                    <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="off">
                                        <EasingDoubleKeyFrame KeyTime="0" Value="1" />
                                    </DoubleAnimationUsingKeyFrames>
                                </Storyboard>
                            </VisualState>
                            <VisualState x:Name="Pressed">
                                <Storyboard>
                                    <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="on">
                                        <EasingDoubleKeyFrame KeyTime="0" Value="1" />
                                    </DoubleAnimationUsingKeyFrames>
                                </Storyboard>
                            </VisualState>
                            <VisualState x:Name="Disabled" />
                        </VisualStateGroup>
                        <VisualStateGroup x:Name="CheckStates">
                            <VisualStateGroup.Transitions>
                                <VisualTransition GeneratedDuration="0:0:0.15" To="Checked">
                                    <Storyboard>
                                        <DoubleAnimation Duration="0:0:0.15" From="1" To="1" Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="on">
                                            <DoubleAnimation.EasingFunction>
                                                <CircleEase EasingMode="EaseInOut" />
                                            </DoubleAnimation.EasingFunction>
                                        </DoubleAnimation>
                                        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="X" Storyboard.TargetName="translate">
                                            <EasingDoubleKeyFrame KeyTime="0" Value="0" />
                                            <EasingDoubleKeyFrame KeyTime="0:0:0.15" Value="52" />
                                        </DoubleAnimationUsingKeyFrames>
                                    </Storyboard>
                                </VisualTransition>
                                <VisualTransition GeneratedDuration="0:0:0.15" To="Unchecked">
                                    <Storyboard>
                                        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="X" Storyboard.TargetName="translate">
                                            <EasingDoubleKeyFrame KeyTime="0" Value="52" />
                                            <EasingDoubleKeyFrame KeyTime="0:0:0.15" Value="0" />
                                        </DoubleAnimationUsingKeyFrames>
                                    </Storyboard>
                                </VisualTransition>
                            </VisualStateGroup.Transitions>
                            <VisualState x:Name="Checked">
                                <Storyboard>
                                    <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="X" Storyboard.TargetName="translate">
                                        <EasingDoubleKeyFrame KeyTime="0" Value="52" />
                                    </DoubleAnimationUsingKeyFrames>
                                    <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="on">
                                        <EasingDoubleKeyFrame KeyTime="0" Value="1" />
                                    </DoubleAnimationUsingKeyFrames>
                                </Storyboard>
                            </VisualState>
                            <VisualState x:Name="Unchecked" />
                            <VisualState x:Name="Indeterminate" />
                        </VisualStateGroup>
                    </VisualStateManager.VisualStateGroups>
                    <Border x:Name="back" Background="#26313137" CornerRadius="0">
                        <Border CornerRadius="0" Margin="0">
                            <Border.Background>
                                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                                    <GradientStop Color="#ffff8000" Offset="0" />
                                    <GradientStop Color="#ffff8000" Offset="1" />
                                    <GradientStop Color="#ffffffff" Offset="0.5" />
                                </LinearGradientBrush>
                            </Border.Background>
                            <Border CornerRadius="0" Margin="1" Background="Black"></Border>
                        </Border>
                    </Border>
                    <Grid x:Name="off_Copy" HorizontalAlignment="Right" Height="13" Margin="0,0,16,0" VerticalAlignment="Center" Width="25" FlowDirection="LeftToRight">
                        <TextBlock Text="OFF" HorizontalAlignment="Center" TextAlignment="Center" VerticalAlignment="Center" FontSize="14" Foreground="Red"/>
                    </Grid>
                    <Grid x:Name="on_Copy" HorizontalAlignment="Left" Height="13" Margin="16,1,0,0" VerticalAlignment="Center" Width="25" FlowDirection="LeftToRight">
                        <TextBlock Text="ON" Foreground="White" HorizontalAlignment="Center" TextAlignment="Center" VerticalAlignment="Center" FontSize="14"/>
                    </Grid>
                    <Grid Margin="3">
                        <Grid x:Name="thumb" Width="52" HorizontalAlignment="Left">
                            <Border x:Name="off" CornerRadius="0">
                                <Border CornerRadius="0" Margin="0" Background="White"></Border>
                            </Border>
                            <Border x:Name="on" CornerRadius="0" Opacity="0" Background="#ff000000">
                                <Border CornerRadius="0" Margin="0" Background="#ffff8000"></Border>
                            </Border>
                            <Border x:Name="pressed" CornerRadius="3" Opacity="0" Background="#FFB2B2B2">
                                <Border CornerRadius="2" Margin="1" Background="#FF6441A4"></Border>
                            </Border>
                            <Grid.RenderTransform>
                                <TranslateTransform x:Name="translate" />
                            </Grid.RenderTransform>
                        </Grid>
                    </Grid>
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
READ ALSO
Распарсить Xml ответ от сервера

Распарсить Xml ответ от сервера

От сервера приходит ответ

231
Работа с Photoshop из программы

Работа с Photoshop из программы

Задача такая: есть PSD файл, в нём есть шаблон с текстом и фото, их нужно изменитьТ

161
Синтаксис при подключении src=&lt;%= на NetCore

Синтаксис при подключении src=<%= на NetCore

подскажите как подключить данный плагин на языке Net Core?

134
Как в хеш-таблице указать несколько значений к одному ключу? C#

Как в хеш-таблице указать несколько значений к одному ключу? C#

Читаю книгу "Грокаем Алгоритмы" - Адитьи Бхаргавы

168