WPF 语言格式化文本控件

前言 本章讲述正确添加语言资源的方式,以及一段语言资源的多种样式显示。 例如:“@Winter,你好!感谢已使用软件 800 天!” 在添加如上多语言资源项时,“XX,你好!感谢已使用软件 X 天!” 那么,你是怎么添加语言资源的呢? 分别添加,“,你好!”、“感谢已使用软件”、“年”3个,再通过界 ... »

【我们一起写框架】MVVM的WPF框架(三)—数据控件

这世上,没人能一次性写出完美无缺的框架;因为,任何一个框架都需要项目的淬炼,然后才能升华,趋近完美。 所以,框架是个反复修改的东西,最终形成的东西。 如果你学了一点技术,觉得自己可以写出框架了,觉得自己有架构师的能力,然而自己总是怀才不遇——那一定是你的错觉。 因为,你框架没有经过项目淬炼;而淬炼过 ... »

WPF 控件库——可拖动选项卡的TabControl

一、先看看效果 二、原理 1、选项卡大小和位置 这次给大家介绍的控件是比较常用的TabControl,网上常见的TabControl样式有很多,其中一部分也支持拖动选项卡,但是带动画效果的很少见。这也是有原因的,因为想要做一个不失原有功能,还需要添加动画效果的控件可不是一行代码的事。要做成上图中的效 ... »

【我们一起写框架】MVVM的WPF框架之绑定(二)

MVVM的特点之一是实现数据同步,即,前台页面修改了数据,后台的数据会同步更新。 上一篇我们已经一起编写了框架的基础结构,并且实现了ViewModel反向控制Xaml窗体。 那么现在就要开始实现数据同步了。 DataContext—数据上下文 在实现数据同步前,我们要了解一个知识点——DataCon ... »

自定义WPF窗体形状

你好WPF爱好者。 随着WPF等统一API语言的发明,丰富用户界面变得非常容易。 创建丰富的用户界面只是一个想法。 您需要拥有的是创造性思维和最新技术融合。 WPF和Expression Blend在制作丰富的UI应用程序,清晰的图形和非常好的动画方面非常有用。 ... »

WPF 控件库——带有惯性的ScrollViewer

一、先看看效果 二、原理 虽然效果很简单,但是网上的一些资料涉及的代码量非常可观,而且效果也不是很理想,滚动的时候没有一个顺滑感。我这里提供的源码一共120多行,就能实现上图的效果。 本质上我们只要接管ScrollViewer的滚动逻辑,并且把这个逻辑替换成带有惯性的即可,那么如何去接管呢?这里的关 ... »

【我们一起写框架】MVVM的WPF框架之序篇(一)

前言 我想,有一部分程序员应该是在二三线城市的,虽然不知道占比,但想来应该不在少数。 我是这部分人群中的一份子。 我们这群人,面对的客户,大多是国内中小企业,或者政府的小部门。这类客户的特点是,资金有限,人力有限。 什么意思呢?就是你如果敢给他安一台Linux服务器,客户的信息员和测试员会把你堵在墙 ... »

C# WPF 通过委托实现多窗口间的传值

在使用WPF开发的时候就不免会遇到需要两个窗口间进行传值操作,当然多窗口间传值的方法有很多种,本文介绍的是使用委托实现多窗口间的传值。 在上代码之前呢,先简单介绍一下什么是C#中的委托(如果只想了解如何传值可以略过这部分)在网络上有很多对于委托的介绍和讲解,经过我的学习和总结加上了一点我自己的理解, ... »

WPF实现主题更换的简单DEMO

WPF实现主题更换的简单DEMO 实现主题更换功能主要是三个知识点: 1. 动态资源 ( DynamicResource ) 2. INotifyPropertyChanged 接口 3. 界面元素与数据模型的绑定 ( MVVM 中的 ViewModel ) Demo 代码地址: "" 下面开门见山 ... »

WPF 控件库——轮播控件

一、要做成什么样 bs端的轮播控件千千万,有的甚至能作为一个单独的库来开发,所涉及到的功能也是缤纷多彩。相对来说,cs端的轮播用得不多,我这里只是简单的做了个能满足一般需求的轮播,在项目中凑会凑会还是可以的。先给两张图,看看最后的效果: 如图,整个结构就是左右箭头、底部小点以及内同三大部分。虽然是简 ... »

C# WPF 父控件通过使用可视化树找到子控件

