WPF常用技巧-使用动画实现时间刷新

2024-01-09 06:20:58

在这里插入图片描述

<Window ......
        xmlns:local="clr-namespace:WpfApp2"
        xmlns:sys="clr-namespace:System;assembly=System.Runtime"
				......>
    <Window.Triggers>
        <EventTrigger RoutedEvent="Window.Loaded">
            <BeginStoryboard>
                <Storyboard>
                    <ObjectAnimationUsingKeyFrames Duration="0:0:2" RepeatBehavior="Forever" Storyboard.TargetName="sp_time" Storyboard.TargetProperty="DataContext">
                        <DiscreteObjectKeyFrame Value="{x:Static sys:DateTime.Now}" KeyTime="0:0:1"/>
                    </ObjectAnimationUsingKeyFrames>
                </Storyboard>
            </BeginStoryboard>
        </EventTrigger>
    </Window.Triggers>
    <Grid>
        <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center" DataContext="{x:Static sys:DateTime.Now}" Name="sp_time">
            <TextBlock Text="{Binding Now,StringFormat=yyyy年MM月dd日 HH:mm:ss}" FontSize="18"/>
            <TextBlock Text="{Binding Now,StringFormat=dddd,ConverterCulture=Zh}" FontSize="18" HorizontalAlignment="Center"/>
        </StackPanel>
    </Grid>
</Window>

有一点需要注意的是,仔细查看上面的代码,在TextBoxText属性中进行绑定时,直接绑定了Now属性,但是在给StackPanel设置DataContext时,并没有设置名为Now的属性,只是设置了DateTime.Now,但是WPF仍能自动绑定上。

文章来源:https://blog.csdn.net/jjailsa/article/details/135389345
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。