随笔分类 - WPF
WPF相关内容介绍
摘要:WPFUI报错 page does not have a parameterless constructor. If you are using Wpf.Ui.IPageService do not navigate initially and don't use Cache or Precache
阅读全文
摘要:本文介绍一种点击空白处使控件隐藏的实现方法,目前发现该方法会导致子TextBox控件无法输入,该问题待解决。 问题描述 考虑如下场景,在白板类软件中,点击按钮弹出一个View,希望在点击空白处直接隐藏掉View,同时可以直接书写,如下图: 实现该需求,可以通过View间通信解决,但这样会增加代码耦合
阅读全文
摘要:本文介绍下PasswordBox进行数据绑定的方法,本文参考链接。 本文完整示例程序见GitHub。 问题描述 PasswordBox的Password属性不是依赖属性,因此无法进行数据绑定。 解决办法 该问题的解决办法有多种,本文介绍如何通过添加附加属性解决该问题。 附加属性是说一个属性本不属于某
阅读全文
摘要:在Windows窗口应用开发过程中,经常会设计一些非矩形窗口,并包含一些投影效果,本文介绍一种实现窗口投影+裁剪效果的方法。 本文裁剪效果参考刘铁猛老师《深入浅出WPF》一书第十二章:绘图和动画,裁剪米老鼠外形窗口,区别在于给窗口添加投影效果。 窗口裁剪 WPF中可以方便的设计各种不规则形状的窗口或
阅读全文
摘要:本文记录下创建自定义控制时碰到的一个小问题。 问题 在Generic.xaml文件中写好自定义控件的DefaultStyle后进行编译,VS报错。 把报错位置的内容全部注释掉后,重新编译,依然报错。 查看错误信息:“给定编码中的字符无效...”,找到错误定位的位置后,发现此处有中文。使用编辑器打开G
阅读全文
摘要:在WPF中对控件进行截图是非常方便的,使用RenderTargetBitmap即可实现。但是如果是对Canvas这种类型的容器控件进行截图,截图的范围可能不准。此时可以使用如下方法对Canvas进行截图,方法来自Clemens。 public void WriteToPng(UIElement el
阅读全文
摘要:问题描述 当双击打开自定义格式的文件时,希望使用当前正在运行的进程,而不是另起一个进程。 本文介绍一种方式解决如上问题,方案参考user3582780的解答 设置自定义文件格式的默认打开方式 参考链接,具体步骤如下: 在HKEY_CLASSES_ROOT中新建项,命名为自定义文件格式(如.custo
阅读全文
摘要:本文接上一篇WPF源码阅读 -- InkCanvas选择模式,本文介绍笔迹的选择过程及选中后的高亮显示方法,文中若有理解错误的地方,欢迎大家指正。选择效果如下图所示: InkCanvas是WPF中用于墨迹书写的控件,其具有书写、选择、擦除等模式。根据上图,可以看出笔迹的选择功能由如下三部分组成: 选
阅读全文
摘要:InkCanvas是WPF中进行墨迹绘制的控件,本文介绍下InkCanvas控件是如何进行选择操作的。文中有误的地方希望大家进行批评指正。 InkCanvas的选择效果 使用WPF可以轻松实现白板功能,只需要添加一个InkCanvas控件。修改InkCanvas的EditingMode属性可以控制I
阅读全文
摘要:本文通过设计一个RadioButton,分享下使用Blend绘制Path的方法。待绘制的RadioButton样式如下文所示,如有更好的方法实现该样式,欢迎交流。 实现效果 将要实现的RadioButton样式如下图,可以看出按钮的笔尖和笔身的填充色,以及选中时右上方圆形的填充色一致,代表笔的颜色。
阅读全文
摘要:本文介绍WPF一种自定义按钮的方法。 实现效果 使用图片做按钮背景; 自定义鼠标进入时效果; 自定义按压效果; 自定义禁用效果 实现效果如下图所示: 实现步骤 创建CustomButton.cs,继承自Button; 创建一个资源文件ButtonStyles.xaml; 在资源文件中设计按钮的Sty
阅读全文
摘要:如深入浅出WPF中的描述,DataTemplate为数据的外衣,ControlTemplate为控件的外衣。ControlTemplate控制控件的样式,DataTemplate控制数据显示的样式,DataTemplate是ControlTemplate的一部分。本文介绍DataTemplate与C
阅读全文
摘要:Prism是一个开源框架,用于在WPF、Xamarin Forms、Uno/Win UI等应用中创建松耦合、可维护、可测试的XAML应用程序。Prism提供了一组设计模式的实现,这些设计模式有助于编写结构良好且可维护的XAML应用程序,包括MVVM,dependency injection,comm
阅读全文
摘要:本文参考Prism官方示例 命令使用 Prism提供了两种命令:DelegateCommand和CompositeCommand。 DelegateCommand DelegateCommand封装了两个委托:Execute和CanExecute,使用如下: // view <Button Comm
阅读全文
摘要:本文参考Prism官方示例 创建Prism项目 将App.xaml中的WPF标准Application替换为PrismApplication,移除StartupUri属性; 将App.xaml.cs中的基类改为PrismApplication; 必须实现PrismApplication中的两个抽象方
阅读全文
摘要:本文介绍一种圆形的识别方案。 识别流程 判断是否为封闭图形; 根据圆的方程,取输入点集中的1/6、3/6、5/6处的三个点,求得圆的方程,获取圆心及半径; 取点集中的部分点,计算点到圆心的距离与半径的比例,与设定的阈值比较,得出结果。~~~~ 实现 public static bool IsCirc
阅读全文
摘要:本文介绍一种WPF程序实现本地化的方法。 步骤 首先,假设xaml文件中存在一个Button按钮,内容为“按钮”,实现本地化的步骤如下: 展开程序的Properties,双击Resources.resx文件进行编辑; 添加一条资源,名称为"btnContent",值为"按钮"; 右键复制Resour
阅读全文
摘要:本文介绍使用独立的xaml文件添加静态资源的方式。 步骤 创建XAML文件,如ImageButton.xaml,添加ResourceDictionary标签,并添加静态资源; 在App.xaml的Application.Resources标签中添加xaml资源文件; 在xaml界面文件中使用Stat
阅读全文
摘要:**写在前面:**本文代码摘自《Head First C#》 本文使用ObjectAnimationUsingKeyFrames + Storyboard构建一个动画。 ObjectAnimationUsingKeyFrames为关键帧动画,它允许为动画设置几个关键帧,其中每一帧为ObjectKey
阅读全文