在我们使用WPF设计前台界面时,经常会重写数据模板,或者把控件放到数据模板里。但是一旦将控件放到数据模板中,在后台就没有办法通过控件的名字来获取它了,更没办法对它进行操作(例如,隐藏,改变控件的某个值)。 如果你是比我还白的小白,对我刚刚陈述的东西不清楚,接下来我简单说一下什么是把控件放在数据模板中 ... »

造轮子,模仿WPF的UI框架,还没完善。。。

Wtf(暂时命名,随便起的 = _=),模仿WPF的框架,还没有完善,只有简单的基础元素,支持数据绑定。虽然支持mono但是mono有bug 写这个只是兴趣爱好,感觉也没多大意义了,如果这个UI框架完善了,有多少人愿意用?毕竟Windows上有WPF,而且C#跨平台需求也不多啊。我对WPF也不算熟悉 ... »

WPF 开源项目 【watcher】 守望者,一款监控,统计,分析你每天在自己电脑上究竟干了什么的软件

时隔多年(两年),天天沉迷写PHP的我在连续加薪了逐渐发现自己不怎么写代码了。 甚至有一天我发现我连IDE 都没有打开,实在是太堕落了 为了及时悬崖勒马,回头是岸。为了鼓励自己专心写代码,我决定写一款监控自己每天究竟在干嘛的软件。 于是,我重新拾起荒废已久的WPF , 重新打开vs的那一刻,宇宙第一 ... »

WPF线程中获取控件的值和给控件赋值

WPF中使用线程操作控件,按平常的操作方法操作的话会报异常:调用线程无法访问此对象,因为另一个线程拥有该对象。所以我们要使用Dispatcher类的BeginInvoke()与Invoke()方法。BeginInvoke()异步执行,不等待委托结束就更新,Invoke()同步执行,需等待委托执行完。 ... »

WPF 控件库——仿制Windows10的进度条

一、其实有现成的 先来看看Windows10进度条的两种模式: 网上有不少介绍仿制Windows10进度条的文章,也都实现了不错的效果。而我再开一文的原因是觉得如果在这基础上添加一些功能,比如圆点的数量,圆点的大小等等,效果可能会更好一些。接触过UWP的朋友应该知道,其框架中自带了进度条控件,以 P ... »

WPF仿网易云音乐系列(一、歌单创建窗口+登录设置模块)

老衲牺牲午休时间写博客,都快把自己感动了,-_-!! 之前上一篇随笔,我看了下评论,有部分人说WPF已经凉凉了,这个我觉得,这只是一个达到自己目的的工具而已,只要自己能用这个工具,得心应手的做出自己想要的东西就行,关心工具本身凉了没,个人觉得没啥意义;另外,我一个做Java的都没泼凉水,你.Net自 ... »

WPF仿网易云音乐系列(一、左侧菜单栏:Expander+RadioButton)

1.简介 上一篇咱们说到,网易云音乐的左侧菜单栏可以通过Expander+RadioButton来实现,具体如何实现,咱们下面开始干; 首先来一张网易云音乐PC版原图(个人觉得PC版比UWP版左侧菜单好看点): 然后当然是再上以下咱们做出的效果图了: 还原度百分之百有没有。。。 2.上硬菜 首先是无 ... »

WPF仿网易云音乐系列(序)

1.简介 由于之前做了一个播放器,苦于不懂界面设计,只得去借鉴借鉴一些成功的作品,网易云音乐就甚合朕心,哈哈,最后做出来的效果如下: 你们看我屌不。。呸。不给你们看。。 好了,不开玩笑了,本系列文章就来和大家讨论以下,如何用WPF去仿制一个网易云音乐来; 二.容器分析 咱们先不管网易云自己是咋实现的 ... »

说说WPF的依赖属性

首先,我们先来大概了解一下依赖属性 什么是依赖属性:依赖属性自己没有值,通过依赖别人(如Binding)来获得值。 依赖属性为什么会出现:控件常用字段有限,包装太多属性会占用过高内存,造成浪费。所以用依赖属性,用不着就不用,用得着就用。 怎么声明依赖属性:用public static readonl ... »

如何将Skyline66嵌入WPF中

1.新建WPF项目; 2.添加引用 .net引用:System.Windows.Forms和WindowsFormsIntegration skyline引用:AxInterop.TerraExplorerX和TerraExplorerX 3.代码如下: /// <summary> /// Main ... »