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-04C#通過NPOI導(dǎo)入導(dǎo)出數(shù)據(jù)EXCEL
這篇文章主要為大家詳細(xì)介紹了C#通過NPOI導(dǎo)入導(dǎo)出數(shù)據(jù)EXCEL,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02Unity3D實現(xiàn)NavMesh導(dǎo)航網(wǎng)格尋路
這篇文章主要為大家詳細(xì)介紹了Unity3D實現(xiàn)NavMesh導(dǎo)航網(wǎng)格尋路,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-05-05