Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 仅当设置了颜色时,ColorAnimation才会启动_Wpf - Fatal编程技术网

Wpf 仅当设置了颜色时,ColorAnimation才会启动

Wpf 仅当设置了颜色时,ColorAnimation才会启动,wpf,Wpf,在启动窗口中,定义了一个带有TextBlock的网格,如下所示: <Grid> <TextBlock Text="stackoverflow.com" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="Yellow"> <TextBlock.Triggers>

在启动窗口中,定义了一个带有TextBlock的网格,如下所示:

<Grid>
    <TextBlock Text="stackoverflow.com"
               HorizontalAlignment="Center"
               VerticalAlignment="Center"
               Foreground="Yellow">
        <TextBlock.Triggers>
            <EventTrigger RoutedEvent="TextBlock.Loaded">
                <BeginStoryboard>
                    <Storyboard>
                        <DoubleAnimation To="200"
                                         Duration="0:0:5"
                                         Storyboard.TargetProperty="(TextBlock.FontSize)" />

                        <ColorAnimation To="Blue"
                                        Duration="0:0:5"
                                        Storyboard.TargetProperty="(TextBlock.Foreground).(SolidColorBrush.Color)" />
                    </Storyboard>
                </BeginStoryboard>
            </EventTrigger>
        </TextBlock.Triggers>
    </TextBlock>
</Grid>
StaticResource工作正常,而DynamicSource不工作,因此动画不会启动


首先,WPF知道隐含的颜色。其次,DynamicResource由于任何原因都无法工作。为什么?可能的错误?

如果未设置该值,将引发异常,则无法设置默认前景的动画,因为该实例是不可变的。(如果您使用像这样加载的事件触发动画,它将被吞没。)

根据您的回答,我已编辑了我的问题。关于WPF@System.Data中的不可变类型,您能更深入地了解一下吗?@System.Data:这些工作大部分都是dp系统内部的,所以我不能肯定地告诉您任何事情。我只让我的测试应用程序抛出异常,该异常指出问题在于目标的不变性。使用StaticResource就像直接在对象上设置一个值一样,这样可以工作,但DynamicSource会创建一个引用。动画代码实际上有一些复制Freezable的机制,但这显然没有帮助。
Foreground="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}"