在 dotNet WPF 裡面使用 WinForm
文章目錄
需求
本來以為 WinForm (Windows Forms) 和 WPF (Windows Presentation Foundation) 是不相容的, 後來發現不但可以混用, 而且 WPF 可以在同一個 Window 裡面直接叫用 WinForm 的元件, 如下:
環境
作法
-
首先要在 .csproj 加上 <UseWindowsForms>true</UseWindowsForms>
1<Project Sdk="Microsoft.NET.Sdk"> 2<PropertyGroup> 3 <OutputType>WinExe</OutputType> 4 <TargetFramework>net7.0-windows</TargetFramework> 5 <Nullable>enable</Nullable> 6 <UseWPF>true</UseWPF> 7 <UseWindowsForms>true</UseWindowsForms> 8</PropertyGroup> 9</Project>
-
如果是整個 .cs 都要用 WinForm, 那在程式宣告加上 using System.Windows.Forms, 就整個程式都可以用
1using System.Windows.Forms;
-
如果是只有幾行要用, 那可以在使用的時候直接把整個 namespace 寫進去, 這樣也可以避免同樣的名稱打架. 譬如下面這兩個都叫做 Cursor
1System.Windows.Forms.Cursor.Position 2System.Windows.FrameworkElement.Cursor