C#
魏无忌
Revit二次开发
展开
-
C#,C++ 混编
C#.C++原创 2022-12-15 16:19:29 · 373 阅读 · 1 评论 -
net hook 研究
要涉及一些反汇编的知识,作者也不是很懂,可以提供一些思路 public class Test { public void Test1() { Console.WriteLine("test1"); } } class Program { static void Main(string[] args) { var obj = new Te...原创 2020-11-18 11:28:30 · 413 阅读 · 0 评论 -
C# 泛型弱事件管理器
,net 4.5 为弱事件提供了新的实现。泛型类 WeakEventManager,它派生自基类WeakEventManager,大大的简化了弱事件的处理 static void Main(string[] args) { CarDealer dealer = new CarDealer(); Consum原创 2017-05-27 21:03:47 · 1224 阅读 · 0 评论 -
WPF 依赖属性
WPF 的ListBox 可以绑定SelectedItem但是不可以绑定SelectedItems不能绑定,这就有点烦了。所以可以自定义一个依赖属性来绑定:首先定义个TListBox类来代替ListBox public class TListBox:ListBox { public static readonly DependencyProperty原创 2017-05-29 13:34:30 · 798 阅读 · 0 评论 -
WPF 给控件添加可以绑定的命令
在WPF里的Button有一个可以绑定的Command的属性,只要绑定好这个属性以后,只要你ClickButton就会运行这个命令,但这时我们可以考虑一下这个问题,为什么是Click来触发呢?为什么不是右键单击来触发呢,下面研究一下,怎么能写一个右键单机能触发的命令:首先现有的Button肯定是不行了,所以自己写一个TButton ,它继承自Button public cla原创 2017-05-29 20:31:50 · 2928 阅读 · 2 评论 -
C#键盘钩子
http://www.pinvoke.net/default.aspx HookProc hookProc = null; IntPtr hookValue = IntPtr.Zero; const int WM_CLICK = 0x00F5; public Form1() {原创 2017-04-22 12:45:03 · 792 阅读 · 0 评论 -
WPF使用其他dll里的样式
在WPF里可以将Style写到其他dll里使用的时候可以在Window的Resouces里写: 也可以这样写:原创 2017-05-22 21:29:55 · 3574 阅读 · 0 评论 -
C# 初探UI Automation
最近研究自动化测试,看了一下UI Automation的微软例子,表示太老了,遇到各种问题,UI Spy 好像已经被放弃了,可以用inspect.exe来代替,win10 的路径为:"C:\Program Files (x86)\Windows Kits\8.1\bin\x64\inspect.exe"这个用来查询automationId,官网是以计算器例子,下面是在win10 修改后原创 2017-06-18 16:45:44 · 11550 阅读 · 2 评论 -
WPF DataContent内存释放问题
最近发现一个有趣的事,通过Window.dataContent来设置绑定以后,窗体关闭以后 ViewModel 并没有释放,再次调用改窗体后,前一个ViewModel才释放,或者是程序关闭以后才释放 ,搞不懂。。。如果要马上释放ViewModel可以在Window关闭以后将DataContent 设置为null ,这样ViewModel是可以释放的下面是测试代码,大神请指教!原创 2017-06-09 22:37:58 · 1716 阅读 · 0 评论 -
C# 反射性能
C# 创建对象可以直接用new,也可以用反射,下面测试一下反射创建的性能如何,这里可以比较一下,构造方法带参数和不带参数的区别。先创建一个测试类,分为构造函数带参数和不带参数,两种情况来测试 public class Test { public string Name { get; set; } public string Id {原创 2017-06-12 21:22:54 · 2652 阅读 · 0 评论 -
C# 动态生成程序集
假设有一个ITest接口,它有两个实现分别是TestClass1,和TestClass2,这时候如果需要一个TestClass4类但是现有程序里又没有这个类,就可以在运行时生成一个这样的类这个应该是可以用来实现AOP, public interface ITest { void Run(); } public class T原创 2017-09-26 17:58:14 · 1548 阅读 · 0 评论 -
研究下WPF 数据binding 原理
测试相关类 public class HostTest { public string Value{get; set;} public string Value1 {get ;set ;} } public class Test { private string _value = null; ...原创 2019-01-23 16:36:56 · 1188 阅读 · 0 评论 -
HttpWebRequest&&multipart/form-data
class Program { static void Main(string[] args) { HttpWebRequest request = WebRequest.CreateHttp("********"); request.Method = WebRequestMethods.Http.P...原创 2019-06-03 16:59:19 · 1685 阅读 · 0 评论 -
Newtonsoft.Json 自定义序列化字段
class Program { static void Main(string[] args) { var m = new JsonModel() { Id = 0, Name = "nnnn" }; ...原创 2019-07-01 15:49:54 · 3085 阅读 · 0 评论 -
C# 弱事件
先看一个普通事件例子: class Program { static void Main(string[] args) { CarDealer dealer = new CarDealer(); Consumer micheal = new Consumer("Micheal");原创 2017-05-26 23:10:27 · 798 阅读 · 0 评论 -
ICommand接口
// 摘要: // Defines a command. public interface ICommand { // // 摘要: // Occurs when changes occur that affect whether or not the command should execute.原创 2017-05-26 20:44:46 · 1402 阅读 · 0 评论 -
WPF 通过行为将事件绑定到命令
dll:Microsoft.Expression.Interactions.dll System.Windows.Interactivity.dll原创 2016-11-30 20:29:45 · 4051 阅读 · 0 评论 -
通过应用程序域加载和卸载dll
// 窗体 public partial class MainWindow : Window { string dllpath = @"D:\vs\AppDomainTest\TestDll\bin\Debug\TestDll.dll"; public MainWindow() { Initiali原创 2016-12-01 22:05:04 · 1070 阅读 · 1 评论 -
WPF通过异常来验证用户输入
在WPF中使用数据绑定,如果用户输入和绑定类型转换失败,控件就会显示出现错误的模板,比如一个Textbox绑定到一个int 属性,如果用户输入一个string,那这个textbox就会显示错误模板,一般会是在TextBox外显示红线,当然这个模板也可以自己设置。那如果这个界面有一个确定Button,我想实现TextBox里输入非数字和数字值小于0时Button都不可用,那该怎么实现呢?原创 2017-03-11 12:38:46 · 1237 阅读 · 0 评论 -
WPF 使用INotifyDataErrorInfo小例子
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008"原创 2017-04-28 21:14:28 · 2313 阅读 · 0 评论 -
WPF 使用net 资源多语言
在WPF 用。net资源做多语言话的话,如果不要求动态切换可以在Xaml里直接使用Resource,在使用之前设置一下CultureInfo就可以了如: public MainWindow() { Res.Culture = CultureInfo.GetCultureInfo("en-US"); Init原创 2017-04-19 18:04:39 · 897 阅读 · 0 评论 -
C# 读取config文件
static void Main(string[] args) { //读取当前exe的config:App.config//读取appSettings节点里的数据 NameValueCollection nameValues = ConfigurationManager.AppSettings; s原创 2017-05-04 17:20:08 · 3397 阅读 · 0 评论 -
C#DynamicObject和ExpandoObject
class Program { static void Main(string[] args) { //dynamic v = new ExpandoObject(); //v.Name = "123"; //v.Value = "456"; dyn原创 2017-04-22 21:55:58 · 1023 阅读 · 0 评论 -
C# 通过MVVMLight探索IOC
使用MVVMlight创建一个项目以后,MainViewModel的构造函数是这样的: public MainViewModel(IDataService dataService) { _dataService = dataService; _dataService.GetData(原创 2017-05-13 14:48:31 · 2734 阅读 · 0 评论 -
MVVMLight的Messenger
MvvmLight里的Messenger的注册方法有一个是这样的: // // 摘要: // Registers a recipient for a type of message TMessage. The action parameter will // be executed when a corresp原创 2017-05-14 12:32:52 · 728 阅读 · 0 评论 -
C# 使用弱引用释放静态资源
class Program { static void Main(string[] args) { TestClass.Defalut.i = 5; //输出5 Console.WriteLine(TestClass.Defalut.i); GC.C原创 2017-05-25 14:04:25 · 1862 阅读 · 0 评论 -
WPF 模板选择器
选择器: public class MyTemplateSelector:DataTemplateSelector { public DataTemplate DefaultTemplate { get; set; } public DataTempl原创 2017-05-25 22:08:14 · 1657 阅读 · 0 评论 -
WPF 设置快捷键
在WPF里可以通过InputBindings来设置快捷键 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schem原创 2017-05-07 14:35:14 · 1926 阅读 · 0 评论 -
C# udp小程序
学习udp,写个小聊天程序,供以后查看使用了MVVMLight /// /// This class contains properties that the main View can data bind to. /// /// See http://www.mvvmlight.net /// /// public原创 2017-05-07 17:20:37 · 517 阅读 · 0 评论 -
WPF 多绑定和转化器
将两个 textBox 的Text属性绑定到 Button的IsEnabled如果text为空则Button不可用 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/x原创 2016-11-04 13:15:57 · 2112 阅读 · 0 评论