wpf 滚动文字 跑马灯
有时候也会有用,比如我的软件界面 放不下全长的文字时。或者状态栏显示一些时间,地点,温度,湿度等等这些东西
代码链接 https://gitee.com/csszbb/wpfnet5
这属于WPF 动画的最基本应用了。
动画这东西我觉得重在巧。用的巧妙,不需要多高深的技术,就能做出非常好的效果。
<Border Loaded="bd_Loaded" Grid.Column="2" BorderBrush="Red" Padding="5" BorderThickness="1" x:Name="bd" ClipToBounds="True" Margin="0,50,0,0" Height="34" VerticalAlignment="Top" HorizontalAlignment="Center" Width="170" > <TextBlock x:Name="tb" HorizontalAlignment="Left" VerticalAlignment="Top" Height="25" FontSize="16"> 欢迎全国政协副主席、科技部部长万钢,部党组副书记、副部长王志刚 </TextBlock> </Border>
如上,红色框是一个固定长度的border。border 里面是一个长度随着显示字体变化的TextBlock. 注意
HorizontalAlignment="Left" 这个很重要,这样 Margin 属性的 left 值变化,才会改变TextBlock 相对于 Border的位置。
原理也很简单,只要改变TextBlock margin的 left值,让它一段时间内一直变小。就能让TextBlock 相对于Border 左移
那么,如果我外边不是一个Border ,而是一个Canvas 那? 那就不是改变Margin 了 ,应该要改变Canvas.Left了把 。举一反三很重要