[英]WPF with Windows Forms - STAThread
我是WPF的新手,並且有關於WPF和Windows Forms集成的幾個問題。
我有一個現有的Visual C#Windows窗體應用程序。 我想將它與WPF窗口集成,可以通過單擊按鈕顯示。 這是不可能的,因為WPF期望調用線程是一個STAThread,默認情況下WinForm假定該線程是一個MTAThread。 我嘗試使用公寓狀態STAThread生成一個新線程來調用WPF UI,但這不起作用。 我嘗試使用Dispatcher.BeginInvoke方法和后台工作程序,但沒有一個解決了這個問題。
1)我們可以調用WPF窗口/控件而不將Main標記為STAThread嗎? 如果有可能,有人可以指出我正確的方向嗎? 2)如果實現此目的的唯一方法是使主線程成為STAThread,那么對應用程序的一般性能/響應性是否會有任何影響。
提前致謝。
我認為最簡單的解決方案是讓你的WinForms線程在STA中執行。 擁有一個STA線程winforms應用程序沒有任何問題(實際上它通常是默認值)。
您可以通過將以下行添加到程序的main方法來解決此問題:
[STAThreadAttribute]
static void Main(string[] args)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.