//设置一个下载事件类,,可传输一个字符串
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 = "下载中";
}
}
};}