- 博客(35)
- 收藏
- 关注
原创 WPF任意控件绑定Command
UIElement中有InputBindings属性,可以绑定鼠标事件,如上代码截取自DataGrid的自定义列中的一部分,可以实现非Button控件的Command绑定。
2023-01-11 17:41:51
899
原创 Win10无法登录Edge账号的问题
给朋友重装了系统,使用一个ZF版激活脚本进行激活,系统版本变为企业版G。朋友使用后,发现无法登录Edge的微软账户,提示“发生了错误,0x800706d9”。经过问题搜索发现,系统服务中的“Microsoft Account Sign-in Assistant”被禁用,手动启动,提示被组策略禁止启动,再进入组策略中,发现并未启用“禁用”。让人想不通。后来看到有人说了企业版G特性,才意识到可能是版本问题,ZF版对数据安全性要求高,转换成其他版本是不是就可以了?于是随便找一个非企业版G的激活码,在系统设置->更
2022-06-13 10:21:11
7685
原创 WPF的Style.xaml提示不存在标记
在类库项目里创建xaml文件或者复制已有的style.xaml,经常遇到会编译不通过的情况,提示不存在标记“XXX”,但按F12又准确定位到类的定义。原因在于新创建的Xaml文件的生成操作都是默认的【Page】,样式文件需要使用【Resource】,在属性里修改后即编译通过。...
2022-06-08 14:55:13
790
原创 日志的分级
级别 说明 例子 Error 错误已经发生了,这是毫无疑问的。错误的来源可能是在外部,但不管怎样都需要看一下是怎么回事。 可以用这个级别来表示需要引起人们注意(大多数时候需要采取行动)的错误。大多数难以优雅处理的异常都属于 Error 范畴。 1、无法找到"crucial.dat"文件 2、错误的处理数据: &l...
2022-05-13 10:07:08
516
原创 WPF中Interactivity.dll的替代方法
WPF中的一些控件的事件可以绑定Command,只要引用System.Windows.Interactivity.dll即可,代码如下,但若缺少此dll也可以使用其他方案替代实现
2022-04-13 16:39:33
877
1
原创 .NET4项目提示“不存在类型或命名空间名”的问题
因为要兼容XP,所以新建项目选.NET4,写好代码,编译总是报错命名空间“ABC”中不存在类型或命名空间名“Core”(是否缺少程序集引用?)在错误列表里双击查看,文件打开有引用命名空间,也没有报错的地方,错误列表里项也消失了,项目引用也俱全。注释所有引用再编译又正常,撤销又报错,找不到原因。最后在输出中找到了提示:warning MSB3268: 未能解析主引用“..\Core.dll”,因为它对框架程序集“System.Runtime, Version=1.5.11.0, Cultu
2022-03-22 17:32:51
1116
1
原创 C#绘制GUI动画宜用DispatcherTimer
Dispatcher.Invoke()方法,UI线程会根据设置的优先级进行绘制,易造成线程独占而引起鼠标点击事件等问题。DispatcherTimer本质是一个定时器,只不过运行在UI线程上,Interval设置合理,则不会独占UI线程引起卡顿问题。类似于处理器分时间片,每秒都会响应绘制与事件响应等工作,让用户察觉不到卡顿。若有使用鼠标控制GUI动画的需求,如一秒内会多个变化要处理,则可以使用队列将一秒内的操作动都缓存起来,在下一秒DispatcherTimer触发时从队列里取出操作,组合成最终效果
2022-03-18 10:47:44
404
原创 两个集合判断重复的方法优化
一般方法是两个集合循环,计算量是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
785
原创 WPF类型引用无法找到名为“xxx”的类型解决方法
异常信息InnerExceptionType: System.Xaml.XamlParseExceptionInnerExceptionMessage: 类型引用无法找到名为“{clr-namespace:Cn.XXX.Controls}IconButton”的类型。InnerExceptionSource: System.XamlInnerExceptionTargetSite: ServiceProvider_Resolve解决办法:在样式文件中的xmlns声明写完整的<
2022-01-25 19:34:43
1891
原创 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
337
原创 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
1850
原创 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
784
原创 Json反序列化的异常处理
经常遇到Json的值与反序列化的类型不一致,如null转成int会报异常,因为这一处的问题而中断,拿不到除此之外的结果。在JsonSerializerSettings中的NullValueHandling与MissingMemberHandling设置为Ignore也不能跳过,可以使用以下方法:var settings = new JsonSerializerSettings(){ Error = (s, e) => { e.Er
2021-10-28 17:00:46
1188
原创 Popup阴影效果
<Popup> <Border x:Name="main" Margin="5" CornerRadius="4"> <Border.Effect> <DropShadowEffect BlurRadius="5" ShadowDepth="0" Co...
2021-08-31 19:26:23
348
原创 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
556
原创 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
840
转载 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
5589
原创 SQLite日期修改
在原来的时间上加上一定时间:update CollectData set CollectTime=datetime(CollectTime,'+21 year', '+7 day', '+11 hour')
2021-01-12 14:31:37
1169
原创 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
2221
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
1125
原创 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
185
原创 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
404
原创 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
510
原创 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
1867
1
原创 WPF中使用Slider让LostFocus与PropertyChanged兼得
TextBox控件获得焦点后,一般点击空白处还是会保留焦点的,如果在外层套一个ScrollViewer,则点击空白处会失焦;类似NumericUpDown的控件,默认的UpdateSourceTrigger方式为LostFocus,长按NumericUpDown的增减按钮,中间的变化过程不会触发更新,若修改为PropertyChanged方式触发,则无法手修改输入框内的值,两者不可兼得;可以利用Slider控件作为中间人,实现PropertyChanged的触发,TextBox的Text绑定Slid
2020-06-05 16:38:11
570
原创 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
537
原创 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
437
转载 WPF DataGrid中列的属性绑定问题
WPF中的DataGrid中Column的IsReadOnly和VIsibility等属性绑定时,总没有任何效果,输出里也显示找不到,搜了半天才发现,原来Column不属于visual 或 logical tree,所以不能在树上搜索他的绑定源,需要借助其他方法给属性指定数据源,方法如下:原文地址:https://stackoverflow.com/questions/15494226/can
2017-09-02 15:50:44
2756
原创 WPF利用委托与事件实现VM对View中控件的调用
WPF结合MVVM模式,可以实现界面与代码的完全分离,非常便于开发与维护,但对于某些特定需求,例如TextBox需要Focus获得光标,或者全选其中的文本,这时候就比较难了,因为VM中完全拿不到控件对象,也很难调用Focus()与SelectAll()方法,但也不是完全不可以,有一种利用委托与事件实现的方法,不知道是否有背MVVM分离思想,具体方法如下:View.xaml:View.x
2017-08-31 14:16:22
2688
原创 ListView与SimpleCursorAdapter实现视频列表
新手试验品 之前用过自定义BaseAdapter,数据为静态的,不能及时随着系统数据更新,查了资料才知道应该用CursorAdapter。 以下实现的视频列表,会显示视频的缩略图、标题、时长和大小;单击Item会启动另一个Activity进行播放,长按Item会出现CheckBox和编辑功能布局,并有一个反选功能。 视频的缩略图加载使用缓存和延迟加载,是借鉴的
2015-09-29 12:11:40
589
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人