依赖项属性是通过调用 Register 方法(或 RegisterReadOnly)在 WPF 属性系统中注册,并通过 DependencyProperty 标识符字段备份的属性。 依赖项属性只能由 DependencyObject 类型使用,但 DependencyObject 在 WPF 类层次
转载
2024-10-06 09:15:10
17阅读
手头有个 Winform 程序,是使用动态生成按钮,然后拖动、调整大小,以此来记录一些坐标数据,最后保存坐标数据的。在数据量(按钮数量)比较小的时候是使用得挺愉快的,但是,当按钮数上去之后,比如达到四五百个按钮,那就比较痛苦了。具体来说就是,无论是移动窗口,还是拖动滚动条,或者是最小化窗口再还原,都会引起界面重绘,表现为按钮一个接一个地出现。经过实测,与电脑的性能和 GPU 都没有关系,网上针对
#关于WPF界面框架MahApps.Metro学习笔记《一》公司因为业务发展,需要使用到WPF这种听说是非常陈旧的东西,但对于一个新人来说,只要是没接触的知识,在我看来,都是一个学习的过程。因为目前阶段已经脱离了使用最原始的微软控件构建界面的过程,不是我的要求,而是客户要求,说你这个界面看着这么老(PS:那是老吗!那明明是经典!!!),这也是公司要往WPF转的一个原因吧。 说起界面,我可是一个煞费
在使用Binding类的时候有4中绑定模式可以选择BindingModeTwoWay 导致对源属性或目标属性的更改可自动更新对方。此绑定类型适用于可编辑窗体或其他完全交互式 UI 方案。OneWayOneWay 绑定模式可避免 TwoWayOneTimeOneWayOneWayToSource 当目标属性更改时更新源属性。DefaultMode 值。每个依赖项属性的默认值都不同
一.前言 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接。本文主要内容: ScrollViewer的样式拆解及基本样式定义; ListBox集合控件的样式定义; 二.ScrollViewer自定义样式 ScrollViewer在各种列表、集合控件中广泛使用的基础组建,
WPF实现文件拖放功能,正常情况并没有什么问题,但是如果你的程序使用管理员身份启动,你就会发现文件拖放功能就会失效。这是因为WPF 在不同UAC等级下,是不允许拖放的。原理很简单,与桌面相关联的进程为 explorer.exe,即 explorer.exe 这个进程启动的方式是非管理员身份,当你的程序使用管理员身份启动时,就会导致拖放失败。因为二者的权限不一样,系统不允许不同权
这儿还有更简单的有时候我们需要在TreeView中实现这样的功能:在TreeView上点击右键弹出菜单,同时鼠标点击处的TreeViewItem被选中,然后我们针对选中的数据进行处理。不过,WPF的TreeView并没有提供右键单击选中的功能。我们需要自己去实现。【思路】最基本的思路是,在TreeView右键点击的事件发生时,我们遍历它所有的Item,包括子Item,获取Item所对应的TreeV
1、Converter介绍在WPF应用程序中经常遇到类似这样的问题,在定义的类中用的bool类型的值,但是界面上某个控件的显示属性是Visibility的枚举类型的,解决这个问题可以简单在定义的类中加入一个Visibility类型的属性,将其与界面上控件的Visibility进行绑定,就可以在代码中直接操控控件的显隐了。但是采用这种方式,无可避免的让你多写了许多代码,并且功能上有重复。幸运的是WP
转载
2024-04-13 12:00:56
116阅读
在这里,我们将通过一个借鉴开源项目框架来讲一讲如何创建自己的控件库,let's go!
1,创建一个控件库项目 鼠标右击项目解决方案 -->添加-->新建项目
选择WPF自定义控件库 修改名称,点击“确认”。
这是会生成一个如下图的工程:
CustomControl1.cs中自动生成了如下代码:
///
转载
2024-06-16 11:51:30
171阅读
这儿还有更简单的有时候我们需要在TreeView中实现这样的功能:在TreeView上点击右键弹出菜单,同时鼠标点击处的TreeViewItem被选中,然后我们针对选中的数据进行处理。不过,WPF的TreeView并没有提供右键单击选中的功能。我们需要自己去实现。【思路】最基本的思路是,在TreeView右键点击的事件发生时,我们遍历它所有的Item,包括子Item,获取Item所对应的TreeV
转载
2024-05-19 07:47:29
656阅读
底部附有Demo示例。需要的朋友可以去下载参考一、图示先上图,不知为啥,GIF总看起来特别卡,实际却很流畅。由于录制问题,GIF动画只会播放一次,需要重复观看的,请将网页关闭后重新打开再观看 WPF的资料太少了,找些动画什么的都没有,最近工作中要用Treeview进行拖动排序,但是呢,网上几乎没有相关的Demo示例等,只能自己手撸,在这过程中,也学到了一些知识,我在此记录下,防止下次用到
转载
2024-04-03 13:26:39
1040阅读
WPF控件内容模型主要指派生于System.Windows.Controls.Control类的各种控件,其主要分为四部分: ContentControl HeaderedContendControl ItemsControl
需求描述某个ListView占据整个窗口,当窗口的宽度发生改变时,某一列中显示的、某一行的字符数目,能跟随窗口宽度变化而增减。下面是我做完的效果:(只展示窗口的一部分)此时是窗口缩放的极限,不能再小了。 拖动窗口变大后,可以看到字符数目也变多了。设计思路首先,因为需要列出多行,选择使用ListView。使用固定宽度的单列(GridViewColumn),并将其宽度设为窗口实际宽度,可以实现占满窗口
介绍在这个教程中你会学习用很少量的代码创建自定义页面切换效果的组件,自定义之后你可以完全掌控页面之间的切换效果。另外,通过这个组件的建立,你也可以学习如何使用 Framer X 创建一个组件。 1.创建 Code Component打开 Framer X,切换到 Code 栏,点击 New 按钮,新建代码组件,命名为 PageEffect,Framer X 会自动生成一份
转载
2024-10-16 22:22:59
58阅读
public static object GetElementFromPoint(System.Windows.Controls.ItemsControl itemsControl, Point point)
{
UIElement element = itemsControl.InputHitTest(point) as UIElement;
转载
2020-09-22 11:44:00
322阅读
2评论
WPF中ComboBox下拉菜单控件的介绍 前几天在用WPF制作贪吃蛇游戏的时候,遇到了一个非常棘手的问题——下拉菜单选择时的事件问题,在网上查找了很多资料都没解决,最后还是我们帅气的曹老师帮我们讲解了这个问题,才得以解决。那么今天我将这些总结出来,来帮助更多在学习WPF过程中遇到这种问题的朋友。1、Items属性 2、Items的属性和方法属性/方法说明Add将某一项添加到下拉菜单的选择框中Co
1.什么是数据绑定数据绑定是一种关系,WPF程序从源对象中提取一些信息,并根据这些信息设置目标对象的属性,目标属性作为依赖项属性。源对象可以是任何内容,可以是另一个wpf内容,甚至是自行创建的纯数据对象。 2.简单的单绑定将一个元素绑定到另一个元素,第一个例子,是将将一个Slider控件和TextBlock控件绑定。ElementName表示源对象的名字,Path表示源元素的属性。需要使
文章目录前言一、简单拖动二、事件冲突问题三、解决方法四、效果预览五、使用示例1、白板的工具条(1)、MainWindow.xaml(2)、MainWindow.xaml.cs(3)、效果预览总结前言点击窗口任意区域可移动功能,在一些业务场景中会使用到,比如工具条或者球形状的窗口等。在wpf要实现此功能简单形式还是比较容易的,但是有一些细节需要专门处理,比如与按钮的点击事件冲突问题,解决事件冲突问题
前面已经实现了WPF效果第二百零二篇之TreeView带连接线,给专家展示,结果人家有点不满意;然后提了个要求:能不能每个节点都能让我随心所欲的勾选;咱好像啥也不能说,只能尽量满足就行了;二话不多说直接看效果:1、前台关于ItemTemplate如下:<HierarchicalDataTemplate x:Key="LedDataTemplate" DataType="{x:Type Mod
// DataGrid HeaderTemlate & DataTemplate
<DataGrid.Columns >
<DataGridTextColumn Binding="{Binding Date}" ElementStyle="{StaticResource contentCenterStyle}">
转载
2024-03-01 12:19:52
496阅读