自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 如何向WPF控件中注入接口

控件的构造函数都是无参的,这样才可以在XAML中直接引用,否则无法编译通过。

2023-01-13 11:49:01 316

原创 WPF任意控件绑定Command

UIElement中有InputBindings属性,可以绑定鼠标事件,如上代码截取自DataGrid的自定义列中的一部分,可以实现非Button控件的Command绑定。

2023-01-11 17:41:51 724

原创 C#字符串自定义排序

排序要求:按数字、文字、字母、符号的优先顺序排序。

2022-12-22 15:39:09 807 1

原创 C#字符串实现宏替换

本季度总额{MacroTotal},同比增长{MacroY2Y}%,环比增长{MacroM2M}%”

2022-12-22 14:57:32 632

原创 WPF相关资料汇总

WPF相关资料汇总

2022-08-01 13:37:16 269

原创 Win10无法登录Edge账号的问题

给朋友重装了系统,使用一个ZF版激活脚本进行激活,系统版本变为企业版G。朋友使用后,发现无法登录Edge的微软账户,提示“发生了错误,0x800706d9”。经过问题搜索发现,系统服务中的“Microsoft Account Sign-in Assistant”被禁用,手动启动,提示被组策略禁止启动,再进入组策略中,发现并未启用“禁用”。让人想不通。后来看到有人说了企业版G特性,才意识到可能是版本问题,ZF版对数据安全性要求高,转换成其他版本是不是就可以了?于是随便找一个非企业版G的激活码,在系统设置->更

2022-06-13 10:21:11 6851

原创 WPF的Style.xaml提示不存在标记

在类库项目里创建xaml文件或者复制已有的style.xaml,经常遇到会编译不通过的情况,提示不存在标记“XXX”,但按F12又准确定位到类的定义。原因在于新创建的Xaml文件的生成操作都是默认的【Page】,样式文件需要使用【Resource】,在属性里修改后即编译通过。...

2022-06-08 14:55:13 658

原创 日志的分级

级别 说明 例子 Error 错误已经发生了,这是毫无疑问的。错误的来源可能是在外部,但不管怎样都需要看一下是怎么回事。 可以用这个级别来表示需要引起人们注意(大多数时候需要采取行动)的错误。大多数难以优雅处理的异常都属于 Error 范畴。 1、无法找到"crucial.dat"文件 2、错误的处理数据: &l...

2022-05-13 10:07:08 455

原创 WPF中Interactivity.dll的替代方法

WPF中的一些控件的事件可以绑定Command,只要引用System.Windows.Interactivity.dll即可,代码如下,但若缺少此dll也可以使用其他方案替代实现

2022-04-13 16:39:33 716 1

原创 .NET4项目提示“不存在类型或命名空间名”的问题

因为要兼容XP,所以新建项目选.NET4,写好代码,编译总是报错命名空间“ABC”中不存在类型或命名空间名“Core”(是否缺少程序集引用?)在错误列表里双击查看,文件打开有引用命名空间,也没有报错的地方,错误列表里项也消失了,项目引用也俱全。注释所有引用再编译又正常,撤销又报错,找不到原因。最后在输出中找到了提示:warning MSB3268: 未能解析主引用“..\Core.dll”,因为它对框架程序集“System.Runtime, Version=1.5.11.0, Cultu

2022-03-22 17:32:51 882 1

原创 C#绘制GUI动画宜用DispatcherTimer

Dispatcher.Invoke()方法,UI线程会根据设置的优先级进行绘制,易造成线程独占而引起鼠标点击事件等问题。DispatcherTimer本质是一个定时器,只不过运行在UI线程上,Interval设置合理,则不会独占UI线程引起卡顿问题。类似于处理器分时间片,每秒都会响应绘制与事件响应等工作,让用户察觉不到卡顿。若有使用鼠标控制GUI动画的需求,如一秒内会多个变化要处理,则可以使用队列将一秒内的操作动都缓存起来,在下一秒DispatcherTimer触发时从队列里取出操作,组合成最终效果

2022-03-18 10:47:44 353

原创 两个集合判断重复的方法优化

