WPF 扩展玻璃效果(Aero Glass)
Windows 7 操作系统默认具有一款玻璃效果主题(Aero Glass)。如果选择了该款主题,所有的应用程序标题栏都会处于玻璃透明效果(如下图)。这个功能是由Desktop Window Manager(DWM)服务支持的。
默认情况下,我们编写的应用程序在Windows 7 中也只有标题栏和窗口框架会具备玻璃效果,其他区域仍是不透明状态(如下图)。如果想将程序整体都改为上图IE 窗口的
http://www.cyqdata.cn/cnblogs/article-detail-36613
WPF MeasureOverride And ArrangeOverride
在UIElement布局的时候,我们要知道父窗体或父控件要给子控件分配多少空间,换句话说子控件需要父控件提供多少空间给它。
这些步骤在什么时候发生呢?
这些过程来自UIElement的Measure 和Arrange,所以我们来重写这两个方法。看看里面到底做了些什么。
父MeasureOverride 和ArrangeOverride
Measure(测量),此方法实现:父元素从其自身的 Meas
http://www.cyqdata.cn/cnblogs/article-detail-36584
增加智能感知的RichTextBox扩展控件(WPF)
简介
闲来无事,写篇博客打发时间。前几日想给WPF的RichTextBox新增上智能感知的功能,搜了一圈没有找到合适的开源代码,于是自己花了点时间搞定了它,小小的扩展了一下RichTextBox,先看效果图:
怎么使用这个扩展后的RichTextBox
扩展后的RTB新增了几个依赖属性:
ContentAssistSource:智能感知数据源
ContentAss
http://www.cyqdata.cn/cnblogs/article-detail-36360
WPF纯手工两步打造图片切割工具(二)
上一节已经完成了功能需求和界面布局,这一节就说明一下编码。
本文分两部分:(一)界面布局及数据初始化(二)编码实现1、 既然要求支持批量处理,那么一次就应该允许选择多个文件,在上一节的最后已经说明了一次选择多个文件,OpenFileDialog在返回的时候通过FileNames得到的是一个数组,所以要进行简单的转换成用分号(;)分隔的字符串,以便填入文本框中。
1 sorImage
http://www.cyqdata.cn/cnblogs/article-detail-36190
WPF纯手工两步打造图片切割工具(一)
一、功能说明1、四种图片切割方式:缩放:指定宽高(可能变形)、缩放:指定宽(高按比例)、缩放:指定高(宽按比例)、裁减:指定宽高。2、批量图片切割。3、目标存储区同名文件处理:直接覆盖、重新命名。4、支持水印文字添加(图片右下角10px)。5、动画效果。6、支持自设定插补模式和呈现质量。
本文分两部分:(一)界面布局及数据初始化(二)编码实现
效果预览:
上周末无聊至极出去溜达,顺便带着相机抓了
http://www.cyqdata.cn/cnblogs/article-detail-36115
[WPF - 之一问一答系列] 如何从WPF的WebBrowser控件中获得WebResponse内容?为何WebBrowser控件的Navigated事件参数NavigationEventArgs的WebResponse属性始终为null?
问:
如何从WPF的WebBrowser控件中获得WebResponse内容?为何WebBrowser控件的Navigated事件参数NavigationEventArgs的WebResponse属性始终为null?
我们在一个WPF的WebBrowser的Navigated事件中,尝试去输出NavigationEventArgs e的WebResponse属性,他始终是null。
http://www.cyqdata.cn/cnblogs/article-detail-36070
WPF调用线程(三)线程池初步
当我们频繁的要调用线程来执行任务时,一个好的办法是采用线程池来对线程进行管理, “线程池”是可以用来在后台执行多个任务的线程集合。 每个传入请求都将分配给线程池中的一个线程,因此可以异步处理请求,而不会占用主线程,也不会延迟后续请求的处理。一旦池中的某个线程完成任务,它将返回到等待线程队列中,等待被再次使用。 这使应用程序可以避免为每个任务创建新线程的开销。线程还
http://www.cyqdata.cn/cnblogs/article-detail-36028
WPF调用线程(二)复制文件并显示进度条
这一段时间要进行WPF及多线程的培训,于是就写了一个例子,主要功能是用复制文件时,显示进度条。以演示在WPF中,如何调用线程,基础理论就不多说了,园子里好多大牛都写过,MSDN也有详尽介绍,也可以查看我的前两篇文章,
C#线程基础
WPF调用线程(-)
也有一些介绍,先看运行效果
xaml如下:
XAML代码
<Window x:Class="WpfThreadTest.Mai
http://www.cyqdata.cn/cnblogs/article-detail-35993
纠结于wpf 多国语言方案,希望各位指点
最近纠结于wpf 多国语言处理的问题,先说说找到的以下几种方案。
1.借用vc的处理方式,编译完了以后每个语言产生一个dll,分别放在语言文件夹里面,
Wpf 使用dllImport调用win32 api中的loadstring方法提取MUI资源,然后赋值为ui。
微软自己去判断该用哪个语言,不用自己操心。
优点:可靠,毕竟那么多地方都这么干的。
缺点:麻烦了点
2. 微软给出的解决方案,地址如下
http://www.cyqdata.cn/cnblogs/article-detail-35969
WPF Summary:Window介绍
Window是传统应用程序的主要元素,用来包含应用程序的内容。用户一般也是通过窗口与 WPF 独立应用程序进行交互的。WPF Window其实也只是一个包装过的Win32窗口。一般我们使用的操作系统无法区分具有WPF内容的窗口和具有Win32内容的窗口之间的差别,操作系统会以相同的方式在客户端区域进行
http://www.cyqdata.cn/cnblogs/article-detail-35817
WPF Caliburn 学习笔记(五)HelloCaliburn
我们来实现一个最简单的实例HelloCaliburn。
首先我们要引入下面几个.dll
Caliburn.Core.dll
Caliburn.PresentationFramework.dll
Microsoft.Practices.ServiceLocation.dll
Castle.Windsor.dll
为了更好的了解Caliburn如何关联View和Presenter(业务逻辑
http://www.cyqdata.cn/cnblogs/article-detail-35805
WPF Caliburn 学习笔记(二)Command
前言:
我们知道WPF也有Command,比如自带的复制、粘贴、剪切、撤销等。这里要说的是Caliburn中的Command,
它们有什么区别和不同点呢?
1、命令源
我们首先创建一个ShowMessageCommand.cs类,和ShowTitleMessageCommand.cs类。
分别写上相应的命令方法。
[Command]
public class ShowMessageCo
http://www.cyqdata.cn/cnblogs/article-detail-32440
WPF <ZoomableCanvas> 实现缩放移动
熟悉WPF 的朋友应该知道Canvas 默认是不支持Scale 和Offset 操作的,如果我们想对Canvas 里包含的控件进行整体缩放或移动可能会比较麻烦。Kael Rowan 提供了ZoomableCanvas 类可以方便实现上述效果。我们可以在XAML 中直接使用<ZoomableCanvas> 对控件布局进行开发,而不需要使用
http://www.cyqdata.cn/cnblogs/article-detail-32409
WPF Caliburn 学习笔记(一)Action 续
上次的笔记,主要讲的Action。这次讨论下Action的其他两个行为。
AsyncAction
AsyncAction(异步行为)
基于上次的笔记内容,我们在此基础上加一个3秒的时间延迟
[Preview("CanDivide")]
public int Divide(int left,int right)
{
Thread.Sl
http://www.cyqdata.cn/cnblogs/article-detail-32369
WPF企业应用--自实现Binding,可用于WinForm,Web等
前言 开始写这个新系列,这些年用WPF做了很多项目,杂七杂八的东西写了不少,略略总结下,也希望能给朋友们带来点帮助。 本篇文章主要是自实现了一个BindingEngine,可以在WPF,WinForm,Web等各个情景中使用。 引子 按照惯例,先找一个插入点,从之讲起。 既然是企业应用,先来说说为什么要写这个BindingEngine。 项目背景是一个机械的配置文件
http://www.cyqdata.cn/cnblogs/article-detail-32357
一个WPF和SL的严重BUG,能导致任何的寄主程序崩溃
先看这个例子,点下这个按钮,你的浏览器一定会崩溃掉。至少在微软修复这个BUG之前会崩溃掉。
经过测试的浏览器有:IE、Chrome、FireFox,其他浏览器,不保证100%崩溃。
这里下载SL崩溃的例子
重现这个BUG
新建一个SL项目SilverlightApplication1,把MainPage.xaml内容修改为
<UserControl x:Class="Silverl
http://www.cyqdata.cn/cnblogs/article-detail-32328
【STM32 .Net MF开发板学习-28】中文显示(WPF方式)
在《为Cortex-M3打造轻量级TinyGUI》中我们提到.NET MF的官方图形库为WPF,考虑到内存的限制和CPU的性能,所以我们开发了TinyGUI库,并在《TinyGUI绘图示例》、《TinyGUI位图显示》和《让TinyGUI库支持模拟器》文章中我们相继介绍了TinyGUI的功能和特性,但是唯一美中不足的是,无法显示中文字体。
要想灵活的显示各种字
http://www.cyqdata.cn/cnblogs/article-detail-32295
Wpf消息循环之消息传递
几天遇见一个问题需要检查某个wpf程序是否已经运行,如果没有运行则启动传递参数,如果已运行则需要直接传递消息。在没有运行 情况下传递参数很简单,我们只需要Process cmd窗口启动并传递参数,在程序中处理。但是如果程序已经启动有点麻烦,凭着我曾winform的经验第一时间想到的是win32 api SendMessage,我们的C#
http://www.cyqdata.cn/cnblogs/article-detail-31739
Silverlight &WPF 技巧(一)DataGrid虚拟化加速不自动开启?
在数据量大的情况下,DataGrid和ComboBox无法渲染或者渲染速度比较慢。
首先我们来介绍下VirtualizingStackPanel 类(以下摘自MSDN)
标准布局系统可以创建项容器并为每个与列表控件关联的项计算布局。 “虚拟
http://www.cyqdata.cn/cnblogs/article-detail-25435
WPF BitmapImage 图片资源无法删除,文件正在被另一个进程使用
今天在一个群里,遇到一个别人问的问题,代码如下所示,项目本意是想在窗体加载时显示一张图片,然后点击按钮,删除该图片。
可是如下代码,在点击delete按钮时,项目报异常:“...无法删除,文件正在被另一个进程使用”,
xaml 代码:
<Grid x:Name="LayoutRoot">
<Grid.RowDefinitions
http://www.cyqdata.cn/cnblogs/article-detail-25369