asp.net WPF 走马灯 文字滚动 自定义控件

 

 代码如下 复制代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Controls;
using System.ComponentModel;
using System.Drawing;
using System.Timers;
using System.Windows;

namespace WpfDemoNew.Control
{
    /// <summary>
    /// Label走马灯自定义控件
    /// </summary>
    [ToolboxBitmap(typeof(Label))] //设置工具箱中显示的图标
    public class ScrollingTextControl:Label
    {
        /// <summary>
        /// 定时器
        /// </summary>
        Timer MarqueeTimer = new Timer();
        /// <summary>
        /// 滚动文字源
        /// </summary>
        String _TextSource = "滚动文字源";
        /// <summary>
        /// 输出文本
        /// </summary>
        String _OutText = string.Empty;
        /// <summary>
        /// 文字的滚动速度
        /// </summary>
        double _RunSpeed = 1000;

        /// <summary>
        /// 构造函数
        /// </summary>
        public ScrollingTextControl()
        {
            MarqueeTimer.Interval = _RunSpeed;//文字移动的速度
            MarqueeTimer.Enabled = true;      //开启定时触发事件
            MarqueeTimer.Elapsed += new ElapsedEventHandler(MarqueeTimer_Elapsed);//绑定定时事件
            this.Loaded += new RoutedEventHandler(ScrollingTextControl_Loaded);//绑定控件Loaded事件
        }

        void ScrollingTextControl_Loaded(object sender, RoutedEventArgs e)
        {
            _TextSource = SetContent;
            _OutText = _TextSource + "   ";
        }
       

        void MarqueeTimer_Elapsed(object sender, ElapsedEventArgs e)
        {
            if (string.IsNullOrEmpty(_OutText)) return;
            _OutText = _OutText.Substring(1) + _OutText[0];
            Dispatcher.BeginInvoke(new Action(() => {
                SetContent = _OutText;           
            }));
        }

        /// <summary>
        /// 滚动的速度
        /// </summary>
        [Description("文字滚动的速度")] //显示在属性设计视图中的描述
        public double RunSpeed
        {
            get { return _RunSpeed; }
            set
            {
                _RunSpeed = value;
                MarqueeTimer.Interval = _RunSpeed;
            }
        }

        /// <summary>
        /// 滚动文字源
        /// </summary>
        [Description("文字滚动的速度")]
        public string TextSource
        {
            get { return _TextSource; }
            set
            {
                _TextSource = value;
                _OutText = _TextSource;
            }
        }

        private string SetContent
        {
            get { return Content.ToString(); }
            set
            {
                Content = value;
            }
        }
    }
}

以上放到cs文件中 然后 编译 就可以在工具箱中看到ScrollingTextControl 名称的label控件

 代码如下 复制代码

<Window x:Class="WpfDemoNew.Window21"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Window21" Height="300" Width="300" xmlns:my="clr-namespace:WpfDemoNew.Control">
    <Grid x:Name="grid">
        <my:ScrollingTextControl Content="12345" Height="52" HorizontalAlignment="Left" Margin="10,10,0,0" x:Name="scrollingTextControl1" VerticalAlignment="Top" Width="121" Foreground="Black" />
    </Grid>
</Window>

时间: 2024-09-20 16:28:13

asp.net WPF 走马灯 文字滚动 自定义控件的相关文章

想利用FormattedText类实现文本显示,并且利用wpf动画实现文字滚动

问题描述 想利用FormattedText类实现文本显示,并且利用wpf动画实现文字滚动,求怎样在WPF里写控件

asp.net判断输入文字是否是数字

asp.net判断输入文字是否是数字 /**//// <summary> /// 名称:IsNumberic /// 功能:判断输入的是否是数字 /// 参数:string oText:源文本 /// 返回值: bool true:是 false:否 /// </summary> public bool IsNumberic(string oText) { try { int var1=Convert.ToInt32 (oText); return true; } catch {

