簡體   English   中英

WPF與Windows窗體 - STAThread

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM