在Winform窗體中使用WPF控件(附源碼)


今天是禮拜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!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM