[英]Windows Toolkit XamlHostControl in WinForms
我正在嘗試按照 WinForms 的說明運行下面頁面上的非常基本的示例
https://docs.microsoft.com/en-us/windows/communitytoolkit/controls/wpf-winforms/windowsxamlhost
嘗試將 WindowsXamlHost 控件拖到設計器上時,我不斷收到錯誤消息
我一直在 MSDN 論壇上進行交流,此過程描述了問題以及我嘗試過的內容,請參閱以下鏈接WinForms 問題
誰能幫我解決我的問題。 我真的需要嘗試在我的 WinForms 程序中加入一些現代 UPC 控件。
親切的問候
史蒂夫
感謝您的反饋,我可以重現此問題,而且它看起來是 Visual Studio 奇怪的行為,請隨時在Microsoft.Toolkit.Win32 github 問題框中發布此問題。 目前,有一種變通方法,在后面的代碼中初始化WindowsXamlHost
,然后在InitializeComponent
方法中調用下面的方法。
對於 WinForms
private void CreateUWPControlsFirst()
{
Windows.UI.Xaml.Hosting.WindowsXamlManager.InitializeForCurrentThread();
Windows.UI.Xaml.Controls.Button myButton = new Windows.UI.Xaml.Controls.Button();
myButton.Name = "button1";
myButton.Width = 75;
myButton.Height = 40;
myButton.TabIndex = 0;
myButton.Content = "button1";
myButton.Click += MyButton_Click;
Microsoft.Toolkit.Forms.UI.XamlHost.WindowsXamlHost myHostControl =
new Microsoft.Toolkit.Forms.UI.XamlHost.WindowsXamlHost();
myHostControl.Name = "myWindowsXamlHostControl";
myHostControl.Child = myButton;
myHostControl.Height = 500;
myHostControl.Width = 600;
this.Controls.Add(myHostControl);
}
請注意:如果您遇到Catastrophic failure" exception
,請添加app.manifest
文件並寫入以下內容,然后將 win 從應用程序的默認清單切換到 app.manifest。(右鍵單擊您的項目 -> 應用程序 -> 清單)有關詳細信息,請參閱 Matteo帕加尼博客。
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- Windows 10 -->
<maxversiontested Id="10.0.18358.0"/>
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
</application>
</compatibility>
</assembly>
我在嘗試使用 Visual Studio 2017 為 WinForms 實現 XAML Islands 時遇到了同樣的問題,這就是我為解決該問題所做的工作。
我最初安裝了 Microsoft.Toolkit.Forms.UI.XamlHost 的 6.0 版。 我卸載了那個版本,而是安裝了 5.1 版。
然后我將我的項目升級到使用.Net 4.6.2 或更高版本,並將 XAML 主機控件拖到為我工作的設計器上。
請注意,此站點https://github.com/dotnet/wpf/issues/1290似乎表明該問題已在以后的版本中得到解決,但我無法使這些問題正常工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.