可传输一个字符串 public class DownloadEventArgs:EventArgs { public s

时间:2022-01-26 04:56:47

//设置一个下载事件类,,可传输一个字符串

 public class DownloadEventArgs:EventArgs

    {

        public string id { get; set; }

        public DownloadEventArgs(string m)

        {

            id = m;

        }

 

    }


//下载中事件

        public delegate void DownloadingEvent(object sender, DownloadEventArgs e);

        public event DownloadingEvent _DownloadingEvent;

 // TODO 下载按钮

        void DownLoad_Click(object sender, RoutedEventArgs e)

        {

            if (sender is Button)

            {

                Button temp = sender as Button;

                if (temp.Tag == null) { return; }

                string id = temp.Tag;

                if ( id == null) { return; }

                Task.Factory.StartNew(() =>

                {

                   //发送下载中事件

                            DownloadEventArgs downloading = new DownloadEventArgs(id);

                            _DownloadingEvent(temp, downloading);

                }).ContinueWith(x =>

                {

                    this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (ThreadStart)delegate()

                    {

                        temp.IsEnabled = false;

                    });

                });

            }

        }


//应用事件转变按钮样式
void main()
{
  Button DownloadButton = new Button();
  _DownloadingEvent += (a, b) =>

                        {

                            if (_DownloadingEvent != null)

                            {

                                if (b.id == a.Tag)

                                {

                                    DownloadButton.IsEnabled = false;

                                    DownloadButton.Content = "下载中";

                                }

                            }

                        }; 
}