WPF
new_smile
这个作者很懒,什么都没留下…
展开
-
wpf 依赖属性初始化设定默认双向绑定
如下一个依赖属性,添加元数据的时候用FrameworkPropertyMetadata而不用dataPropertyMedata public DateTime SelctedDate { get { return (DateTime)GetValue(SelctedDateProperty); } set { SetVal...原创 2018-12-26 21:23:11 · 2589 阅读 · 0 评论 -
wpf toolTip自定义
ToolTip或者PopUp这个控件在做界面时会经常用到。如何对ToolTip进行自定义呢?1.首先自定义tooltip的controlTemplate,完全清除系统默认效果, 如下:[html] view plain copyprint?ControlTemplate x:Key ="TooltipTemplate" TargetTyp转载 2016-08-19 11:03:48 · 4183 阅读 · 0 评论 -
WPF图片控件的旋转、缩放、翻转
WPF中对图片进行旋转是应用RotateTransform类,而进行缩放和翻转则是应用ScaleTransform类。旋转: RotateTransform rotateTransform = new RotateTransform(90);//90度 imgCtl.RenderTransform =转载 2016-07-21 10:56:45 · 9438 阅读 · 1 评论 -
WPF获取键盘状态(如WPF组合键)
对于键盘事件(PreviewKeyDown,KeyDown,PreviewKeyUp,KeyUp)获取组合键等键盘信息比较容易1、KeyEventArgs对象包含一个KeyStates属性,该属性反映触发事件的键的属性2、KeyboardDevice属性为键 盘上的所有键提供了相同的信息,自然也提供了一个KeyboardDevice类的一个实例。它的属性包括当前是哪个元素具有焦点,以及当事转载 2016-06-22 11:03:05 · 3806 阅读 · 0 评论 -
路径标记语法
https://msdn.microsoft.com/zh-cn/library/ms752293(v=vs.110).aspx微软官方链接原创 2016-06-16 08:53:02 · 469 阅读 · 0 评论 -
wpf ComboBox设置默认值
在wpf里面简单的设置 ComboBox的text属性是不能设置它的默认选中的值的。在网上看到有人说可以设置默认选中项,设置它的selectedIndex="0".把第一项作为它的默认项。在展开下拉框时,将第一项的visibility="collapsed"这样就行了。ComboBox Width="100" SelectedIndex="0">ComboBox原创 2014-01-10 14:28:38 · 35347 阅读 · 5 评论 -
wpf微软官方示例
https://msdn.microsoft.com/zh-cn/library/ms771315(v=vs.90).aspx原创 2016-06-13 16:47:11 · 3320 阅读 · 0 评论 -
获取控件正在使用的资源名称
// 利用 ReadLocalValue 获取资源对象var obj = tb_hello.ReadLocalValue(TextBlock.TextProperty); if (obj == null){ Console.WriteLine("Is Null");}else{ // 对象倒是获取了, 是个什么东东呢? Console.Wr转载 2016-06-27 16:43:45 · 444 阅读 · 0 评论 -
WPF对象的XAML序列化
WPF使用XAML来描述用户界面,每个XAML元素往往对应着相应的WPF对象,元素的属性对应着对象的属性。由于XAML元素与WPF对象之前存在着这种对应关系,其实可以将XAML代码看成是WPF对象“序列化”后的结果。WPF提供了XamlWriter 和 XamlReader 两个类实现WPF对象的XAML序列化和反序列化。 示例项目:展示了一个绘图板,用户用鼠标点击此绘图板,转载 2016-06-08 09:29:34 · 2936 阅读 · 0 评论 -
wpf 制作带小箭头的框框
这是我做的带尖尖的Border元素,可以等比例调节大小,有兴趣的可以自己看看原创 2017-04-07 16:51:59 · 3186 阅读 · 0 评论 -
wpf Tooltip样式
分享官方的tooltip改编的样式,同志们需要的可以使用,修改哈原创 2017-04-07 17:07:39 · 3225 阅读 · 0 评论 -
WPF listBox 显示每个Item的index值
在显示出来的Item中显示出当前Item的index值Xaml文件如下: <Window.Resources> <Style x:Key="wrapalListBox" TargetType="ListBox"> <Setter Property="Template"> &转载 2018-11-07 15:57:46 · 3332 阅读 · 1 评论 -
WPF:在异步操作中使用CommandManager手动更新Command执行状态(转载)
WPF判断命令(Command)是否能够执行是通过ICommand.CanExecute事件,在实际程序中路由命令一般是通过CommandBinding来使命令得到实际操作代码,但是这个CanExecute事件的调用是由WPF控制的,有些时候,比如命令执行后进行一些异步耗时操作,操作完成后会影响CanExecute事件结果,但是WPF不会立即做出反应,那么这个时侯就需要手动调用CommandMan...转载 2018-10-30 11:20:04 · 1131 阅读 · 0 评论 -
lisbox显示为表格样式
绑定到自身,设置转换器,设置borderThickness<Setter Property="BorderThickness" Value="{Binding RelativeSource={RelativeSource Self},Converter={StaticResource ListBoxTableBorderConverter}}"/>public object Conve...原创 2018-05-28 17:52:07 · 1099 阅读 · 0 评论 -
wpf加载非嵌入程序中的资源
https://docs.microsoft.com/zh-cn/dotnet/framework/wpf/app-development/pack-uris-in-wpf图片使用方式Source="pack://siteoforigin:,,,/Logo/logo.png"原创 2018-04-04 15:13:42 · 413 阅读 · 0 评论 -
WPF中AllowsTransparency和WebBrowser兼容性问题
一个简单的解决方式:设置window 的 AllowsTransparency=false,再用aero glass inside a wpf window设置窗体透明,就可以了。Recently Tim shared some code for extending Windows Vista Aero "Glass" inside a Windows Forms window. It soun...原创 2018-03-07 10:54:29 · 2103 阅读 · 1 评论 -
wpf style and templates
https://docs.microsoft.com/en-us/dotnet/framework/wpf/controls/原创 2017-10-20 14:31:18 · 221 阅读 · 0 评论 -
c#路由事件
public static readonly DependencyProperty PageIndexProperty = DependencyProperty.Register("PageIndex", typeof(int), typeof(MoonPdfPanel), new UIPropertyMetadata(1)); public int PageIndex{ g转载 2017-06-14 09:40:48 · 1688 阅读 · 0 评论 -
比较不错的几款开源的WPF Charts报表控件
1. ModernUIChartCode: http://modernuicharts.codeplex.com/Available ChartsColumnChart (ClusteredColumnChart, StackedColumnChart, StackedColumnChart100Percent)PieChart (PieChart and Dognut转载 2017-03-13 14:14:47 · 13391 阅读 · 0 评论 -
WPF <ZoomableCanvas> 实现缩放移动
熟悉WPF 的朋友应该知道Canvas 默认是不支持Scale 和Offset 操作的,如果我们想对Canvas 里包含的控件进行整体缩放或移动可能会比较麻烦。Kael Rowan 提供了ZoomableCanvas 类可以方便实现上述效果。我们可以在XAML 中直接使用 对控件布局进行开发,而不需要使用。在项目中加入ZoomableCanvas 相关类,编译后工具栏中会出现ZoomableC转载 2016-06-02 11:30:19 · 3293 阅读 · 0 评论 -
wpf页面编辑器原理
wpf实现页面编辑器,运行时拖拽控件大小,与修改控件位置,原理是使用装饰器来做,并且禁用掉控件的IsHittestVisiable属性就可以实现编辑控件位置与大小了,装饰器adornor如下:class ResizeMoveAdorner : Adorner { const double THUMB_SIZE = 8; const double MINIMAL_SIZE = 20; const d原创 2016-06-02 10:36:12 · 1228 阅读 · 0 评论 -
win10类型按钮
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:Transfer4UI.ItemControl">原创 2016-04-25 07:44:26 · 1011 阅读 · 0 评论 -
MVVM 后台代码调用viewModel方法
这个问题刚开始,很是纠结。原创 2014-04-17 15:57:08 · 2358 阅读 · 0 评论 -
listView 点击空白取消选择项
WPF listView中,ListView控件的鼠标事件很奇怪,选中item的时候不会触发mouse_LeftButtonDown事件,原创 2014-04-17 10:22:25 · 3458 阅读 · 0 评论 -
动态添加控件
在WPF中,我们熟悉的ListView控件经常能用dataTemplate创建数据驱动的控件。原创 2014-05-01 11:34:35 · 789 阅读 · 0 评论 -
MVVM模式使用注意点
1.在使用过程中一定是先实例化好viewModel.对象。然后再实例化相对应的view.可以选择在veiw的构造函数中传入viewModel以设置view的dataContaxt属性。这样数据绑定就能在页面一起来就呈现数据。如果想要用户使用过程中呈现数据。我们可以用view.cs的后台代码绑定列表控件的数据源。这样就可以实时更新列表控件的所有数据。原创 2014-03-10 17:23:42 · 652 阅读 · 0 评论 -
WPF listView未找到数据源
这样的数据组织是错误的。当绑定ListView的数据源时会提示找不到数据源。这就是说 这样才会是正确的原创 2014-03-13 16:42:07 · 696 阅读 · 0 评论 -
MVVM总结
View的后台代码做的事情:1.数据源的代码绑定2.事件中,改变数据源原创 2014-02-14 12:18:24 · 487 阅读 · 0 评论 -
WPF命令参数
wpf命令参数实际上是很有用的,如果有一系列的命令,他们具有相同点,比如都是添加,有添加歌曲,添加视频,添加文件等等。那么我们就应该为每类命令创建一个命令对象。但是如果我们用命令参数的话,就能只用一个命令对象,大大简化了代码量,也让程序更加整洁。也就是一个命令对象,用命令参数就相当于多个子命令对象的功能。原创 2014-02-12 09:53:27 · 941 阅读 · 0 评论 -
listView中定义GridView绑定失败
在WPF的ListView使用中给ListView内容一个Gridview,然后绑定数据到Gridview的列通常显示不出来数据,测试中我们将ListView内容不添加,然后将GridView定义为资源,再赋值给ListView的View属性,这样就能顺利绑定上数据了。原创 2014-02-11 11:13:31 · 652 阅读 · 0 评论 -
wpf字符串省属性
首先设置最大宽度,然后设置TextTrimming="CharacterEllipsis"这样就能在超出宽度后,显示省略号原创 2014-03-21 19:10:54 · 661 阅读 · 0 评论 -
c#操作IME代码
using System.Text;using System;using System.Runtime.InteropServices;namespace Whatever { public class GetComposition { [DllImport("imm32.dll")] public static extern转载 2015-03-02 15:45:32 · 3322 阅读 · 0 评论 -
[WPF疑难]避免窗口最大化时遮盖任务栏
[WPF疑难]避免窗口最大化时遮盖任务栏 周银辉WPF窗口最大化时有个很不好的现象是:如果窗口的WindowStyle被直接或间接地设置为None后(比如很多情况下你会覆盖默认的窗体样式,即不采用Windows默认的边框和最大化最等按钮,来打造个性的窗体),那么最大化窗口后,窗口将铺满整个屏幕而将任务栏盖住。这往往不符合实际要转载 2016-04-23 17:59:52 · 3906 阅读 · 0 评论 -
wpf重绘窗体
WPF绘制自定义窗口WPF是制作界面的一大利器,下面就用WPF模拟一下360的软件管理界面,360软件管理界面如下: 界面不难,主要有如下几个要素:窗体的圆角自定义标题栏及按钮自定义状态栏窗体的半透明效果窗体4周有一圈半透明阴影(抓的图上看不出来)实现思路很简单,首先隐藏默认窗口的标题栏和边框,然后用WPF的Border或Canvas等元素模拟定义窗体的标题栏、内容区和转载 2016-05-03 22:00:32 · 6392 阅读 · 0 评论 -
在WPF中使用WindowProc处理消息
在学MFC 的第一课就是讲windows的消息机制,其中这一部分是通过WndProc这个函数来完成的,用一个消息循环来捕捉消息。虽然在WPF里 没有 WndProc 这个函数,但是提供了另一种方法来完成挂钩的功能。在WinForm 里 只需重载 WndProc 函数便可完成消息响应。WinForm: private const int WM_SIZEING = 0x0转载 2016-04-18 11:07:33 · 1424 阅读 · 0 评论 -
一步步教你制作WPF圆形玻璃按钮
图1 1.介绍从我开始使用vista的时候,我就非常喜欢它的圆形玻璃按钮。WPF最好的一个方面就是允许自定义任何控件的样式。用了一段时间的Microsoft Expression Blend后。我做出了这个样式。我觉得做的还行。因为。我决定分享。如我所说。我使用Microsoft Expression Blend来做。但是。我也是用XAML编辑器--Kaxaml。 2.概述转载 2016-05-11 14:22:41 · 8453 阅读 · 2 评论 -
Custom Window Chrome in WPF
Guest post by Joe Castro, WPF product team developer This document covers the design and some implementation details of getting WPF windows wrapped in custom chrome. Currently WPF supports standard转载 2016-04-28 10:44:18 · 2519 阅读 · 0 评论 -
WPF默认控件模板
这个地址https://msdn.microsoft.com/zh-cn/library/cc278069(v=vs.95).aspx转载 2016-04-23 09:56:24 · 975 阅读 · 0 评论 -
wpf键盘
一、键盘类和键盘事件WPF提供了基础的键盘类(System.Input.Keyboard类),该类提供与键盘相关的事件、方法和属性,这些事件、方法和属性提供有关键盘状态的信息。Keyboard的事件也通过UIElement等XAML基元素类的事件向外提供。对于键盘操作,其常用的事件有两组:KeyDown事件和PreviewKeyDown事件:处理键盘键按下KeyUp事件和Previ转载 2016-04-12 10:10:02 · 1894 阅读 · 0 评论 -
WPF取得控件窗体的句柄
窗体: IntPtr hwnd = new WindowInteropHelper(this).Handle;控件: IntPtr hwnd = ((HwndSource)PresentationSource.FromVisual(uielement)).Handle; 句柄的取得不要在构造 函数中取得,此时的vitual还没有产生,在Loaded中 就可以了。转载 2016-03-10 12:48:48 · 435 阅读 · 0 评论