如何加载自定义控件时启动DispatcherTimer?

时间:2010-09-01 03:53:01

标签: c# wpf abstract-class

我需要能够在加载自定义控件时启动计时器。但是,我需要能够在抽象类中执行此操作,此类型的所有控件都继承自。

3 个答案:

答案 0 :(得分:1)

控件确实有一个Loaded事件,您可以在抽象基类中附加该事件以启动计时器。

// in ctor of abstract control
_timer = new DispatcherTimer(...);
Loaded += (s,e) => _timer.Start();

答案 1 :(得分:0)

不确定你的问题是什么? .NET中有三个定时器,您应该可以使用它们中的任何一个。查看this文章,了解它们之间的选择和差异。

答案 2 :(得分:0)

你的意思是控件是抽象的。如下所示?
请尝试以下方法:

public partial class MainWindow : Window
{
    MyControl mycontrol;

    public MainWindow()
    {
        InitializeComponent();

        //// Your logics...

        mycontrol.Dispatcher.BeginInvoke((Action)(() =>
            {
                 /// Try invoking timer here...
            }));
    } 
}

public abstract class MyControl: Control
{

}

HTH