StringAnimation on Label - PullRequest
       23

StringAnimation on Label

1 голос
/ 19 мая 2011

У меня есть элемент управления, который указывает режим работы. В зависимости от текущего режима (автоматический, ручной или нет) он поворачивается на несколько градусов влево или вправо, а также меняет содержимое метки. Вращение уже работает нормально. Но содержимое метки не отображается, независимо от текущего состояния. Есть ли какая-либо ошибка в шаблоне управления (я немного упростил шаблон, удалив третье состояние)? Или что-то еще не так, как должно быть?

Заранее спасибо!

<ControlTemplate TargetType="{x:Type local:OperationModeIndicator}">
    <Grid x:Name="rootGrid" RenderTransformOrigin="0.5,0.525">
        <VisualStateManager.VisualStateGroups>
            <VisualStateGroup x:Name="OperationModeStates">
                <VisualState x:Name="None">
                    <Storyboard>
                        <StringAnimationUsingKeyFrames Storyboard.TargetName="contentLabel" Storyboard.TargetProperty="Content" >
                            <DiscreteStringKeyFrame Value="" />
                        </StringAnimationUsingKeyFrames>
                        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(RotateTransform.Angle)" Storyboard.TargetName="rootGrid" >
                            <EasingDoubleKeyFrame KeyTime="0" Value="0"/>
                        </DoubleAnimationUsingKeyFrames>
                        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(RotateTransform.Angle)" Storyboard.TargetName="contentLabel">
                            <EasingDoubleKeyFrame KeyTime="0" Value="0"/>
                        </DoubleAnimationUsingKeyFrames>
                    </Storyboard>
                </VisualState>
                <VisualState x:Name="Automatic">
                    <Storyboard>
                        <StringAnimationUsingKeyFrames Storyboard.TargetName="contentLabel" Storyboard.TargetProperty="Content" >
                            <DiscreteStringKeyFrame Value="A" />
                        </StringAnimationUsingKeyFrames>
                        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(RotateTransform.Angle)" Storyboard.TargetName="rootGrid">
                            <EasingDoubleKeyFrame KeyTime="0" Value="-30"/>
                        </DoubleAnimationUsingKeyFrames>
                        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(RotateTransform.Angle)" Storyboard.TargetName="contentLabel">
                            <EasingDoubleKeyFrame KeyTime="0" Value="30"/>
                        </DoubleAnimationUsingKeyFrames>
                    </Storyboard>
                </VisualState>
            </VisualStateGroup>
        </VisualStateManager.VisualStateGroups>
        <Grid.RenderTransform>
            <TransformGroup>
                <RotateTransform/>
            </TransformGroup>
        </Grid.RenderTransform>
        <Label x:Name="contentLabel" Foreground="#FFDA1D1D" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="48" RenderTransformOrigin="0.5,0.525" >
            <Label.RenderTransform>
                <TransformGroup>
                    <RotateTransform/>
                </TransformGroup>
            </Label.RenderTransform>
        </Label>
        <Path Stroke="Gray" StrokeThickness="5">
            <Path.Data>
                <PathGeometry>
                    <PathFigure StartPoint="35 10" >
                        <ArcSegment Point="65 10" Size="45 45" RotationAngle="0" IsLargeArc="True" />
                    </PathFigure>
                </PathGeometry>
            </Path.Data>
        </Path>
        <Line X1="2.5" X2="2.5" Y1="0" Y2="20" StrokeThickness="5" Stroke="Gray" HorizontalAlignment="Center" />
    </Grid>
</ControlTemplate>

1 Ответ

0 голосов
/ 19 мая 2011

Анимация работает как положено. Это смесь, которая не показывает это. Во всяком случае, причина до сих пор неизвестна.

...