WPF实现上下滚动字幕效果

2019-12-30 18:24:08王旭

本文实例为大家分享了WPF上下滚动字幕的具体代码,供大家参考,具体内容如下

XAML代码:


<local:WorkSpaceContent x:Class="SunCreate.CombatPlatform.Client.NoticeMarquee"
  xmlns="http://www.easck.com/winfx/2006/xaml/presentation"
  xmlns:x="http://www.easck.com/winfx/2006/xaml"
  xmlns:mc="http://www.easck.com/markup-compatibility/2006" 
  xmlns:d="http://www.easck.com/expression/blend/2008" 
  xmlns:local="clr-namespace:SunCreate.CombatPlatform.Client;assembly=SunCreate.CombatPlatform.Client"
  mc:Ignorable="d" 
  d:DesignHeight="35" d:DesignWidth="300" Loaded="WorkSpaceContent_Loaded" MouseEnter="WorkSpaceContent_MouseEnter" MouseLeave="WorkSpaceContent_MouseLeave">
 <local:WorkSpaceContent.Resources>
 <ControlTemplate x:Key="btnTemplate" TargetType="Button">
  <TextBlock Name="txt" Margin="5 0 5 0" Text="{TemplateBinding Content}" FontSize="12" Cursor="Hand" ToolTip="{TemplateBinding ToolTip}" Foreground="#fff" VerticalAlignment="Center"></TextBlock>
  <ControlTemplate.Triggers>
  <Trigger Property="IsMouseOver" Value="true">
   <Setter TargetName="txt" Property="Foreground" Value="#ff5e5e"></Setter>
  </Trigger>
  </ControlTemplate.Triggers>
 </ControlTemplate>
 <Storyboard x:Key="storyboard">
  <DoubleAnimation Duration="0:0:1" To="25" Storyboard.TargetName="stackPanel" Storyboard.TargetProperty="RenderTransform.Y"/>
 </Storyboard>
 </local:WorkSpaceContent.Resources>
 <Grid Background="#00a6da">
 <Grid.ColumnDefinitions>
  <ColumnDefinition Width="60"></ColumnDefinition>
  <ColumnDefinition></ColumnDefinition>
 </Grid.ColumnDefinitions>
 <TextBlock Margin="15 0 5 0" Text="公告:" FontSize="12" Foreground="#ffff33" VerticalAlignment="Center"></TextBlock>
 <ScrollViewer Grid.Column="1" Name="scrollViewer" HorizontalScrollBarVisibility="Hidden"
   HorizontalContentAlignment="Stretch"
   VerticalScrollBarVisibility="Hidden"
   VerticalContentAlignment="Stretch" Height="25">
  <Border Height="25" >
  <StackPanel x:Name="stackPanel" Margin="0 -25 0 0" >
   <StackPanel.RenderTransform>
   <TranslateTransform />
   </StackPanel.RenderTransform>
   <Button Name="btn1" Height="25" Click="btn_Click" Template="{StaticResource btnTemplate}"></Button>
   <Button Name="btn2" Height="25" Click="btn_Click" Template="{StaticResource btnTemplate}"></Button>
   <Button Name="btn3" Height="25" Click="btn_Click" Template="{StaticResource btnTemplate}"></Button>
  </StackPanel>
  </Border>
 </ScrollViewer>
 </Grid>
</local:WorkSpaceContent>