
C# WPF
文章平均质量分 67
一阵没来由的风
It doesn't even matter
展开
-
WPF 子窗口跟随主窗口移动
由于LocationChanged的事件参数中没有记录历史的窗口位置信息,因此为了得到当前窗口与移动之前的窗口位置变化情况,需要添加lastTop和lastLeft记录上一次窗口位置情况,然后以此来计算偏差时。原创 2025-03-10 09:52:10 · 222 阅读 · 0 评论 -
WPF 窗口白屏问题分析与初步解决
WPF窗口白屏问题解决,使用WeDraft.Toolkit.FirstDraft可以临时解决问题。原创 2023-10-11 21:44:12 · 2059 阅读 · 3 评论 -
WPF TextBox 添加范围验证
添加范围验证,若出现范围错误添加信息捕捉使用到技术:使用**ValidationRules**实现范围验证,当范围出现错误时,可以通过触发器**Validation.HasError=True**设置自定义错误样式。使用Behavior技术捕捉所有验证出错的消息,用于检查界面是否出错,实现行为捕获。原创 2023-07-04 23:51:15 · 664 阅读 · 0 评论 -
WPF TabControl 数据绑定
WPF TabControl in Binding’s world首先,TabControl是间接继承自ItemControl的控件,因此可以像ItemControl那样自如的使用。自此,我们知道了ItemControl的派生控件有:ItemControl–>Selector–>ListBoxItemControl–>Selector–>ListBox–>ListViewItemControl–>Selector–>ComboBoxItemControl原创 2020-05-22 20:03:17 · 6622 阅读 · 0 评论 -
WPF 加载摄像机视频
WPF 加载摄像机视频WPF 显示摄像机可以借助AForge进行实现视频显示和数据录制。视频显示1.引入AForge库文件NUGet导入AForgeAForge.VedioAForge.Vedio.DirectShow2.设置UI添加一个Image控件,用于视频呈现。<Window x:Class="Rxbit.Views.Scane.CameraWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/原创 2020-05-15 19:39:46 · 1527 阅读 · 0 评论 -
WPF DataGrid的列标题样式设计
WPF DataGrid的列标题样式设计能够换行1.定义列样式 <DataTemplate x:Key="HeaderTemplateCenterAlign"> <Border> <TextBlock TextWrapping="Wrap" Text="{Binding Path=Content, Rel...原创 2020-04-28 19:11:55 · 1436 阅读 · 0 评论 -
WPF ItemControl 相关的数据源排序显示
WPF ItemControl 相关的数据源排序显示直接操作绑定的数据源,例如将新增的元素显示到最前头,可以在添加数据源时,使用Insert函数,直接添加到集合中的首个位置。如下所示。using System.Collections.Generic;// 添加新数据时LaneTriggerInfoViewModel.Singleton.TrpTriggers[lane.Key - 1]...原创 2020-04-28 19:06:36 · 561 阅读 · 0 评论 -
WPF MenuItem In Binding's world
WPF MenuItem In Binding’s world自定义Menu样式<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/...原创 2020-04-24 20:05:51 · 562 阅读 · 0 评论 -
WPF 切换控件界面库资源
WPF 切换控件界面库资源在实际项目开发中,我们经常是使用别人开发好的界面库。但是不同界面库涉及的控件和对控件的默认样式存在偏差。为了能在不同的项目中使用多种界面库。最开始没有想过,觉得不好实现。但是实际来使用的时候,发现非常简单。本次示例以MaterialDesignUI和ModernUI切换为例。NuGet界面库程序包分别添加MaterialDesignThemes和ModernUI....原创 2020-04-17 19:40:36 · 1181 阅读 · 0 评论 -
WPF 自定义界面语言包
WPF 语言包1定义语言资源在Luanguage文件夹下添加StringResource.en-US.xaml与StringResource.zh-CN.xaml分别定义语言为英语和中文的语言资源文件。StringResource.en-US.xaml<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/...原创 2020-04-12 21:03:58 · 701 阅读 · 0 评论 -
WPF 枚举类型与ComboBox绑定
WPF 枚举类型与ComboBox绑定通过枚举类型建立集合很多时候,我们需要直接获取枚举值的值,将其绑定到ComboBox之类的控件中。因为我们知道,ComboBox的ItemsSource是一个集合,因此我们需要将枚举值变成一个集合,然后绑定到ComboBox中,可以通过绑定SelectedItem/SelectedValue实现获取选中元素。枚举定义 public enum Azimu...原创 2020-04-03 20:06:27 · 6178 阅读 · 0 评论 -
WPF 语言包自定义与使用
WPF 语言包1定义语言资源在Luanguage文件夹下添加StringResource.en-US.xaml与StringResource.zh-CN.xaml分别定义语言为英语和中文的语言资源文件。StringResource.en-US.xaml<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/...原创 2020-04-03 20:03:15 · 914 阅读 · 0 评论 -
WPF 自定义窗口笔记
WindowChrome最大化是否保留任务栏在使用WindowChrome作为自定义窗口拖拽等操作支持功能时,我们可以很轻松的自定义我们窗体。通过双击WindowChrome的CaptionHeight范围内即可实现窗体的最大化。在最大化时,根据项目需求,有些应用需要覆盖任务栏,而另外一些需求是保留任务显示。那么怎么在WindowChrome支持下实现这两个不同的需求。答案是比较简单,就是...原创 2020-03-22 13:44:36 · 479 阅读 · 0 评论 -
WPF 变换方式LayoutTransform和RenderTransform
WPF提供两种变换方式,分别是LayoutTransform和RenderTransform。从字面意思来讲LayoutTransform是布局变换,后者RenderTransform是渲染变换。共同点:他们都提供了TransformGroup(变换组)、TranslateTransform(平移)、RotateTransform(旋转)、ScaleTransform(缩放)、MatrixTr...原创 2020-03-19 18:48:25 · 1067 阅读 · 0 评论 -
WPF 使用后台定义与使用(模板)资源
在WPF开发中,我们经常定义资源的方式是通过在App.XAML文件的Resource节点、单独页面(Page、Window、UserControl等)的Resource下、元素节点下的Resource里以及单独添加资源字典(Dictionary.xaml)文件进行定义。其效果如下图所示。这些定义,后台可以通过元素的FindResource方法检索Key找到定义的资源。但是有...原创 2020-03-19 18:48:11 · 2475 阅读 · 0 评论 -
WPF 几何图形之图形微语言命令
WPF 几何图形之图形微语言命令在WPF中,可以通过几何图形(Geometry)来绘制矢量图形。简单的几何图形包括:LineGeometry、RectangleGeometry、EllipseGeometry等。复杂的集合图形包括:PathGeometry、 GeometryGroup 、CombineGeometry、StreamGeometry等。注意:StreamGeometry的内...原创 2020-03-06 08:48:08 · 1212 阅读 · 1 评论 -
WPF Behavior 行为
WPF Behavior 行为前言行为是一类事物的共同特征,在WPF中通过行为可以封装一些通用的界面功能,从而实现代码重用来提高开发效率。因此他是一个非常好用的工具。引入dll文件找到System.Windows.Interactivity.dll文件。https://download.youkuaiyun.com/download/YouyoMei/12200463然后将其引入到项目中。创建...原创 2020-02-29 12:33:02 · 5990 阅读 · 0 评论 -
WPF 如何自定义图标—扩展篇
引言在之前我们讲解了如何在WPF中自定义控件,需要了解可以走下面的链接。应用篇续篇前言我们作为开发人员,毕竟自己的画画和图标设计功底不是很好。因此如何获取立意明显、表达准确的图标?似乎是亟需解决的问题。虽然在前言中,我简单提了一下如何获取图标的方式。但是不够详细,本文专门针对这个问题出具自己较为详细的解决方法。应用首先简单介绍下自己得到较为完整的图标数据需要用到的...原创 2020-02-10 19:24:02 · 845 阅读 · 0 评论 -
WPF入门指引
环境搭建VS2019下载地址https://visualstudio.microsoft.com/zh-hans/学生或者学习党选用community版本,使用OutLook账户登录免费使用。安装模块选择最基础的(电脑空间非常有限)一般用户(涉及后期相关开发)安装路径如果电脑配置好的用户,这块可以不用管,直接点击安装即可。如果电脑存储空间有要求可以根据电脑内存分配来进行调...原创 2020-02-08 16:55:04 · 597 阅读 · 0 评论 -
WPF 带值增减按钮的文本输入框
WPF 带值增减按钮的文本输入框引言在做一些上位机时,对参数的配置需要用到一类控件,就是对配置值得增减。本文主要介绍下自己在WPF开发中使用过的控件——xceed.ToolKit的–UpDown控件(在xceed中有很多比较实用的控件)。应用1.导入程序包,程序包名如下:SamOatesGames.ModernUI.Xceed.Toolkit2.在xaml中引入命名空间 xmlns...原创 2020-02-08 14:28:29 · 4425 阅读 · 4 评论 -
WPF 自定义样式
WPF 自定义样式引言对于WPF开发者而言,默认的控件样式是不是觉得非常的”Low“或者说不好看。其实我也是一样,看多了就觉得样式一般般,不好看。因此如何解决这个问题呢?当然是自己来定义控件的样式。本节使用Visual Studio自带的功能——“编辑模板”来实现只需修改颜色(边框、背景、前景等)的控件美化功能。应用鱼废话不多说,首先贴上自己定义并使用过的几个控件的样式,如下:But...原创 2020-02-06 17:18:48 · 2563 阅读 · 0 评论 -
WPF ListView与ListBox(选中)项样式
WPF ListView与ListBox(选中)项自定义样式想用ListBox或者ListView控件,做一个菜单栏等,却发现很难改变ListBoxItem/ListViewItem项在鼠标移过、选中的默认蓝色背景与边框。首先尝试使用控件的Style来设置ItemTemplate上的Triggers,结果时不成功。经过查资料发现很少,最后在自定义List项时,发现对ListBoxItem/L...原创 2020-02-05 14:40:40 · 6603 阅读 · 1 评论 -
WPF 如何自定义图标——应用篇——自定义控件
WPF 如何自定义图标——应用篇——自定义控件引言结合前面我们已经能够较为灵活的在CS和XAML中使用我们自定义的图标。接下来,我们结合一些框架元素(FrameElement)的特点实现我们自己自定义控件的定义与使用。自定义控件的特点:灵活,重构能力强。图标类控件给人非常醒目的感觉,我们通过自定义Control、Button和CheckBox控件来实现自定义控件的定义与使用。编码环境:Wi...原创 2020-01-31 12:47:41 · 2120 阅读 · 0 评论 -
WPF 如何自定义图标-续篇
WPF 如何自定义图标-续篇引言前面我们讲过,使用StreamGeometry在XAML文件中进行包括,将图标的数据以字符串的形式传递给StreamGeometry,然后再将StreamGeometry作为静态资源在我们的项目中使用。虽然上面可以满足我们的一般要求,但是当我们后台使用相同的资源时,比较麻烦:通过资源名找到对应的资源。当资源较多时,理论上会增加检索负担。因此我想通过某种方式,同时...原创 2020-01-28 12:01:46 · 793 阅读 · 0 评论 -
WPF DataGrid与数据绑定
WPF DataGrid与数据绑定MVVM基础using System.ComponentModel;using System.Runtime.CompilerServices;namespace Melphi.Mvvm.Base{ /// <summary> /// ViewModel模型基类(属性更改通知) /// A base class fo...原创 2020-01-21 11:57:55 · 1655 阅读 · 0 评论 -
WPF DataTemplate与ControlTemplate知识积攒
WPF DataTemplate与ControlTemplateAnswer OneTypically a control is rendered for its own sake, and doesn’t reflect underlying data. For example, a Button wouldn’t be bound to a business object - it’s t...原创 2020-01-21 09:38:00 · 493 阅读 · 0 评论 -
WPF ContentControl与ContentPresenter 知识积攒
WPF ContentControl与ContentPresenterAnswer oneContentControl is a base class for controls that contain other elements and have a Content-property (for example, Button).ContentPresenter is used insid...原创 2020-01-21 09:36:35 · 2458 阅读 · 0 评论 -
WPF 命令绑定的各种方式
WPF 命令绑定的各种方式引言在WPF开发过程中,不得不学习的就是MVVM模式。但是在MVVM中又绕不开命令(Command)的使用。下面通过几种方式介绍我了解的WPF命令绑定方式。如何使用控件继承ICommand接口,直接使用Command首先通过这里简单介绍Command在MVVM中的使用。ViewModel类// using System.ComponentModel;// ...原创 2020-01-21 09:24:08 · 6768 阅读 · 0 评论 -
WPF Binding 笔记
WPF Binding Note引言记录绑定相关的知识点绑定最初的样子WPF中的数据绑定主要是将自定义的ViewModel的可通知属性和命令绑定到控件的依赖与附加属性。对于绑定的数据源,在没有对绑定属性/命令做特殊的声明时会自动根据元素树找到当前最近的DataContext,直到找到文件(Window、Page等节点)结束。XAML中不指定数据源 <Image Stretch...原创 2020-01-18 16:19:52 · 359 阅读 · 0 评论 -
WPF DataGrid 的应用
WPF DataGrid 的应用简单使用使用DataGrid就离不开数据绑定,首先我们以最简单的方式实现数据源和DataGrid控件的绑定。建立数据模型public class Employee { /// <summary> /// Set 设置成私有方法时,在数据绑定时,绑定的Mode不能设置成TwoWay,只能实现从数据源更新到Vi...原创 2020-01-18 12:08:25 · 587 阅读 · 0 评论 -
WPF 如何自定义图标-前言
WPF如何自定义图标引言在人机交互的开发中,图标是非常重要的一个交互元素。WPF的开发中图标的使用有很多中方式:加载字体图标资源,这方面的资源有:Iconfont(阿里图标)Awesome…使用前端框架提供的资源,例如MaterialDesign的PackIcon控件里面。使用Path自定义设计图标。应用使用Path自制控件时,一些比较简单的图形可以直接通过...原创 2020-01-18 12:07:38 · 1238 阅读 · 0 评论 -
WPF Triggers 中 EnterActions 与 ExitActions 的应用
我们在自定义模板的时候,经常会使用到Triggers,一般情况下,我们通过Trigger可以完成当状态发生变化是,可以修改某个属性值。如下面这样:<Trigger Property="IsMouseOver" Value="True"> <Setter Property="Rectangle.Opacity" Value="1" TargetName="rootCu...原创 2019-12-14 23:26:53 · 2276 阅读 · 1 评论 -
WPF 3D模型上的2D元素 Viewport3D
需求需要将UI元素布置到3D模型上,还能实现对UI元素的操作。环境实现UI元素模板控件模型UserControlTemplate.xaml<UserControl x:Class="Melphi.UserControlTemplate" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/present...原创 2019-12-14 11:30:20 · 1682 阅读 · 0 评论 -
WPF 第三方控件学习使用——可停靠布局控件(AvalonDock)
需求近期在做公司上位机产品规划与实验,参考了Blender软件的布局风格,希望能用WPF也做一个类似布局的上位机。于是开始寻找资源,很快就发现了AvalonDock。AvalonDock简介AvalonDock是Xceed公司 Wpf.Toolkit 中的一款收费产品,其中还包括很多其他控件的收集整理,感兴趣的自行研究。但是万能的Nuget里面有许多免费的版本,并且GitHub...原创 2019-12-04 21:59:08 · 7706 阅读 · 2 评论 -
WPF 数据集合绑定到DataGrid、ListView或者其他列表控件
需求描述需要使用一个类似表格的控件,数据格式如下:数据名称 数据标记 数据值选择 DataA true Kea(可选的值:Kea,Lau,Nuh) DataB true Lau(可选的值:Kea,Lau,Nuh) DataC true invalid(可选的值:invalid,valid) DataD false ...原创 2019-12-01 18:56:38 · 3523 阅读 · 0 评论 -
WPF 图表控件LiveCharts的应用——室内监控可视化
需求为了实现一个完整软件系统,必须具备一些基本的数据呈现控件,例如曲线图、柱状图、饼图等。本次的业务需求为:利用LiveCharts展示后台模拟的温度变化。像Winform里面,微软为我们提供了比较完整的Chart控件,但是在WPF组件中,就没有找到类似的控件,它的意图是让我们自己去实现。我们应该对当下的代码共享时代环抱感激,迄今位置有很多面向WPF的第三方控件库,大部分都是免费开源的。例如:...原创 2019-11-03 12:04:34 · 6195 阅读 · 6 评论 -
WPF 自定义窗体实现拖动边框改变窗体大小(2种方法)
方式一:调用user32.dllAPI这种方式在网上有很多,这里只是按步骤重新建立一次。读者只需要跟着做就行。第一步:创建一个WPF项目:WpfResizeWithoutBorder,右键项目文件---->添加----->资源字典,并命名为:WindowsResizeBorderTemplete.xaml。第二步:在刚刚建立的资源文件(WindowsResizeBord...原创 2018-09-29 20:57:40 · 6186 阅读 · 3 评论 -
WPF 字体图标 FontAwesome 的简单使用
开篇一个好的应用程序,离不开好看的界面,在应用程序界面设计过程中,图标往往不会离开设计人员的视线。图标的存在形式有很多中:png\jpg\ico\bmp。。。等很多种,但是这些图标都存在一个弊端,他们不是矢量图,不能在不失真的情况下进行缩放等矢量图具备的特点。而字体图标恰好的解决了这个弊端,将图标封装在字体里面,以字体的形式展示,这样图标就可以自由的缩放、更改颜色等。实现第一步:下载...原创 2019-01-30 14:14:39 · 4942 阅读 · 0 评论 -
WPF 字体图标 IconFont 的简单使用
开篇字体图标除了前面将的FontAwesome以外,还有阿里图标IconFont也是UI设计中经常使用的图标库。阿里图标的自定义功能比较好用,可以自定义下载的图标文件大小,自定义图标等。本篇主要谈谈IconFont字体图标在WPF中的简单使用。实现第一步:下载地址:https://www.iconfont.cn/方法:1.注册一个账号(为了方便管理自己的图标) ...原创 2019-01-30 14:52:11 · 12885 阅读 · 4 评论 -
WPF MaterialDesign 开源免费UI组件的介绍和简单使用
导读最开始接触WPF是2017年11月份,相比当时自己也不大熟悉Winform,觉得WPF做的效果很好。但由于一些原因,公司也没有采用WPF进行项目开发。后来一直都是自己看看MSDN、《WPF编程宝典》、bilibili以及万能的百度等,自己也学到了很多。后来在2018年1月份,自己主张使用WPF开发了一个物联网设备监控系统,虽然遇到很多问题,但是最后的效果我觉得能甩Winform很远...自...原创 2019-08-20 13:29:05 · 37229 阅读 · 10 评论