C# 接口和抽象类的区别和使用场合(知识要点归纳总结)

C# 接口和抽象类的区别和使用场合(知识要点归纳总结) 接口和抽象类的异同 相同点 二者都不能实例化; 二者都通过继承实现中的重写(override)实现抽象方法; 二者都是OOP的基础,实现各种设计模式。 不同点 接口支持多实现,而抽象类和具体类一样只能单一继承; 接口只能定义抽象的方法,而抽象类除此以外可以定义具体方法; 结构体能实现接口而不能继承抽象类; 使用场合 如果预计要创建组
阅读本文

ICommand

ICommand 公开两个方法(Execute 及 CanExecute)和一个事件(CanExecuteChanged)。      bool CanExecute(object parameter) - 当前命令是否可以执行。      void Execute(object parameter) - 当前命令被执行时,所调用的方法。      event EventHandler
阅读本文

水印的实现代码

文字水印文字水印就是在图片上加上文字,主要使用gd库的imagefttext方法,并且需要字体文件。效果图如下: 实现代码如下:复制代码 代码如下: $dst_path = ‘dst.jpg‘; //创建图片的实例 $dst = imagecreatefromstring(file_get_contents($dst_path)); //打上文字 $font = ‘./simsun.tt
阅读本文

在 Windows Forms 和 WPF 应用中使用 FontAwesome 图标

前言FontAwesome 大家都不陌生,精美的图标,出现在各式各样的网页中。 最近在做 Windows Forms 应用程序,要求美观,就想能不能把 FontAwesome本人已经将 FontAwesome 进行了封装,并上传到了 GitHub 和 NuGet。GitHub:https://github.com/seayxu/FontAwesome码云:http://git.oschina.ne
阅读本文

微信公众号反向代理下的配置

原来做微信公众号开发的时候都没有考虑这个问题,因为公司平台主要是公网,都是有域名支持的,但在央企部署私有云的时候就遇到了这个方向问题。解决这个问题的步骤:1)对于微信访问的域名地址进行参数化;(为了兼容)      需要分清调用方:客户(服务器返回重定向),内网服务器调用,腾讯回调;2)消息代理      内网程序很多的情况下,不可能每台服务器都去配成微信模式,所以很多东西就需要进行内网代理,比如
阅读本文

WPF翻转动画

在WPF中要翻转对象,估计是得用三维变换,所以我用到了AxisAngleRotation3D,让图形绕着Z轴来旋转。先看看效果。 是的,就是这样的效果,在XAML中,由于涉及三维图形,我先做了两个用户控件,作为正面和背面,然后让它旋转。设计完用户控件后,就在主窗口上放一个Viewport3D控件,这个是必须的,它是三维模型的容器,如果不用就不知道怎么弄出三维图形来了。具体请看下面的XAML:<Wi
阅读本文

WPF中控制窗口显示位置的三种方式

