zoukankan      html  css  js  c++  java
  • 在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!

  • 相关阅读:
    webstorm实现手机预览页面
    git 远端版本回退
    Vue开发中的移动端适配(px转换成vw)
    测试web-view,实现小程序和网页之间的切换
    mysql 字符集研究
    Openssl
    Android Activity 去掉标题栏及全屏显示
    Android中的 style 和 theme
    Android sharedPreferences 用法
    Vim 字符集问题
  • 原文地址:https://www.cnblogs.com/DebugLZQ/p/2508846.html
Copyright © 2011-2022 走看看