WPF自定义控件二:Border控件与TextBlock控件轮播动画

0|1需求:实现Border轮播动画与TextBlock动画

1|0XAML代码如下:

<Window.Resources> <Storyboard x:Key="OnLoaded1" RepeatBehavior="Forever"> <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(Border.BorderBrush).(Brush.RelativeTransform).(TransformGroup.Children)[0].(RotateTransform.Angle)" Storyboard.TargetName="border"> <EasingDoubleKeyFrame KeyTime="0:0:2" Value="360"/> </DoubleAnimationUsingKeyFrames> </Storyboard> <Storyboard x:Key="OnloadText" RepeatBehavior="Forever"> <DoubleAnimation From="-2" To="2" Duration="0:0:3" Storyboard.TargetProperty="(TextBlock.Foreground).(Brush.RelativeTransform).(TransformGroup.Children)[0].(TranslateTransform.X)" Storyboard.TargetName="border1"> </DoubleAnimation> <DoubleAnimation From="2" To="-2" BeginTime="0:0:3" Duration="0:0:3" Storyboard.TargetProperty="(TextBlock.Foreground).(Brush.RelativeTransform).(TransformGroup.Children)[0].(TranslateTransform.X)" Storyboard.TargetName="border1"></DoubleAnimation> </Storyboard> <LinearGradientBrush x:Key="dddd" EndPoint="0.5,1" StartPoint="0.5,0"> <LinearGradientBrush.RelativeTransform> <TransformGroup> <RotateTransform Angle="0" CenterX="0.5" CenterY="0.5"/> </TransformGroup> </LinearGradientBrush.RelativeTransform> <GradientStop Color="#11374c" Offset="0.2"/> <GradientStop Color="White" Offset="4"/> </LinearGradientBrush> <LinearGradientBrush x:Key="eeee" StartPoint="0,0" EndPoint="1,0.001"> <LinearGradientBrush.RelativeTransform> <TransformGroup> <TranslateTransform X="-0.5" ></TranslateTransform> </TransformGroup> </LinearGradientBrush.RelativeTransform> <LinearGradientBrush.GradientStops> <GradientStopCollection> <GradientStop Color="White" Offset="0.0"></GradientStop> <GradientStop Color="LightBlue" Offset="0"></GradientStop> <GradientStop Color="#11374c" Offset="1"></GradientStop> </GradientStopCollection> </LinearGradientBrush.GradientStops> </LinearGradientBrush> </Window.Resources> <Window.Triggers> <EventTrigger RoutedEvent="FrameworkElement.Loaded"> <BeginStoryboard Storyboard="{StaticResource OnLoaded1}"/> <BeginStoryboard Storyboard="{StaticResource OnloadText}"/> </EventTrigger> </Window.Triggers> <Grid Background="Black"> <TextBlock x:Name="border1" Foreground="{StaticResource eeee}" Text="Hymson" Width="130" Height="55" FontSize="42" FontFamily="宋体" FontWeight="Black" /> <Border x:Name="border" Width="200" Height="60" BorderBrush="{StaticResource dddd}" BorderThickness="2" CornerRadius="5"> </Border> </Grid>

2|0效果展示

 


__EOF__

本文作者可乐加冰
本文链接https://www.cnblogs.com/zt199510/p/14037492.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   可乐_加冰  阅读(585)  评论(0编辑  收藏  举报
编辑推荐:
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示