【C#】获取任意文件的缩略图

1.添加类WindowsThumbnailProvider[Flags] public enum ThumbnailOptions { None = 0x00, BiggerSizeOk = 0x01, InMemoryOnly = 0x02, IconOnly = 0x04, ThumbnailOnly =...
阅读(375) 评论(3)

【C#】WixToolset快速入门教程

介绍给windows系统做软件,常见的打包工具大家可能都听说过,如:大名鼎鼎的Installshield、Inno setup等。在遇见Wix之前InstallShield时我的主力打包工具,操作简单方便项目使用到的dll文件会自动添加,多语言支持也很好,不过不好的是免费版的功能就那几样,越来越无法满足自己的要求。后来就尝试了下Inno setup,这个是用脚本进行配置并生成安装包的,简单尝试之后发...
阅读(422) 评论(0)

【C#】解决MouseHook捕获鼠标动作,在有些电脑上SetWindowsHookEx失败返回0的问题

最近在debug鼠标位置捕获的功能时发现在其中的一台开发电脑上,SetWindowsHookEx一直返回0,导致Hook设置失败,有时候调成Release模式又是正常的。代码如下:hMouseHook = SetWindowsHookEx(WH_MOUSE_LL, MouseHookProcedure,Marshal.GetHINSTANCE(System.Reflection.Assembly.G...
阅读(411) 评论(0)

【WPF】右下角弹出自定义通知样式(Notification)——简单教程

1.先看效果2.实现1.主界面是MainWindow上面就只摆放一个Button即可。在Button的点击事件中需要new一个弹出的NotificationWindow。代码如下: public static List _dialogs = new List(); int i = 0; private void Bu...
阅读(1094) 评论(2)

【C#】简单解决PathTooLong的Exception

前提windows系统路径的最大长度限制是260个字符(听说.Net 4.6.2,取消了这个限制),而Linux或者Unix系统的好像是4K个字符。所以如果一个文件夹由Linux系统创建,然后由windows系统读取处理的话,就会出现PathTooLong的异常。解决方法其实很简单 在VS中添加如下Nuget包: 在用到的地方把系统的File和Directory替换为LongPathFile和Lon...
阅读(337) 评论(0)

【C#】wpf自定义calendar日期选择控件的样式

首先上图看下样式 原理 总览 ItemsControl内容的生成 实现 界面的实现 后台ViewModel的实现首先上图,看下样式 原理1. 总览:Calendar本质上是一个6x7的列表,这个列表可以用ItesControl来实现。其填充的每一个item都是一个自定义样式的Button,Button外面是一个圆形的border。根据Button按钮的IsEnabled状态,设置foregroun...
阅读(1340) 评论(5)

【C#】wpf添加gif动图支持

1.nuget里下载WpfAnimatedGif包,然后安装。 2.添加WpfAnimatedGif包的命名空间:xmlns:gif="http://wpfanimatedgif.codeplex.com" 3.开始使用: 这段代码只是个示例,主要的就是把AnimatedSource设置为你的gif动画即可。 总的代码: <Page x:Class="Omni.To...
阅读(964) 评论(4)

【C#】WindowsAPICodePack-Shell使用教程

1.首先在项目中添加WindowsAPICodePack的Nuget包。 点击安装即可。 2.获取《我的电脑》的名字和电脑图标 ShellObject so = ShellFileSystemFolder.FromParsingName(KnownFolders.Computer.ParsingName); displayName = so.Name; Bitmap bm = so.Thumbnail.SmallBitmap;...
阅读(541) 评论(0)

[置顶] 【WPF】wpf笔记本

1.对于ListView、ListBox等这些派生自ItemsControl的类,它们的子item的button之类的控件如何绑定到父page或者父window的ViewModel上? 2.ListBox中的Item当被遮挡了一部分时,点击此item后会先把位置往上移,再次点击才执行相应操作,会让用户误以为一次点击没有效果,需要点击两次。...
阅读(311) 评论(0)

【C#】wpf查找父子节点

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Media; namespace TestSeagate.Common { ...
阅读(416) 评论(0)

【C#】获取"我的电脑"的名字,如This PC、这台计算机

注意:这里获取的我的电脑的名字,不是机器的名字。如图所示: 1.定义ShellAPI类 public static class ShellAPI { public const int MAX_PATH = 260; public const uint CMD_FIRST = 1; public const uint CMD_L...
阅读(615) 评论(0)

【C#】WPF的xaml中定义的Trigger为什么有时候会不管用,如Border的MouseOver之类的

初学WPF,知道一些控件,可以通过定义Style的Trigger改变要显示的样式,但是经常遇到一些明明Trigger已经触发了,但是里面Setter设置的样式,却没有效果的问题。其实主要原因,是样式重复定义导致的。 举个例子:...
阅读(404) 评论(0)

【VS】vs2012解决nuget下载太慢的问题

众所周知,由于网络的原因,国内访问nuget服务器一直都很慢。而我们经常使用的nuget 包可能会有几十M的大小,不挂vpn的话,下一天可能都下载不下来,现在就给大家一个下载nuget离线包的方法。以vs2012为例: 1.打开nuge官网:https://www.nuget.org 比如我想下载cefsharp这个包,就先搜索,然后出现搜索结果之后。 点击左边的“Download”...
阅读(4430) 评论(3)

【C#】对“xxxx::Invoke”类型的已垃圾回收委托进行了回调。这可能会导致应用程序崩溃、损坏和数据丢失。向非托管代码传递委托时,托管应用程序必须让这些委托保持活动状态,直到确信不会再次调用。

最近在做项目的时候,出现了几次“对“xxxx::Invoke”类型的已垃圾回收委托进行了回调。这可能会导致应用程序崩溃、损坏和数据丢失。向非托管代码传递委托时,托管应用程序必须让这些委托保持活动状态,直到确信不会再次调用它们。”异常。这种错误,一般出现在托管代码调用非托管代码的过程中,如C#程序要调用c++的某个函数,而这个函数正好有个callback函数。当C#调用完之后,GC有可能会把这个cal...
阅读(1557) 评论(0)

【C#】VS2012+InstallShield2013制作软件更新包

上篇文章介绍了如何使用installshield制作软件的安装包,见地址: 这次来介绍一下,当软件有更新时,如何制作一个更新包,自动删除旧软件,安装新软件。 首先打开你的安装部署项目,我的是Setup1.的General Information文件,如我左边圈住的有三个重要的项。 Product Version:你本次产品的版本号,每次发布新产品,这个的Version号,要增加一下。我上次的...
阅读(875) 评论(0)
38条 共3页1 2 3 下一页 尾页
    个人资料
    • 访问:160952次
    • 积分:2327
    • 等级:
    • 排名:第17670名
    • 原创:87篇
    • 转载:18篇
    • 译文:1篇
    • 评论:30条
    文章分类
    最新评论