1、在屏幕中间显示,设置window.WindowStartupLocation = WindowStartupLocation.CenterScreen; private void button1_Click(object sender, RoutedEventArgs e) { TestWindow window = new TestWindow(); window.WindowS
阅读本文

关于initializecomponent 不存在的问题

创建新的WPF项目时,修改了MainWindow.xaml.cs的namespace,结果运行出现“不存在initializecomponent”的错误。通过研究调查,错误的原因是因为修改后与MainWindow.xaml的x:Class不一致。x:class的值由两部分组成: “类所在namespace.类名“, 如下例所示Window x:Class=“MVVM_Binding_ViewMod
阅读本文

WPF-设置窗体的DataContext

1. 窗体的XAML设置DataContextview 1 <Window x:Class=“MVVM_Binding_ViewModelMainWindow“ 2 xmlns=“http://schemas.microsoft.com/winfx/2006/xaml/presentation“ 3 xmlns:x=“http://schemas.microso
阅读本文

读书笔记:《清醒思考的艺术》(1)

读书笔记:《清醒思考的艺术》0、全书总结:让自己清醒的提问看全面:这是全部的事实么?还是部分事实?看概率:这是高比例或高概率的事实么?还是小比例或低概率事实?看因果:这事实能说明A-->B么?还是反而是B-->A?1、幸存者偏见【问答】问:为什么你该逛逛墓地?答:让你看清“幸存者”之外,还有更多得多的“遇难者”。【定义】幸存者偏见:由于日常生活中更容易看到成功,人们会系统性地高估成功的希望。【思考
阅读本文

WPF中常用的Window事件

https://msdn.microsoft.com/en-us/library/system.windows.window.statechanged(v=vs.110).aspx1. Activated获得焦点事件 和 Deactivated失去焦点的事件:     Activated: 获得焦点 (首次打开软件时;由别的软件切换回当前软件时;点击当前软件在任务栏的按钮时)     Deacti
阅读本文

WPF-数据绑定:日期时间格式

这次更新个完整的DateTime绑定后自定义格式的例子。我刚才遇到的问题是绑定完之后,星期始终显示为英文。需要一个属性ConverterCulture制定区域。如下:{Binding datetime,StringFormat=‘{}{0:yyyy年MM月dd日 dddd HH:mm:ss}’,ConverterCulture=zh-CN} 指定ConverterCulture为zh-CN后星期就
阅读本文

[WPF]静态资源(StaticResource)和动态资源(DynamicResource)

一、文章概述本演示介绍了WPF的静态资源和动态资源的基本使用,并对两者做了简单的比较。静态资源( StaticResource )指的是在程序载入内存时对资源的一次性使用,之后就不再访问这个资源了;动态资源(DynamicResource)使用指的是在程序运行过程中然会去访问资源。二、定义并使用资源<Window x:Class=“Demo010.MainWindow“ xmlns=“ht
阅读本文

C# windows服务的创建与调试

一、创建一个Windows Service1)创建Windows Service项目2)对Service重命名将Service1重命名为你服务名称,这里我们命名为ServiceTest。二、创建服务安装程序1)添加安装程序 之后我们可以看到上图,自动为我们创建了ProjectInstaller.cs以及2个安装的组件。2)修改安装服务名右键serviceInsraller1,选择属性,将Servi
阅读本文

memcache实现session共享

session的本质:http协议是无状态的,即你连续访问某个网页100次和访问1次对服务器来说是没有区别对待的,因为它记不住你。因此,在某些为了让服务器记住或者认识你的情况下,该怎么办呢?为了解决这个问题,session就诞生了。session共享:为什么要session共享呢?如果你的网站是存放在一个机器上,那么是不存在这个问题的,因为会话数据就在这台机器,用户每次请求的都是这台机器,但是,当
阅读本文

利刃 MVVMLight 2:Model、View、ViewModel结构以及全局视图模型注入器的说明

上一篇我们已经介绍了如何使用NuGet把MVVMLight应用到我们的WPF项目中。这篇我们来了解下一个基本的MVVMLight框架所必须的结构和运行模式。MVVMLight安装之后,我们可以看到简易的框架布局,如上篇,生成了一个ViewModel文件夹,ViewModel层的内容都放在这边,除了Main对象的ViewModel之外,还包含一个ViewModelLocator文件,用来注
阅读本文

控制easyui datagrid 显示和隐藏的正确方法

定义id为dg的datagrid。 <table id=“dg“ class=“easyui-datagrid“></table> 使用下面的代码实现隐藏/显示datagrid控件,并不能达到预期效果。 $(“#dg“).hide(); $(“#dg“).show(); 正确的做法是将datagrid控件置于div内部,再控制div的隐藏/显示即可。 <div id=“div-dg“><table
阅读本文

js事件绑定

1、在dom对象中直接绑定 dom元素一般都具有名称类似onXXX的事件,直接将方法绑定到事件即可。 <input onclick=“funAlert()“ type=“button“ value=“确定“ /> <script type=“text/javascript“> function funAlert(){ alert(“谢谢支持“); } </script> 2、在js
阅读本文