【问题标题】:Intermittent exception in storyboard in UWP/Winrt applcationUWP/Winrt 应用程序中情节提要中的间歇性异常
【发布时间】:2016-04-05 06:24:42
【问题描述】:

通过视图状态触发用户控件上的情节提要时,我间歇性地收到以下异常。

WinRT 信息:无法解析指定对象上的 TargetProperty (Background).(SolidColorBrush.Color)

我的故事板在下面 -

<StackPanel Orientation="Horizontal">
        <VisualStateManager.VisualStateGroups>
            <VisualStateGroup>
                <VisualState x:Name="Connecting">
                    <Storyboard RepeatBehavior="Forever">
                        <ColorAnimationUsingKeyFrames Storyboard.TargetName="Bd1" Storyboard.TargetProperty="(Background).(SolidColorBrush.Color)">
                            <DiscreteColorKeyFrame Value="#F7F7F7" KeyTime="0:0:0" />
                            <DiscreteColorKeyFrame Value="#6CBF25" KeyTime="0:0:1" />
                            <DiscreteColorKeyFrame Value="#F7F7F7" KeyTime="0:0:5" />
                        </ColorAnimationUsingKeyFrames>
                        <ColorAnimationUsingKeyFrames Storyboard.TargetName="Bd1" Storyboard.TargetProperty="(BorderBrush).(SolidColorBrush.Color)">
                            <DiscreteColorKeyFrame Value="#919191" KeyTime="0:0:0" />
                            <DiscreteColorKeyFrame Value="#01851F" KeyTime="0:0:1" />
                            <DiscreteColorKeyFrame Value="#919191" KeyTime="0:0:5" />
                        </ColorAnimationUsingKeyFrames>
                  
                    </Storyboard>
                </VisualState>
            </VisualStateGroup>
        </VisualStateManager.VisualStateGroups>
        <Border x:Name="Bd1" Height="5" />
    </StackPanel>

以及我如何触发它

VisualStateManager.GoToState(this, "Connecting", false);

这种视觉状态通常在加载 UserControl 时立即触发。

【问题讨论】:

    标签: wpf xaml windows-runtime win-universal-app


    【解决方案1】:

    它失败了,因为在 Bd1 上没有定义 SolidColorBrushBackground 属于 Brush 类型,因此您可以像这样使用 SolidColorBrush 进行初始化,并且您的动画应该可以工作。我添加了BorderBrush 以及您正在制作的动画和Width,以便您可以在屏幕上看到它

    <Border x:Name="Bd1" Width="200" Height="5" Background="Red" BorderBrush="Red" />
    

    【讨论】:

      【解决方案2】:

      您的边框没有默认颜色。因此,您无法从 Storyboard 访问它。

      这将起作用:

      <StackPanel Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
          <VisualStateManager.VisualStateGroups>
              <VisualStateGroup x:Name="BorderAnimationGroup">
                  <VisualStateGroup.Transitions>
                      <VisualTransition GeneratedDuration="0"/>
                  </VisualStateGroup.Transitions>
                  <VisualState x:Name="Connecting">
                      <Storyboard RepeatBehavior="Forever">
                          <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)" Storyboard.TargetName="Bd1">
                              <EasingColorKeyFrame KeyTime="0" Value="#FFF7F7F7"/>
                              <EasingColorKeyFrame KeyTime="0:0:1" Value="#FF6CBF25"/>
                              <EasingColorKeyFrame KeyTime="0:0:5" Value="#FFF7F7F7"/>
                          </ColorAnimationUsingKeyFrames>
                          <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color)" Storyboard.TargetName="Bd1">
                              <EasingColorKeyFrame KeyTime="0" Value="#FF919191"/>
                              <EasingColorKeyFrame KeyTime="0:0:1" Value="#FF01851F"/>
                              <EasingColorKeyFrame KeyTime="0:0:5" Value="#FF919191"/>
                          </ColorAnimationUsingKeyFrames>
                      </Storyboard>
                  </VisualState>
              </VisualStateGroup>
          </VisualStateManager.VisualStateGroups>
          <Border x:Name="Bd1" BorderBrush="#FF919191" BorderThickness="1" Height="5" Background="White">
              <Interactivity:Interaction.Behaviors>
                  <Core:EventTriggerBehavior>
                      <Core:GoToStateAction StateName="Connecting"/>
                  </Core:EventTriggerBehavior>
              </Interactivity:Interaction.Behaviors>
          </Border>
      </StackPanel>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-30
        相关资源
        最近更新 更多