C# WPF 跨线程访问控件

……
//定义事件
public delegate void MediaStop(object sender, EventArgs e);
public event MediaStop OnMediaStop;
……
private Button PlayRestore = new Button();
……
//监听事件
formLEDScreen_vlc.OnMediaStop += FormLEDScreen_vlc_OnMediaStop;

private void FormLEDScreen_vlc_OnMediaStop(object sender, EventArgs e)
{
    if (formLEDScreen_vlc.isMediaStop)
    {
        //调用函数处理按键提示修改
        SetButtnonContent(PlayRestore,"播出");
    }
}

 private void SetButtnonContent(Button btn, string str)
{
    if (!Dispatcher.CheckAccess())//判断是否是被其他线程调用
    {
        Dispatcher.Invoke(() => SetButtnonContent(btn, str));
        return;
    }
    btn.Content = str;
}

猜你喜欢

转载自blog.csdn.net/dgnankai/article/details/129250547