C#

技术

【WPF学习日记】SnapsToDevicePixels属性

今天在给ListBoxItem添加Border的时候,发现BorderThickness = 1时,出现了意料之外的问题。 我给每个ListBoxItem的Border设置为,上、左、右的厚度为0,下方的厚度为1,这样的效果是把ListBoxItem分隔开来,但是我发现他们之间的分割线,居然不一样厚,有点模糊,不是点阵的线,而是有那种抗锯齿的感觉,很不爽。 后来发现Border有SnapsToDevicePixels 这么个属性,看名字感觉或许有效果,把它打勾之后,发现果然问题解决了。它的作用是使像素与显示器对齐,我的理解就是点阵效果。 by HADB 2012-12-29 晚

技术

静态成员初始化异常的解决办法

今天遇到了这样一个问题,在调用某个类的静态方法时,产生了这样一个异常“未处理TypeInitializationException “XXXXX”的类型初始值设定项引发异常。”然而,这个方法我是做了异常处理的,可就是无法捕获到这个异常的位置。后来发现,是由于这个类里的静态成员初始化产生了异常,这个要如何解决呢? 我们可以利用静态构造函数来解决这个问题,静态构造函数和实例构造函数之间的区别在于静态构造函数是由CLR调用执行的,所以静态构造函数只能是一个,同时不能有参数。 使用方法如下: public class Command { private static SimpleDatabase simpleDatabase; static Command() //前面不能有修饰符 { try { simpleDatabase = new SimpleDatabase("settings.db", "mima"); } catch { /

技术

未能加载文件或程序集“XXXXXXX”或它的某一个依赖项。试图加载格式不正确的程序的解决方法

好久没有写博客了。 这个问题之前遇到过一次,但是当时没有记下来,导致今天遇到这个问题的时候,我已经想不起来是什么原因了,又花了好长时间搜索、查找,才终于解决,所以我决定把它记下来。 无法加载文件或程序集,可能有多种原因,网上多数是因为DLL没有复制到bin文件夹下,或者程序集名称不一致等等,但这些并不是我的项目里所发生的。 我的问题其实是这样的,我的A项目引用了我自己写的一个类库B,B里面引用了一个DLL,但是这个DLL的目标平台是x86,而我的A项目的目标平台是Any CPU,导致无法运行,所以只需要把A项目的目标平台修改为x86,就OK了。至于类库B,还是默认的Any CPU,好像也没有什么问题。 by 邓斌HADB 2012-11-30下午于宿舍

技术

关于sqlite error no such table错误的解决办法

今天开始尝试为“星际2客户端切换器”添加Win7下的JumpList功能,如图: 这样可以在任务栏和开始菜单中快速启动相应的客户端,而不需要启动软件。 在测试过程中遇到一个错误,sqlite error no such table… ,百思不得其解,一直以为是由于JumpList在未启动程序的情况下调用程序内的方法导致数据库没有加载的问题,但后来始终没有弄明白,一直在搜索关于JumpList调用的问题。后来干脆直接搜 sqlite error no such table的错误原因,才发现问题所在。我的数据库调用使用的是相对地址: SQLiteConnection conn = new SQLiteConnection("Data Source = settings.db;"); 在直接打开软件是没有任何问题的,但是通过JumpList调用的话,我怀疑启动的位置不一样,所以导致找不到数据库,于是换成: SQLiteConnection conn = new SQLiteConnection(@"Data Source =" + System.Windows.Forms

技术

C#获取指定网卡的ip地址

最近几天都在玩游戏,没怎么编程,感觉好空虚啊!主要是之前在Android上建立wifi热点出现了一些问题,难以进展下去,于是便耽搁了,今天决定先跳过那个问题,Android手机之间的传输先暂时不考虑,先做一下Android与PC之间的数据传输。 刚刚主要完成了这么一件事情,根据指定的网卡获取其ip,以便之后的socket使用。 会出现这个问题是因为我是利用Win7的netsh功能建立的虚拟网卡,它与其它网卡可以同时存在,这就意味着这台主机可能拥有多个ip地址,然而我们需要的只是我们建立的虚拟网卡的那个ip地址,实现方法如下: NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();//获取本机所有网卡对象 foreach (NetworkInterface adapter in adapters) { if (adapter.Description.Contains("Virtual"))//枚举条件:描述中包含"Virtual" { IPInterfaceP