今天是禮拜6,下雨,沒有外出,閑暇就寫一篇博文講下如何在Winform中使用WPF控件。原有是我在百度上搜索相關信息無果,遂干脆動手自己實現。
WPF控件的漂亮是Winform無法匹及的,本文主旨是在Winform工程中如何使用WPF控件。
先看下效果,如下圖:

左邊是傳統的Winform控件,右邊是DebugLZQ引入的WPF控件,我們可以很清楚的看到圖片的“半透明”效果、TextBox的透明背景!界面很Cool吧~
下面就介紹下,這個創新性工程的創建過程,並附上所有代碼:
首先,添加一個WPF自定義控件,控件的xaml很簡單,代碼如下:
<Grid >
<Image Margin="10,10,10,90" x:Name="img" Stretch="Uniform" Opacity="1">
<Image.BitmapEffect>
<DropShadowBitmapEffect Opacity="1" />
</Image.BitmapEffect>
</Image>
<TextBox Background="Transparent" Foreground="White" Height="40" FontSize="32" Margin="44,0,56,36" x:Name="txtBox1" Opacity="0.5" Text="" VerticalAlignment="Bottom" />
</Grid>
其次,我們需要添加相應的設置效果的函數,代碼如下:
public void SetSource(string fileName) { img.Source = new BitmapImage(new Uri(fileName) ); } public void SetOpacity(double opacity) { img.Opacity = opacity; } // public string GetText() { return txtBox1.Text; }
OK,以上步驟完成后我們建立一個Winform應用程序,添加先關的引用,這個非常重要,否則控件無法正常工作,引用的清單如下:

這里需要重點提出的是WindowsFormsIntegration這個引用。
我們編譯整個項目,編譯成功在工具箱中會出現相應的控件,如下圖:

拖動這個控件到Winform窗體中,調用相應的函數。函數調用代碼如下:
userControl11.SetSource(@"D:\臨時文件\新建文件夾\DebugLZQ.jpg"); userControl11.SetOpacity(0.5);
string text = userControl11.GetText();
OK,至此程序完成。很簡單強大吧~
再次看下效果圖:

請點擊下面的“綠色通道”--“關注DebugLZQ”,共同學習進步~Thank you for your Time!