浅谈ASP.NET中最简单的自定义控件

这篇文章主要简单介绍了ASP.NET中最简单的自定义控件,以及核心代码示例,需要的朋友可以参考下 ASP.NET用户控件一般适用于产生相对静态的内容,所以没有builtin的事件支持.本文讨论用户控件返回事件的方法. 假定用户控件(UserControl.ascx)中包含按钮控件AButton,希望实现按AButton按钮时,包含该用户控件的页面可以接收到事件.为此,小鸡射手在用户控件和页面的代码中分别作了处理. UserControl.ascx.cs中的处理: 1. 定义public的事件委托

把某个asp.net 控件替换成自定义控件的方法

 这篇文章主要介绍了把某个asp.net 控件替换成自定义控件的方法,需要的朋友可以参考下 功能:可以把某个asp.net 控件 替换成 自定义的控件    pages 的 tagMapping 元素(ASP.NET 设置架构)    定义一个标记类型的集合,这些标记类型在编译时重新映射为其他标记类型.    此元素是 .NET Framework 2.0 版中的新元素.  代码如下: <pages>  <tagMapping>  <add  tagType=  "

JS实现倒计时和文字滚动的效果实例

 说明:一般我们在一些淘宝类店铺中会看到一些像搞竞拍之类的活动,从中我们时而会发现一些倒计时的效果,在一些年会等场合我们也会发现一些抽奖活动,从中我们也可以看到一些随即滚动的效果.这里给大家分享一种实现倒计时和文字滚动的方法,希望可以对大家有所帮助.这里主要是通过js实现的. 一.倒计时效果的实现 前台部分的完整代码如下: 代码如下: <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="serve

显示屏-led屏幕文字滚动的速率与屏幕刷新率的对应关系

问题描述 led屏幕文字滚动的速率与屏幕刷新率的对应关系 我想请教led显示屏文字滚动速率和屏幕刷新频率的对应关系,目前的刷新率是60hz,滚动速度大概是每秒移动15个点,能感觉到字体在抖动,请教应该怎么处理,最好能带上一个比较明确的分析过程,小弟在此不胜感激 解决方案 投影空间坐标与屏幕的对应关系 解决方案二: 为什么要这么精确,设置8分之一扫

WPF界面里拖动自定义控件,WPF界面并没有后台代码。

问题描述 WPF界面里拖动自定义控件,WPF界面并没有后台代码. 我的控件已经写好了,是一个虚拟键盘,现在的做法是获取textbox的焦点,判断控件与界面之间的大小关系使其能在固定的位置显示,但现在我想要实现其能在界面上自由拖动/移动,暂时没有想到什么好的办法.网上有说用mousedown等函数来控制,但那些需要自界面后台代码中实现,现在界面是没有后台代码的,不知道如何实现,希望能有大神指教一下.谢谢! 补充一点键盘的前台代码:

求助 listbox 里面的文字滚动(急……)

问题描述 listbox是获取的sql里的结果,而且sql语句的结果每3个组合一行,输出到listbox中,现在listbox里的数据很多行,显示不下,目前一页能显示10行,想隔5秒显示下一页,在隔5秒再显示下一页,以此循环,直到显示到最后一页,然后判断是否到最后一页,再从头开始显示,然后再从新继续循环 解决方案 解决方案二:listview有一页一页这个概念吗?还是每一页一个listview?C/S还是B/S啊:每3个组合一行?这句话多了吧?我琢磨了半天,也没搞明白你在问什么?解决方案三:用d

Android实现文字滚动效果_Android

Android 实现文字滚动效果,自己写了个timer小计时器,textview文字上下翻动效果: public class AutoTextView extends TextSwitcher implements ViewSwitcher.ViewFactory { private float mHeight; private Context mContext; //mInUp,mOutUp分别构成向下翻页的进出动画 private Rotate3dAnimation mInUp; priva