你好
我是WPF的新手,正在寻找一种在WPF应用程序中滚动文本的解决方案,尝试了一些动画但遇到了裁剪问题。
我在以下位置找到了可能解决我的问题的方法:
http://social.msdn.microsoft.com/forums/en-US/wpf/thread/8330696e-7715-479e-8027-8d9925579a17/
但我不清楚TranslateTransformName、scrollfactor和tt这些变量应该是什么意思。
有人可以看一下代码并帮助我弄清楚吗?
谢谢
Wally
以下是那里的代码: 代码块
<p class=MsoNoSpacing><
<span class=SpellE>Viewbox</span>
<span class=SpellE>OpacityMask</span> ="{x
<span
class=GramE>:Null</span> }"
<span class=SpellE>HorizontalAlignment</span> ="Center"
<span class=SpellE>VerticalAlignment</span> ="Stretch"
Width="Auto" Height="Auto"
<span class=SpellE>RenderTransformOrigin</span> ="0.5,0.5"
x:Name="container" Stretch="Uniform"
<span class=SpellE>StretchDirection</span> ="Both">
</p>
<p class=MsoNoSpacing>
<span style='mso-spacerun:yes'></span> <
<span
class=SpellE>Viewbox.RenderTransform</span> >
</p>
<p class=MsoNoSpacing>
<span style='mso-spacerun:yes'></span> <
<span
class=SpellE>TransformGroup</span> >
</p>
<p class=MsoNoSpacing>
<span style='mso-spacerun:yes'>
</span> <
<span class=SpellE>ScaleTransform</span>
<span class=SpellE>ScaleX</span> ="1"
<span class=SpellE>ScaleY</span> ="1"/>
</p>
<p class=MsoNoSpacing>
<span style='mso-spacerun:yes'>
</span> <
<span class=SpellE>SkewTransform</span>
<span class=SpellE>AngleX</span> ="0"
<span class=SpellE>AngleY</span> ="0"/>
</p>
<p class=MsoNoSpacing>
<span style='mso-spacerun:yes'>
</span> <
<span class=SpellE>RotateTransform</span> Angle="0"/>
</p>
<p class=MsoNoSpacing>
<span style='mso-spacerun:yes'>
</span> <
<span class=SpellE>TranslateTransform</span> X="640"
Y="0"/>
</p>
<p class=MsoNoSpacing>
<span style='mso-spacerun:yes'></span> </
<span
class=SpellE>TransformGroup</span> >
</p>
<p class=MsoNoSpacing>
<span style='mso-spacerun:yes'></span> </
<span
class=SpellE>Viewbox.RenderTransform</span> >
</p>
<p class=MsoNoSpacing>
<span style='mso-spacerun:yes'></span> <
<span
class=SpellE>TextBlock</span>
<span class=SpellE>RenderTransformOrigin</span> ="0.5
<span
class=GramE>,0.5</span> "
<span class=SpellE>HorizontalAlignment</span> ="Center"
x:Name="
<span class=SpellE>tb</span> "
<span class=SpellE>VerticalAlignment</span> ="Center"
Width="Auto" Height="Auto"
<span class=SpellE>FontSize</span> ="50"
<span class=SpellE>TextWrapping</span> ="
<span class=SpellE>NoWrap</span> "
Background="{x:Null}" Foreground="#FFFFFFFF"
Padding="0,0,0,10" Text="0">
</p>
<p class=MsoNoSpacing></p>
<p class=MsoNoSpacing>
<span style='mso-spacerun:yes'></span> <
<span
class=SpellE>TextBlock.RenderTransform</span> >
</p>
<p class=MsoNoSpacing>
<span style='mso-spacerun:yes'>
</span> <
<span class=SpellE>TransformGroup</span> >
</p>
<p class=MsoNoSpacing>
<span style='mso-spacerun:yes'>
</span> <
<span class=SpellE>ScaleTransform</span>
<span class=SpellE>ScaleX</span> ="1"
<span class=SpellE>ScaleY</span> ="1"/>
</p>
<p class=MsoNoSpacing>
<span style='mso-spacerun:yes'>
</span> <
<span class=SpellE>SkewTransform</span>
<span class=SpellE>AngleX</span> ="0"
<span class=SpellE>AngleY</span> ="0"/>
</p>
<p class=MsoNoSpacing>
<span style='mso-spacerun:yes'>
</span> <
<span class=SpellE>RotateTransform</span> Angle="0"/>
</p>
<p class=MsoNoSpacing>
<span style='mso-spacerun:yes'>
</span> <
<span class=SpellE>TranslateTransform</span> X="640"
Y="0"/>
</p>
<p class=MsoNoSpacing>
<span style='mso-spacerun:yes'>
</span> </
<span class=SpellE>TransformGroup</span> >
</p>
<p class=MsoNoSpacing>
<span style='mso-spacerun:yes'></span> </
<span
class=SpellE>TextBlock.RenderTransform</span> >
</p>
<p class=MsoNoSpacing>
<span style='mso-spacerun:yes'></span> </
<span
class=SpellE>TextBlock</span> >
</p>
<p class=MsoNoSpacing>
<span style='mso-spacerun:yes'></span> </
<span
class=SpellE>Viewbox</span> >
</p>
<p class=MsoNoSpacing>
<o:p> </o:p>
</p>
<p class=MsoNoSpacing>
<o:p> </o:p>
</p>
<p class=MsoNoSpacing>
<o:p> </o:p>
</p>
<p class=MsoNoSpacing>
<o:p> </o:p>
</p>
代码块 私有的 void StartAnimation(object sender, EventArgs e) { tb.Text = news; }
MainWindow.UpdateLayout();
Double timeToTake = (MainWindow.Width + tb.ActualWidth) / scrollfactor;
this.tb.RenderTransform = tt;
Storyboard sb = new Storyboard();
DoubleAnimation daX = new DoubleAnimation(MainWindow.Width, (0.0 - tb.ActualWidth), new Duration(TimeSpan.FromSeconds(timeToTake)));
daX.RepeatBehavior = RepeatBehavior.Forever;
Storyboard.SetTargetName(daX, TranslateTransformName);
Storyboard.SetTargetProperty(daX, new PropertyPath(TranslateTransform.XProperty));
sb.Children.Add(daX);
sb.Begin(this.tb);
}