WPF弹出右键菜单时判断鼠标是否选中该项

和上篇在WPF的TreeView中实现右键选定一样,这仍然是一个右键菜单的问题:这个需求是在一个实现剪贴板的功能的时候遇到的:在弹出右键菜单时,如果菜单弹出位置在ListViewItem中时,...

2022-08-06

C#中通过Command模式实现Redo/Undo方案

一个比较常见的改进用户体验的方案是用Redo/Undo来取代确认对话框,由于这个功能比较常用,本文简单的给了一个在C#中通过Command模式实现Redo/Undo方案的例子,以供后续查询。cla...

2022-08-06

C#使用DoddleReport快速生成报表

有的时候,我们需要对一堆数据进行统计分析后生成HTML或Excel格式报表。本来这并不是一件很难的事,但确是件比较麻烦的事情。最令人头痛的是遇到领导下发的临时紧急任务的时候,...

2022-08-06

WPF中使用CallerMemberName简化InotifyPropertyChanged的实现

在WPF中,当我们要使用MVVM的方式绑定一个普通对象的属性时,界面上往往需要获取到属性变更的通知, class NotifyObject : INotifyPropertyChanged { private int n...

2022-08-06

C#使用Data Annotations进行手动数据验证

Data Annotations是在Asp.Net中用于表单验证的,它通过Attribute直接标记字段的有效性,简单且直观。在非Asp.Net程序中(如控制台程序),我们也可以使用Data Annotations进行手动数...

2022-08-06

WPF实现动画效果(二)之From/To/By动画

WPF动画效果系列WPF实现动画效果(一)之基本概念WPF实现动画效果(二)之From/To/By 动画WPF实现动画效果(三)之时间线(TimeLine)WPF实现动画效果(四)之缓动函数WPF实现动画效果(五)之关键...

2022-08-06

WPF实现动画效果(五)之关键帧动画

WPF动画效果系列WPF实现动画效果(一)之基本概念WPF实现动画效果(二)之From/To/By 动画WPF实现动画效果(三)之时间线(TimeLine)WPF实现动画效果(四)之缓动函数WPF实现动画效果(五)之关键...

2022-08-06

对WPF中的TreeView实现右键选定

在WPF中,TreeView默认情况是不支持右键选定的,也就是说,当右键点击某节点时,是无法选中该节点的。当我们想在TreeViewItem中实现右键菜单时,往往希望在弹出菜单的同时选中该节点,...

2022-08-06

C#多线程之线程绑定ThreadLocal类

在.Net 4.0的Thread里,新增了线程局部变量(ThreadLocal)类,可以很方便的实现线程专有存储。应用场景线程专有存储应被用于这样的多线程应用:它们经常访问那些逻辑上是全局的、而...

2022-08-06

C#运行程序时阻止关闭显示器和系统待机

最近写了一个下载程序,发现有一个问题:挂机下载的时候,下载任务会因为系统休眠被终止掉。最开始我的解决方法是关闭休眠,后来发现这种策略并不是很好:下载完成后,如果仍然继续保持...

2022-08-06

C#中using关键字的使用方法示例

目录1 :using 指令(命名空间)2 :using 语句(1 ):using (ResourceType Identifier = Expression ) Statement(2 ):using (Expression) Statement3 :using 别名总结这里记录下C#中using关...

2022-08-06

C#实现简单的字符串加密

最近用到一些字符串加密,而.net中提供的加密算法中用起来比较复杂,便简单的封装了一下,方便日后使用。 public class Encrypt { static Encoding encoding = Enco...

2022-08-06

C#在MEF框架中手动导入依赖模块

对于简单的场景来讲,在MEF中导入依赖模块非常简单,只要用ImportAttribute标记依赖的成员,MEF模块会自动找到并创建该模块。但有的时候我们依赖的模块是上下文相关的,此时MEF框架...

2022-08-06

WPF实现动画效果(一)之基本概念

WPF动画效果系列WPF实现动画效果(一)之基本概念WPF实现动画效果(二)之From/To/By 动画WPF实现动画效果(三)之时间线(TimeLine)WPF实现动画效果(四)之缓动函数WPF实现动画效果(五)之关键...

2022-08-06

C#工程建立后修改工程文件名与命名空间操作

前言:使用之前的项目做二次开发,项目快结束的时候,需要把主项目的名称修改成我们想要的。之前从来没有这么干过,记录一下。步骤如下:1:打开vs2010项目解决方案,重命名,如下图所示:2、...

2022-08-06

C# IEnumerator枚举器的具体使用

1、对象只要一个类型实现了IEnumerable接口就能遍历
2、IEnumerator是枚举器,一个接口类,实现MoveNext->Current->Reset
3、yield关键字是一个迭代器,相当于实现了IEnumerator...

2022-08-06

WPF中TreeView控件的用法

在WPF的TreeView使用方式和WinForm下有很大不同,那些展开某节点、获取父节点,判断某节点是否被选中等常用的操作在WinForm下都有相关函数,而在WPF中却不能轻易实现。一种常规的...

2022-08-06

C#对文件名智能排序的算法

在文件夹中,我们经常有类似s_1.txt、s_2.txt、s_10.txt、s_11.txt这样的命名方式,我们期望的排序方式是s_1.txt、s_2.txt、s_10.txt、s_11.txt(Vista & Windows7是这种方式),然而...

2022-08-06

C#获取文件夹所占空间大小的功能

虽然现在硬盘越来越大,但是清理垃圾还是必要的。这时我们往往需要一个获取文件夹所占空间大小的功能,从而判断垃圾文件的位置。这个时候,我们常用的在右键属性中查看文件夹所占...

2022-08-06

C#中使用Cache框架快速实现Cache操作

.NET 4.0中新增了一个System.Runtime.Caching的名字空间,它提供了一系列可扩展的Cache框架,本文就简单的介绍一下如何使用它给程序添加Cache。一个Cache框架主要包括三个部分:O...

2022-08-06

C#生成比较短的Token字符串

有的时候,我们需要生成一些Token作为标识:如认证后的标识符,资源的提取码等。一个比较常见的算法是生成一个GUID来作为Token,由于GUID的随机性和唯一性特点,作为Token是一个非常...

2022-08-06

C#使用第三方组件实现动态解析和求值字符串表达式

目录介绍1、Z.Expressions.Eval 表达式解析2、NReco.LambdaParser 表达式解析3、DynamicExpresso 表达式解析4、SQL条件语句的正则表达式和字符串求值处理介绍在进行项目开...

2022-08-06

WPF实现动画效果(三)之时间线(TimeLine)

WPF动画效果系列WPF实现动画效果(一)之基本概念WPF实现动画效果(二)之From/To/By 动画WPF实现动画效果(三)之时间线(TimeLine)WPF实现动画效果(四)之缓动函数WPF实现动画效果(五)之关键...

2022-08-06

c#中使用BackgroundWorker的实现

在客户端中,为了防止界面假死状态,或者不能拖动界面,可以使用BackgroundWorker。1.在界面上拖动一个BackgroundWorker,label,进度条和2个button控件。BackgroundWorker也可以选择...

2022-08-06

C#结束进程及子进程

这是个我在C#调用批处理文件时遇到的问题。首先我通过Process.Start方法调用一个批处理文件,那个批处理文件里面则调用了一大堆程序。当退出C#程序时,我在程序中结束杀掉了那...

2022-08-06

C#实现递归调用的Lambda表达式

前段时间,我写一个树的访问算法的时候,用了Visitor模式把访问的算法分离了出来,当时打算用lambda表达式写visit算法的,却发现带递归调用的lambda表达式没想象的那么好写,憋了半天...

2022-08-06

C#中的composite模式示例详解

目录写在前面一个简单例子基层员工类经理类公司架构类客户端代码再想一下使用组合模式进行重构透明型安全型重构后的代码(透明型)写在前面Composite组合模式属于设计模式中比...

2022-08-06

C#实现快速查询文件的方法

相信使用过Everything的人都对其超快的搜索速度印象非常深刻,它的主要原理是通过扫描NTFS磁盘的USN Journal读取的文件列表,而不是磁盘目录,由于USN Journal非常小,因此能实现快...

2022-08-06

解决WPF附加属性的Set函数不调用的问题

今天写程序的时候用到了附加属性,我是用VS内置的propa的代码段来实现的,代码如下: class Attach { public static bool GetIsEnabled(DependencyObject obj)...

2022-08-06

在WPF中使用多线程更新UI

有经验的程序员们都知道:不能在UI线程上进行耗时操作,那样会造成界面卡顿,如下就是一个简单的示例: public partial class MainWindow : Window { public MainWind...

2022-08-06

在WPF中使用Interaction.Triggers

Interaction Class - static class that owns the Triggers and Behaviors attached properties. Handles propagation of AssociatedObject change notifications (MSDN)....

2022-08-06

C#并行编程Task类用法介绍

Task和ThreadPool的功能类似,可以用来创建一些轻量级的并行任务。对于将一个任务放进线程池ThreadPool.QueueUserWorkItem(A);这段代码用Task来实现的话,方式如下:Task.Factory...

2022-08-06

C#使用Effects给图片增加阴影效果

今天写一个小程序有一个给图片加上阴影的需求,记得WPF的Effect中就有阴影特效,就打算用它了。代码如下: using (var imageStreamSource = File.OpenRead(@"r:\4.png")) u...

2022-08-06

WPF程序将控件所呈现的内容保存成图像

有的时候,我们需要将控件所呈现的内容保存成图像保存下来,例如:InkCanvas的手写墨迹,WebBrowser中的网页等。可能有人会说,这个不就是截图嘛,找到控件的坐标和大小,调用截图API不就...

2022-08-06

C#开发WPF程序中的弱事件模式

在C#中,得益于强大的GC机制,使得我们开发程序变得非常简单,很多时候我们只需要管使用,而并不需要关心什么时候释放资源。但是,GC有的时并不是按照我们所期望的方式工作。例如,我想...

2022-08-06

在WPF中合并两个ObservableCollection集合

WPF中的ObservableCollection是一个非常常用的集合对象,我们可以通过将它绑定到ListBox之类的集合控件上时,当集合发生变更时,会同步更新到界面上。但是,有的时候我们需要合并两...

2022-08-06

C# 将数据库SqlServer数据绑定到类中的过程详解

目录 一、环境和过程环境:过程:三、代码 (一)Form_Load方法(二)LoadData方法(三)TblPerson类本文讲述的是读取数据库中数据的常用做法,即将数据库中的数据绑定到创建的类中,再将类绑定...

2022-08-06

使用C#开发OPC Server服务器源码解析

目录1、需要的DLL2、添加引用3、OPC Server 接口开发5、测试OPC Server服务器服务器的开发比较繁琐,本示例采用C#提供了一种简单快速实现OPCServer的方法,已经在工程项目中应...

2022-08-06

C# 泛型List排序的实现

本文主要介绍了C# 泛型List排序的实现,分享给大家,具体如下:代码using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threadin...

2022-08-06

WPF使用FontAwesome字体图标

在WPF程序中,一般接触到的矢量图标资源有XAML、SVG、字体这三种格式。XAML是标准格式就不说了,SVG并不是直接支持的,不过微软提供了Expression Design可以非常方便我们将其转换...

2022-08-06

C#开发Windows UWP系列之3D变换

在Win8.1中,引入了一个PlaneProjection可以实现3D变换,但它的变换方式比较简单,只能实现基本的旋转操作。在Windows 10 UWP中,引入了一个更加强大的3D变换Transform3D,系统默认内...

2022-08-06

C#对桌面应用程序自定义鼠标光标

有的时候,一个自定义的鼠标光标能给你的程序增色不少。本文这里介绍一下如何在.net桌面程序中自定义鼠标光标。由于.net的桌面程序分为WinForm和WPF两种,这里分别介绍一下。Wi...

2022-08-06

WPF使用Geometry绘制几何图形

在WPF的DrawingContext对象中,提供了基本的绘制椭圆和矩形的API:DrawEllipse和DrawRectangle。但是,这些是远远不够用的,我们在日常应用中,更多的是使用DrawGeometry函数,它可以绘...

2022-08-06

利用MySqlBulkLoader实现批量插入数据的示例详解

目录介绍1.将List转化为DataTable 2.将DataTable转换为标准的CSV文件 3.CSV文件导入数据到数据库4.使用MySqlBulkLoader批量插入数据5.完整的代码介绍最近在项目中遇到插入...

2022-08-06

C#实现给DevExpress中GridView表格指定列添加进度条

目录一、问题描述二、实现方法2.1、先注册单元格绘制方法2.2、编写给指定单元格绘制进度条的方法2.3、使用给指定单元格绘制进度条方法三、相关内容3.1、给单元格设置百分比...

2022-08-06

详解C#对Dictionary内容的通用操作

目录一、实现效果1.1实现的功能1.2实现的功能效果图二、实现核心三、使用方法3.1引用命名空间3.2使用示例一、实现效果1.1实现的功能①添加信息到字典中;②根据键获取值;③根...

2022-08-06

C# Winform 分页功能的实现

首先创建一个用户控件 如下图 用到的控件 label、button、TextBox 内部代码如下 #region 分页字段和属性 private int pageIndex = 1; /// <summary>...

2022-08-06

C# winform 请求http的实现(get,post)

目录一:.Net中有两个类 HttpWebRequest 和HttpWebResponse 类来实现Http的请求二: HTTP定义了与服务器交互的不同方法POST与GET的差异两个简单的Get请求和Post请求1.Get请求2...

2022-08-06

C#使用Win2D在UWP程序中实现2D绘图

在新的Windows UWP程序中,引入了一个新的API库: Win2D。它是一个d2d的封装,可以直接使用C#来快速实现高效2D绘图了。这个API虽然在Win8.1时代就开始着手开发了,但最近才完善了下...

2022-08-06

C#开发Windows UWP系列之布局面板RelativePanel

RelativePanel是在Windows 10 UWP程序中引入的一种新的布局面板,它是通过附加属性设置元素间的位置关系来对实现布局的。一个简单的示例如下:<RelativePanel> <TextBox x:N...

2022-08-06
返回顶部
顶部