一般方法是两个集合循环,计算量是N*M循环其中一个集合A,用Linq的Exist等方法判断元素是否在B集合这类方法也是一样的假定集体A与集合B都是有序的,就可以按下面进行优化,计算量会少很多bool isExist = false;int index = 0;for (int i = 0; i < aList.Count; i++){ isExist = false; var item = aList[i]; for (; index < bList.Count; in

2022-01-28 12:00:00 725

原创 WPF类型引用无法找到名为“xxx”的类型解决方法

异常信息InnerExceptionType: System.Xaml.XamlParseExceptionInnerExceptionMessage: 类型引用无法找到名为“{clr-namespace:Cn.XXX.Controls}IconButton”的类型。InnerExceptionSource: System.XamlInnerExceptionTargetSite: ServiceProvider_Resolve解决办法:在样式文件中的xmlns声明写完整的&lt

2022-01-25 19:34:43 1472

原创 C#中多程序集的资源引用

一个类库要取本程序集下的图片,作为System.Drawing.Image来使用,exe和图片不在一个程序集,运行时总时报System.ArgumentException异常,通过搜索找到以下方法解决:报错代码:System.Drawing.Bitmap sectionImage = null;sectionImage = new Bitmap("../../Images/horizontal.png");正常代码: Uri uri = new Uri("../../Images/

2022-01-21 19:21:12 267

原创 Byte数组的相等判断

object.Equals判断的是对象的引用是否相等,不能判断数组内容是否相等可使用Enumerable.SequenceEqual()判断内容byte[] a1 = new byte[] { 1, 2, 3, 4, 5, 6 };byte[] a2 = new byte[] { 1, 2, 3, 4, 5, 6 };byte[] a3 = new byte[] { 1, 2, 3, 4, 6, 6 };Console.WriteLine(Enumerable.SequenceEqual(

2021-12-17 16:34:31 1762

原创 VS个人常用插件汇集

Warn About TODOs注释中的todo进行波浪线标记,并显示在warnings中,不区分大小写与注释形式(/* */ // /// )VSColorOutput对输出中的警告标黄色,错误标红色,方便快速识别XAML StylerXAML文件自动格式化,可以设置每行显示几个属性,并对属性进行排序,非常清爽个人偏好Attribute tolerance=2,Keep first attribute on same line=true...

2021-10-28 17:54:37 734

原创 Json反序列化的异常处理

经常遇到Json的值与反序列化的类型不一致,如null转成int会报异常,因为这一处的问题而中断,拿不到除此之外的结果。在JsonSerializerSettings中的NullValueHandling与MissingMemberHandling设置为Ignore也不能跳过,可以使用以下方法:var settings = new JsonSerializerSettings(){ Error = (s, e) => { e.Er

2021-10-28 17:00:46 1016

原创 Popup阴影效果

<Popup> <Border x:Name="main" Margin="5" CornerRadius="4"> <Border.Effect> <DropShadowEffect BlurRadius="5" ShadowDepth="0" Co...

2021-08-31 19:26:23 240

原创 UserControl的KeyDown事件处理

private void UserControl_Loaded(object sender, RoutedEventArgs e) { var window = Window.GetWindow(this); window.KeyDown += HandleKeyPress;}private void HandleKeyPress(object sender, KeyEventArgs e){ //Do work}

2021-08-16 11:59:30 421

原创 C#快速确定串口

与串口通信时,首先要确定串口名PortName,如想对特定的设备,快速确定其插入后分配的串口名,则可以通过设备固定的DeviceId在系统API里查询以确定,具体做法如下:在设备管理器中查看设备的硬件IdUSB\VID_v(4)&PID_d(4)&REV_r(4)其中:v(4) 是 USB 委员会分配给供应商的4位数供应商代码。d(4) 是供应商分配给设备的4位数产品代码。r(4) 是版本代码。USB\ VID_v(4)&PID_d(4)&MI_.

2021-03-22 16:33:57 702

转载 C++与C#类型对应

C++中char*作为出参类型,C#可以使用[MarshalAs(UnmanagedType.LPStr)] StringBuilderC#读取文件内容到byte[],C++接口的入参为char*,C#可使用[MarshalAs(UnmanagedType.LPArray)] byte[]附: //c++:HANDLE(void *) ---- c#:System.IntPtr //c++:Byte(unsigned char...

2021-03-09 17:59:44 4729

原创 SQLite日期修改

在原来的时间上加上一定时间:update CollectData set CollectTime=datetime(CollectTime,'+21 year', '+7 day', '+11 hour')

2021-01-12 14:31:37 1065

原创 WPF继承默认样式

WPF一般在..\Themes\Generic.xaml里定义整个系统所用控件的默认样式,以保持全局风格统一<Style TargetType="Button"> <Setter Property="VerticalAlignment" Value="Center" /> <Setter Property="FontSize" Value="16" /> ...</Style>而在部分界面里,需要修改默认样式的部分属性值,并

2020-09-03 15:28:25 1691 2

原创 WPF的DataTemplateSelector的使用

public class OperateSelector : DataTemplateSelector{ public DataTemplate ATemplate { get; set; } public DataTemplate BTemplate { get; set; } public DataTemplate CTemplate { get; set; } public override DataTemplate SelectTemplate(object item, Depend.

2020-09-02 16:26:53 910

原创 C#文本朗读的封装

using System;namespace Helpers{ public class TextSpeechHelper { private static TextSpeechHelper _instance; private int? _rate; private object _sync; Type type; private TextSpeechHelper() { .

2020-07-30 09:52:35 145

原创 WPF以资源的形式定义ListView的列并控制显示

1、以资源的形式定义列2、根据配置或用户需要,将列添加到ListView中xaml:<UserControl.Resources> <GridViewColumn x:Key="SerialNumber" Width="2" Header="序号"> <GridViewColumn.CellTemplate> <DataTemplate> <TextBlock HorizontalAlignment=

2020-07-23 14:46:04 344

原创 WPF屏蔽Page控件的F5刷新界面

在WPF的Page控件中按F5会刷新控件,如有需要进行屏蔽,可使用附加属性实现:public static class DisableNavigation{ public static bool GetDisable(DependencyObject o) { return (bool)o.GetValue(DisableProperty); } public static void SetDisable(DependencyObject o, bool value) { o.S

2020-07-09 10:09:13 431

原创 NPOI解析多行表头Excel

NPOI解析Excel你例子很多,一般是针对单行表头,输出DataTable的,如果遇到多行表头,输入泛型对象的,要稍微复杂一些,参考了一篇博文,理解后进行了简化(参考地址:https://www.cnblogs.com/csqb-511612371/p/4891492.html)原文一共6篇,其中有左侧表头的处理,这里没有参考了定义:using NPOI.HSSF.UserModel;using NPOI.SS.UserModel;using NPOI.XSSF.UserModel;usi

2020-06-19 13:59:56 1614

原创 WPF中使用Slider让LostFocus与PropertyChanged兼得

TextBox控件获得焦点后,一般点击空白处还是会保留焦点的,如果在外层套一个ScrollViewer,则点击空白处会失焦;类似NumericUpDown的控件,默认的UpdateSourceTrigger方式为LostFocus,长按NumericUpDown的增减按钮,中间的变化过程不会触发更新,若修改为PropertyChanged方式触发,则无法手修改输入框内的值,两者不可兼得;可以利用Slider控件作为中间人,实现PropertyChanged的触发,TextBox的Text绑定Slid

2020-06-05 16:38:11 480

原创 WPF使用枚举作多选设置的一种实现

基础类:public class SelectItem{ public string Key { set; get; } public string Value { set; get; }}public class SettingsEnumList:ObservableCollection<SelectItem>{ public SettingsEnumList...

2020-03-09 17:20:45 375

原创 WPF使用Popup与ItemsControl实现取色器

XAML:<Popup Name="popColorPicker" Width="315" Height="296" AllowsTransparency="False" IsOpen="{Binding IsColorPickerOpen}" Placement="Mouse" PopupAnimation="Fade" Sta...

2020-03-09 12:50:12 382

原创 DataGrid中DataGridComboBoxColumn

不限 高 中 低

2017-09-15 13:50:45 1795

转载 WPF DataGrid中列的属性绑定问题

WPF中的DataGrid中Column的IsReadOnly和VIsibility等属性绑定时,总没有任何效果,输出里也显示找不到,搜了半天才发现,原来Column不属于visual 或 logical tree,所以不能在树上搜索他的绑定源,需要借助其他方法给属性指定数据源,方法如下:原文地址:https://stackoverflow.com/questions/15494226/can

2017-09-02 15:50:44 2602

原创 WPF利用委托与事件实现VM对View中控件的调用

WPF结合MVVM模式,可以实现界面与代码的完全分离,非常便于开发与维护,但对于某些特定需求,例如TextBox需要Focus获得光标,或者全选其中的文本,这时候就比较难了,因为VM中完全拿不到控件对象,也很难调用Focus()与SelectAll()方法,但也不是完全不可以,有一种利用委托与事件实现的方法,不知道是否有背MVVM分离思想,具体方法如下:View.xaml:View.x

2017-08-31 14:16:22 2293

原创 ListView与SimpleCursorAdapter实现视频列表

新手试验品 之前用过自定义BaseAdapter,数据为静态的,不能及时随着系统数据更新,查了资料才知道应该用CursorAdapter。 以下实现的视频列表,会显示视频的缩略图、标题、时长和大小;单击Item会启动另一个Activity进行播放,长按Item会出现CheckBox和编辑功能布局,并有一个反选功能。 视频的缩略图加载使用缓存和延迟加载,是借鉴的

2015-09-29 12:11:40 560

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除