【WPF】用CustomControl打造WPF版的Marquee2012-01-02 博客园 智者千虑我们知道在html中有一个marquee标签,可以很方便的实现文字滚动的效果,比如如下简单的声明:
<marquee loop="3" behavior="scroll">文本信息<marquee>
在WPF里面,当然,我们可以用Animation和Storyboard来达到同样的效果,但是感觉总是不那么好,每次都需要做动画。而且设置动画的属性很麻烦。能不能就像HTML简单的声明就行了呢?比如:
<l:Marquee Content="123" Direction="Right" Behavior="Scroll" ScrollAmount="20" ScrollDelay="500"/>
能够这样简单的指定属性来使用。下面我们就用开发CustomControl的方式来打造一个Marquee控件。首先,我们添加一个自定义控件,这个控件继承自ContentControl,因为它的里面可以放任何东西,而不仅仅限于文本。接着,仿造html中的marquee标签,定义一些必要的属性。这些属性都是DependencyProperty。

接下来我们需要写动画的逻辑了。有三种方式来写这个动画:1、利用系统的Animation和Storyboard2、在CompositionTarget的Rendering事件中写动画3、利用DispatcherTimer写动画