故事板要重视静态资源

Storyboard To value staticresource

可以解决这个问题,我在 aaplication.xaml

中有一些静态资源

根据设计,我在不同的地方使用这些静态资源。现在我想在 Storyboard 中使用 Staticresource 来进行 Coloranimation,但我无法让它工作,我收到错误消息: An object of the type "System.Windows.Media.SolidColorBrush" cannot be applied to a property that expects the type "System.Nullable1[[System.Windows.Media.Color,....]]

到目前为止的代码:

Application.XAML

<Application.Resources>
     <SolidColorBrush x:Key="GreenLight" Color="#0CAF12" />
</Application.Resources>

在用户控件标签样式中:

<Setter Property="Label.Content" Value="Connected" />
<DataTrigger.EnterActions>
    <BeginStoryboard Name="StoryConnected">
          <Storyboard Storyboard.TargetProperty="(Background).(SolidColorBrush.Color)">
                 <ColorAnimation Storyboard.TargetProperty="(Background).(SolidColorBrush.Color)" To="{StaticResource GreenLight}" Duration="0:0:0.5" />
           </Storyboard>
     </BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
      <RemoveStoryboard BeginStoryboardName="StoryConnected" />
</DataTrigger.ExitActions>

这行不通,因为绑定 To 时无法冻结 Storyboard 属性:

To="{Binding Color, Source={StaticResource GreenLight}}"

所以你实际上需要将 To 属性 设置为 Color 对象,即像这样定义你的资源:

<Color x:Key="GreenLight">#0CAF12</Color>