C#?wpf嵌入winform控件的示例詳解
前言
wpf的強(qiáng)大界面能力,再加上winform的性能以及靈活性,那基本上什么界面都能夠做的很好。比如視頻渲染用winform,功能按鍵用wpf,就能達(dá)到性能和界面效果和完美結(jié)合。wpf有直接的控件支持嵌入winform控件,使用方法也很簡單,網(wǎng)上很容易搜到。之所以編寫這篇文章,主要用于記錄。
一、導(dǎo)入WinForm
1、.Net Framwork
(1)、右鍵添加引用

(2)、勾選程序集

2、.Net 6.0^
.net core導(dǎo)入比較簡單,筆者使用的是.net 6.0,其他版本應(yīng)該類似。
(1)、打開項目屬性

(2)、勾選啟用Windows窗體

二、引用命名空間
注:Window其他屬性略。
<Window xmlns:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms" />
三、使用 WindowsFormsHost
1、直接xaml中使用
添加一個winform的TextBox
<Window x:Class="WpfApp6.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApp6"
xmlns:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Grid>
<WindowsFormsHost Width="400" Height="100" >
<wf:TextBox BackColor="255,192,192,192" />
</WindowsFormsHost>
</Grid>
</Window>
效果預(yù)覽

2、后臺設(shè)置
MainWindow.xaml
<Window x:Class="WpfApp6.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApp6"
xmlns:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Grid>
<WindowsFormsHost x:Name="wf_test" Width="400" Height="100">
</WindowsFormsHost>
</Grid>
</Window>
MainWindow.xaml.cs
注:對于.Net Framework下列還需要引用System.Drawing程序集
using System.Windows;
namespace WpfApp6
{
/// <summary>
/// MainWindow.xaml 的交互邏輯
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
var tb = new System.Windows.Forms.TextBox();
tb.BackColor= System.Drawing.Color.RoyalBlue;
tb.ForeColor = System.Drawing.Color.White;
tb.Font = new System.Drawing.Font("",24);
wf_test.Child = tb;
}
}
}
總結(jié)
wpf對winform的嵌入支持還是比較好的,可以直接在xaml使用winform控件,同時也可以在后臺代碼設(shè)置,將winform項目加入到wpf中幾乎沒什么阻礙,唯一的問題就是winform控件會覆蓋wpf控件。
到此這篇關(guān)于C# wpf嵌入winform控件的示例詳解的文章就介紹到這了,更多相關(guān)wpf嵌入winform控件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
c#使用windows服務(wù)更新站點地圖的詳細(xì)示例
這篇文章主要介紹了c#使用windows服務(wù)更新站點地圖的詳細(xì)示例,需要的朋友可以參考下2014-04-04
C#通過NPOI導(dǎo)入導(dǎo)出數(shù)據(jù)EXCEL
這篇文章主要為大家詳細(xì)介紹了C#通過NPOI導(dǎo)入導(dǎo)出數(shù)據(jù)EXCEL,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02
Unity3D實現(xiàn)NavMesh導(dǎo)航網(wǎng)格尋路
這篇文章主要為大家詳細(xì)介紹了Unity3D實現(xiàn)NavMesh導(dǎo)航網(wǎng)格尋路,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-05-05

