有人会说不建议Wpf中使用Winform控件,有人会说建议使用Winform控件在Wpf下的替代方案,然而在实际工作中由于项目的特殊需求,考虑到时间.成本等因素,往往难免会碰到在WPF中使用Winfrom控件的问题,我们知道Wpf可以通过使用WindowsFormsHost容器调用Winform控件,但是在一些场合需要将Wpf元素显示在Winform控件的上层,此时就会出现Wpf元素被Winform控件遮盖的问题. 一.场景再现 接到公司命令,在时间紧迫的情况下,需要将原来的Winform程序(…
最近用WPF的DataGrid的时候,发现一个很弱智的问题,DataGrid的ItemsSource是绑定了一个属性: 然后取数给这个集合赋值的时候,第一次赋值,就会出现列移位 起初还以为是显卡的问题,结果今天来集成显卡的电脑上也一样出现,具体原因不详,以下是几种解决办法: 1.(首选,有效果)DataGrid的RowHeaderWidth="0",必须赋值为0,不能不赋值,也不能赋其他值. 2.(有效果)绑定的源一开始就要赋值,即至少要有一行数据. 3.(效果不一,有的地方有效有的地…
项目中有个界面展示用WPF实现起来比较简单,并且能提供更酷炫的效果,但是在WinForm中使用WPF窗体出现了问题,在网上找了一下有些人说Winform不能引用WPF的窗体,我就很纳闷,Win32都能引用WPF控件,怎么可能同样运行在.net Fromework框架下的Winfrom不能运行呢.经过慢慢尝试终于找到一个简单的解决方案,神马反射,神马工厂都是浮云,只需要在Winform项目中引用WPF项目下引用的三个程序集:PresentationCore,PrentationFramework,…
使用C#调用mingw的动态库实现视频识别软件,程序通过C++调用opencv打开视频,将图像的原始数据以rgb24的方式传递给C#端,C#通过构造图像对象给控件赋值的方式显示图片. 一开始使用wpf的控件image: while (true) { S_IMG simg = Mingw.display(); //调用取图像函数 ; byte[] data = new byte[size]; Marshal.Copy(simg.pbuf, data, , size); Dispatcher.Inv…
原文:在Winform窗体中使用WPF控件(附源码) 今天是礼拜6,下雨,没有外出,闲暇就写一篇博文讲下如何在Winform中使用WPF控件.原有是我在百度上搜索相关信息无果,遂干脆动手自己实现. WPF控件的漂亮是Winform无法匹及的,本文主旨是在Winform工程中如何使用WPF控件. 先看下效果,如下图: 左边是传统的Winform控件,右边是DebugLZQ引入的WPF控件,我们可以很清楚的看到图片的“半透明”效果.TextBox的透明背景!界面很Cool吧~ 下面就介绍下,这个创新…
原文:WinForm控件与WPF控件的交互 这个问题其实也可以理解为:怎样在WPF/XAML中使用Winform中的控件(如PictureBox)?首先看看XAML代码:(注意下面加粗的部分)<Window x:Class="WindowsApplication1.Window1"    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"    xmlns:x="http…
例如有这样一个用户控件: <UserControl d:DesignHeight="100" d:DesignWidth="200" ...> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="100" /> <ColumnDefinition Width="100" /> </Grid.Colum…
系列文章链接 WPF进阶技巧和实战01-小技巧 WPF进阶技巧和实战02-布局 WPF进阶技巧和实战03-控件(1-控件及内容控件) WPF进阶技巧和实战03-控件(2-特殊容器) WPF进阶技巧和实战03-控件(3-文本控件及列表控件) WPF进阶技巧和实战03-控件(4-基于范围的控件及日期控件) WPF进阶技巧和实战03-控件(5-列表.树.网格01) WPF进阶技巧和实战03-控件(5-列表.树.网格02) WPF进阶技巧和实战03-控件(5-列表.树.网格03) WPF进阶技巧和实战0…
系列目录     [已更新最新开发文章,点击查看详细] WebView2控件应用详解系列博客 .NET桌面程序集成Web网页开发的十种解决方案 .NET混合开发解决方案1 WebView2简介 .NET混合开发解决方案2 WebView2与Edge浏览器的区别 .NET混合开发解决方案3 WebView2的进程模型 .NET混合开发解决方案4 WebView2的线程模型 .NET混合开发解决方案5 WebView2运行时与分发应用 .NET混合开发解决方案6 检测是否已安装合适的WebView2…
在WPF自学入门(二)WPF-XAML布局控件的文章中分别介绍StackPanel,WarpPanel,DockPanel,Grid,Canvas五种布局容器的使用,可以让我们大致了解容器可以使用在什么地方.今天我们就来简单了解一下WPF中的三个带标题的内容控件,分别是GroupBox,TabControl和Expander 一.GroupBox控件 这个控件可以叫做分组控件,可以把已经用布局控件包装好的一系列的控件放到里面分为一个组,例如,我们可以放入RadioButton进去,那么就不用设置…
原文:抛砖引玉 [镜像控件] WPF实现毛玻璃控件不要太简单 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/Vblegend_2013/article/details/83447420 源码已封装成 MirrorGrid类 可以直接在XAML里添加 根据需要可以把Grid 改为  button border等控件 注意 Target必须为当前控件下层的控件对象   加个BlurEffect就是毛玻璃效果 <!--玻璃层控件--> <lo…
原文:C# WPF 低仿网易云音乐(PC)歌词控件 提醒:本篇博客记录了修改的过程,废话比较多,需要项目源码和看演示效果的直接拉到文章最底部~ 网易云音乐获取歌词的api地址 http://music.163.com/api/song/media?id=歌曲ID 填写歌曲的id即可获取到json格式的数据(歌曲ID获取的方法是:点击分享按钮>其他分享>复制链接,就可以在链接中看到了): {,,} 我们需要用到的数据只有lyric部分. 可以看到歌词的结构很简单:“[歌曲时间]歌词部分\n”,\…
原文:WPF Prism MVVM 中 弹出新窗体. 放入用户控件 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/qq_37214567/article/details/79657338 WPF Prism MVVM 中 弹出新窗体. 放入用户控件., 传入一些数据,并且可以返回一些数据. 对于一个WPF MVVM 的 萌新来说. 必然会遇到一个 弹出 新窗口 的问题. 今天,就和大家分享一下,这个问题的解决方法. . 一. 准备 .dll .…
原文:[WPF]创建基于模板的WPF控件(经典) WPF可以创建两种控件,它们的名字也很容易让人混淆:用户控件(User Control)和定制控件(Customer Control),之所以如此命名,是因为用户控件更面向控件的"使用者",以方面他们利用现成的控件组合成新的控件,而客户控件,更便于定制化(Customization),方便创建有别于现有控件的定制控件.  定制控件提供了行为和表现完全分离的开发模式,具有很高的灵活性,当然,也更难一些.这里我们通过创建个简单的搜索控件来看…
WPF提供了三个使用范围概念的控件.这些控件使用在特定最小值和最大值之间的数值.这些控件——ScrollBar.ProgressBar以及Slider——都继承自RangeBase类(该类又继承自Control类).尽管它们使用相同的抽象概念(范围),但工作方式却又很大的区别. 下表显示了RangeBase类定义的属性: 表 RangeBase类的属性 通常不比直接使用ScrollBar控件.更高级的ScrollViewer控件(封装了两个ScrollBar控件)通常更有用.Slider和Pro…
本文结合模板的应用初步介绍ListView的应用 一.Xaml中如何建立数据资源 大部分数据都会来自于后台代码,如何Xaml同样的建立数据源呢?比如建立一个学生List: 首先引入命名空间: xmlns:c="clr-namespace:System.Collections;assembly=mscorlib" 然后代码如下:   <c:ArrayList x:Key="stuList">            <local:Student Id=…
本文结合模板的应用初步介绍ListView的应用 一.Xaml中如何建立数据资源 大部分数据都会来自于后台代码,如何Xaml同样的建立数据源呢?比如建立一个学生List: 首先引入命名空间: xmlns:c="clr-namespace:System.Collections;assembly=mscorlib" 然后代码如下: <c:ArrayList x:Key="stuList"> <local:Student Id="1"…
动态创建控件 1.容器控件.RegisterName("Name",要注册的控件)   //注册控件 2.容器控件.FindName("Name") as  控件类型            //找到控件并转换成相应类型 注意:仅通过 控件.Name来设置是不能通过FindName来找到控件的,必须注册 动态删除控件 1.容器控件.Children.Remove(控件) //移除控件 2.容器控件.UnregisterName("Name")   …
一 基本功能 1. 这里是用 NotifyIcon 控件来实现,但 WPF 下没有 NotifyIcon  控件,怎么办,用 WinForm 下的呗. 先引用  .NET 自带的两个程序集 System.Windows.Forms 是用来使用 NotifyIcon 控件的:System.Drawing 是用来引用图标文件的 2. 图标 3. 设置图标属性 4.这里很重要,因为程序运行后,会在运行程序目录下去找图标文件,这样设置后就会在应用程序目录下生成对应的文件,如果不设置,到时候出错就找不到原…
在01节中,研究了如何开发自定义控件,下节开始考虑更特殊的选择:派生自定义面板以及构建自定义绘图 创建自定义面板 创建自定义面板是一种比较常见的自定义控件开发子集,面板可以驻留一个或多个子元素,并且实现了特定的布局逻辑以恰当地安排子元素.常见的基本类型的面板:StackPanel.DockPanel.WrapPanel.Canvas,Grid,TabPanel,ToolBarPverflowPanel,VirtualizingPanel. 两步布局过程 每个面板都有相同的功能:负责改变子元素尺寸…
原文:<Programming WPF>翻译 第5章 4.元素类型样式 命名样式非常有用,当你得到一组属性并应用到特点的元素上.然而,如果你想要应用一个统一的样式到所有确定元素类型的实例,设置TargetType而不用一个Key,如示例5-16所示. 示例5-16 <!-- no Key --> <Style TargetType="{x:Type Button}">   <Setter Property="FontSize"…
原文  WPF 自带Datagrid编辑后无法更新数据源的问题 解决办法: 在列的绑定属性里加上UpdateSourceTrigger,示例XAML如下 <DataGrid Grid.Row="1" Height="274" HorizontalAlignment="Left" Margin="12,10,0,0" Name="dataGrid2" VerticalAlignment="To…
在很多时候,我们做一些非常规化的界面的时候,往往需要创建一些用户控件,在其中绘制好一些基础的界面块,作为后续重复使用的一个单元,用户控件同时也可以封装处理一些简单的逻辑.在开发Winform各种类型项目,我都时不时需要定制一些特殊的用户控件,以方便在界面模块中反复使用.我们一般是在自定义的用户控件里面,添加各种各样的界面控件元素,或者封装一些特殊的函数处理共外部调用等.本篇随笔主要介绍基于DevExpress的Winform开发经验,介绍一个类似看板信息的用户控件,并在TabelLayout和S…
完善和扩展标准控件的方法: 样式:可使用样式方便地重用控件属性的集合,甚至可以使用触发器应用效果 内容控件:所有继承自ContentControl类的控件都支持嵌套的内容.使用内容控件,可以快速创建聚集其他元素的复合控件(按钮变成图像按钮,列表变成图像列表) 控件模板:所有WPF控件都是无外观的,这意味着他们具有硬编码的功能,但是他们的外观是通过控件模板单独定义的.使用新的控件模板替代默认模板,可重新构建基本控件 数据模板:所有派生自ItemsControl的类都支持数据模板,通过数据模板可创建…
原文:WPF中实现先登录后启动主程序的方法 我觉得先登录后启动应用主程序是一个很经典的问题,基本上如果要写一个应用程序都会用到这个的小环节.我在这个问题上挣扎了大半天才找到解决方案,我的实现方法我觉得有点不正宗,如果有哪位高手知道更好的方法欢迎留言指导!! 首先来说一下传统C#在WinForm中的实现方法,基本上是在Main函数中根据第一个启动窗口的DialogResult来判断是否实例第二个窗口,DialogResult是在第一个窗口中根据登录情况来设置的.代码如下 主函数代码: static…
 vb.net WPF webbrowser window.close 关闭后不触发 WindowClosing 事件 WNDPROC解决方式 #Region "WPF 当浏览器窗体关闭时触发 Quit事件 " #If OnSourceInitialized Then Protected Overrides Sub OnSourceInitialized(e As EventArgs) 'onload 等句柄创建后引用WSInitialized(Me, e) WSInitializ…
HTTP模拟工具 开发语言:C#/Winform开发工具:Visual Studio 2017数据库:   SQLite使用框架:界面-MetroModernUI              Http请求-RestSharp              ORM-Dapper.Net              Json解析-Newtonsoft.Json              多线程-SmartThreadPool本来打算试一下Dapper.Net扩展框架-DapperExtensions,用了有…
UGUI的核心元素: Anchor(锚点):每个控件都有一个Anchor属性,控件的4个顶点,分别与Anchor的4个点保持不变的距离,不受屏幕分辨率变化的影响. 系统默认设置控件的Anchor位置在其父物体的中心处,且不能离开父物体的范围. 将Anchor设置在父物体的左侧,可以实现左对齐的效果. 将Anchor设置在父物体的4个顶点上,子物体将随父物体同步缩放. Pivot(轴):控件的中心点(或称为轴),控件围绕Pivot发生旋转(若想控件围绕某个顶点旋转,改变Pivot位置即可) Rec…
通常我们在处理编辑窗体时.往往会遇到数据绑定.例如combobox控件绑定数据字典可能是我们经常用到的.然而在我的winform快速开发平台中我是如何处理这个频繁的操作呢? 首先,我们要绑定combobox动态数据,大致都是来自于数据字典的数据绑定,那么思路来了,我们需要绑定的是通过获取字典属性来绑定ComboBox控件.大家都知道ComboBox控件中存在显示数据,和值数据对数据值进行绑定. 那么此时我们需要定义一个实体类: /// <summary> /// ComboBoxModel数据…
一个项目控件主要由及部分的常用组件,当然本次介绍的是通用分页控件. 处理思想:我们在处理分页过程中主要是针对数据库操作. 一般情况主要是传递一些开始位置,当前页数,和数据总页数以及相关关联的业务逻辑. 当然我们不可能将控件的所有事件都发布出来. 我们返现所有的按钮操作都是围绕着我们的的查询记录来进行操作. 至此我们只需要提供出一个事件方法. 对外开放进行数据绑定即可. 完成对数据的分页参数处理. 分页控件如下图所示: 相关业务代码:主要代码由事件委托来处理 有了通用的分页控件,我们发现并没有绑定…