Chr☆s Kwok 的技术笔记

.NET, C#, WPF, WCF, WF, .NetCore & LINQ ... I know how it works because I know why it works ...

博客园 首页 新随笔 订阅 管理

合集-WPF

摘要:今天又遇到WPF线程问题,问题是程序实现点击某OptionButton时让光标落在一个文本框上,代码如在WinForm模式下绝对没有问题,也很简单,就是在optionButton点击事件中设置文本框的焦点;但运行结果是光标已停在文本框上,但焦点不在该文本框上,而optionButton仍能看到虚框。后经修改为BeginInvoke调用解决了(见下面代码),还需要设置优先级为Input[代码]转载网... 阅读全文
posted @ 2009-11-04 09:11 Chr☆s

摘要:解决方法:参照ToolTip控件实现一个功能更为强大的ToolTip(命名为RichToolTip)1、目标:仿照Word2007的悬停工具栏,如下图实现上下文工具栏。2、虽然ToolTip的控件模板可以定义为包含可交互操作的控件(如Button,TextBox等),然而却无法接受焦点(鼠标移到ToolTip上内容立即就消失),所以无法用此办法实现;3、使用方法与ToolTipService类似,参见如下代码:<TextBox x:Name="_txtWords" BorderThickness="1" BorderBrush="Blac 阅读全文
posted @ 2012-08-04 17:53 Chr☆s

摘要:应用程序(.exe)加载图片:可以省略"pack://application:,,," 打头,因为系统运行时需要的图片文件在Exe程序集(组合体)中;譬如:动态链接库(.dll)加载图片:然而如果图片文件在另一个DLL文件中,系统运行加载图片资源如果省略pack:就默认找本地程序集(Exe文件)就会... 阅读全文
posted @ 2013-07-17 15:51 Chr☆s

摘要:1、C#中用法:格式化货币(跟系统的环境有关,中文系统默认格式化人民币,英文系统格式化美元)示例:string.Format("{0:C}",0.2) 结果为:¥0.10 (英文操作系统结果:$0.10)默认格式化小数点后面保留两位小数,如果需要保留一位或者更多,可以指定位数 string.Format("{0:C1}",10.05) 结果为:¥10.1 (截取会自动四舍五入)格式化多个Object实例 string.Format("会员价:{0:C},优惠价{1:C}",99.15,109.25)WPF中用法: 格式化货币示例: 2 阅读全文
posted @ 2012-11-30 11:52 Chr☆s

摘要:DataGrid当SelectionUnit设置为DataGridSelectionUnit.Cell方式时:RowDetailsVisibilityMode无论置为DataGridRowDetailsVisibilityMode.Visible还是/DataGridRowDetailsVisibilityMode.VisibleWhenSelected均无法显示行详细信息(RowDetails)内容。这是DataGrid本身的使用限制,有时我们确实不想整行(FullRow)选择,那么可以使用下面变通的方式使得行详细信息内容显示或隐藏。思路是给DataGrid应用一个数据触发器,将Detail 阅读全文
posted @ 2012-08-24 17:57 Chr☆s

摘要:1、Brushes用错了命名空间将导致程序无法正确工作。笔者曾写了一个flag值转换为相应的Brush,由于不小心Using了一个错误的命名空间(System.Drawing)导致Xaml文件界面元素Fill绑定属性总出不来应有的效果。最后费了好大劲才发现,替换为正确的命名空间(System.Windows.Media)后立马就解决了。特此留下随笔备忘。2、下面是一个IMultiValueConverter的例子:<Window x:Class="WpfApplication16.Window1" xmlns="http://schemas.microsof 阅读全文
posted @ 2012-08-17 15:51 Chr☆s

摘要:关于病历加载方法报错“类型“System.Xml.Linq.XNodeReader”的对象无法转换为类型“System.IO.Stream”。(ArgumentException) 异常堆栈 在 JetSun.Presentation.Documents.Markups.DocSerializer. 阅读全文
posted @ 2021-07-01 09:51 Chr☆s

摘要:使用 async/await 的情况: 在不使用 async/await 的情况下有 3 种办法: 就是酱紫。推荐第一种,WinForm 程序也可以用。 【WPF异步更新UI的两种方法】 首先强调一点:异步更新UI实际上就是新开一个线程,执行耗时的任务,但是UI上的东西又不能被其他线程访问,所以非U 阅读全文
posted @ 2019-08-30 11:29 Chr☆s

摘要:WPF MultiBinding 和 IMultiValueConverter时间2015-02-02 19:43:00博客园精华区原文http://www.cnblogs.com/woodenmancool/p/4268539.html主题WPFMultiBinding,描述附加到单个绑定目标属性... 阅读全文
posted @ 2016-01-12 18:45 Chr☆s

摘要:程序通常需要显示某些提醒用户警示的信息,如:收件箱(40)其中数量闪烁就会起到警示效果。可以适用如下Storyboard实现: ... 阅读全文
posted @ 2014-07-10 17:32 Chr☆s

摘要: 阅读全文
posted @ 2014-04-16 18:05 Chr☆s

摘要:正如标题的问题,有时需要在已显示的图片的右上角(或其他区域)显示小图标,譬如下图的患者头像右上角显示病情图标:(这里不采用事先用PS编排成一个图片文件的方式,因为此方式普适性不好)解决方案:绘制该复合图像(不希望覆盖上一张图片的区域需要将当前图片相应区域处理成透明,不赘述),创建一个 ImageDrawing 并设置它的 ImageDrawing.ImageSource 和 ImageDrawing.Rect 属性。 ImageDrawing.ImageSource 属性指定要绘制的图像,ImageDrawing.Rect 属性指定每个图像的位置和大小。 ... 阅读全文
posted @ 2013-12-18 17:33 Chr☆s

摘要:使用 SplitterDistance 属性可确定或指定拆分器离容器的左边缘或上边缘的距离(以像素为单位)。 但应注意的与FixedPanel有关,譬如下面代码目的是设置SplitterDistance在窗体显示后的初始值: splitContainer.SplitterDistance = 150 阅读全文
posted @ 2008-07-30 11:45 Chr☆s