我開發了一個使用高級第三方UserControl的WPF應用程序; UserControl顯示一個交互式地圖。如果我通過在XAML中指定StartupUri="MainWindow"
來打開應用程序的主窗口,或者如果我使用app.Run(new MainWindow())
從代碼啓動應用程序,那麼一切正常。但是,如果我不是處理應用程序啓動時這樣使用Application.StartupUri和處理WPF中的啓動事件之間的區別?
private void Application_Startup(object sender, StartupEventArgs e)
{
new MainWindow().Show();
}
然後我得到以下情況例外,當我開始與地圖交互:
不能使用屬於不同的線程比爲DependencyObject它的父級Freezable。
爲什麼會發生這種情況 - 哪種線程在啓動應用程序的這些不同方式之間做了什麼?下面是異常的部分堆棧跟蹤:
at System.Windows.Freezable.EnsureConsistentDispatchers(DependencyObject owner, DependencyObject child) at System.Windows.Freezable.OnFreezablePropertyChanged(DependencyObject oldValue, DependencyObject newValue, DependencyProperty property) at System.Windows.Media.RenderData.PropagateChangedHandler(EventHandler handler, Boolean adding) at System.Windows.Media.DrawingVisual.RenderClose(IDrawingContent newContent) at System.Windows.Media.RenderDataDrawingContext.DisposeCore() at System.Windows.Media.DrawingContext.System.IDisposable.Dispose() at some3rdPartyClass.BuildVisual(Brush fg, Brush bg)
@Machine學習是你的問題,爲什麼我會要處理的Startup事件呢?如果是這樣的話:提出的問題顯示了一個簡化的例子;實際上我想用不同的參數調用MainWindow的構造函數。 –
我該如何重現此問題? – 2016-07-22 13:19:27
對不起,我不知道如何沒有相同的第三方用戶控件(我無權共享)重現它。 –