Wpf 当没有对UI对象和Application.Current.Dispatcher的引用为空时,如何访问Dispatcher?
我从一个非UI线程(WPF控件之外的另一个线程)调用它: 但是在我的例子中,Wpf 当没有对UI对象和Application.Current.Dispatcher的引用为空时,如何访问Dispatcher?,wpf,mfc,dispatcher,Wpf,Mfc,Dispatcher,我从一个非UI线程(WPF控件之外的另一个线程)调用它: 但是在我的例子中,Application.Current是null(托管在MFC应用程序中的WPF对象) 唯一的解决方案是将一个DispatcherObject实例作为参数传递,但这会在其他地方引起许多修改,并使其不是调用代码的干净解决方案 有什么想法吗?我通过在第一次使用类时将类存储作为对调度程序的有效引用(也将其设置为单例),解决了这个问题 这不是最好的解决方案,但更糟糕的是…我在第一次使用类时,通过使类存储成为对调度程序的有效引用(
Application.Current
是null
(托管在MFC应用程序中的WPF对象)
唯一的解决方案是将一个DispatcherObject
实例作为参数传递,但这会在其他地方引起许多修改,并使其不是调用代码的干净解决方案
有什么想法吗?我通过在第一次使用类时将类存储作为对调度程序的有效引用(也将其设置为单例),解决了这个问题
这不是最好的解决方案,但更糟糕的是…我在第一次使用类时,通过使类存储成为对调度程序的有效引用(使其成为单例),解决了这个问题
不是最好的解决方案,但更糟糕的是…您是否将FontFamily绑定到某个地方?你能描述一下你想做什么吗?它主要用来阅读来自Fontfamily的信息,但除了重点之外。。。问题是我的方法可以在WPF UI线程之外调用,在我的应用程序中也是如此。Current总是空的,所以我需要另一种方法来找到一个有效的Dispatcher…你是否在某个地方绑定了FontFamily?你能描述一下你想做什么吗?它主要用来阅读来自Fontfamily的信息,但除了重点之外。。。问题是我的方法可以在WPF UI线程之外调用,在我的应用程序中也是如此。Current总是空的,所以我需要另一种方法来找到有效的Dispatcher。。。
public static FontFamily GetDefaultFontFamily()
{
FontFamily fontFamily = null;
Application.Current.Dispatcher.Invoke(
new Action(
delegate
{
fontFamily = new TextBlock().FontFamily;
}));
return fontFamily;
}