wpf
coder i++
coder i++分享一下 ,记录一下
展开
-
自定义Menu的外观样式
【代码】自定义Menu的外观样式。原创 2023-10-16 15:44:32 · 82 阅读 · 0 评论 -
自定义ContextMenu的外观样式
【代码】自定义ContextMenu的外观样式。原创 2023-10-16 15:43:44 · 162 阅读 · 0 评论 -
MMVMLight注册发送消息
有GalasoftMVVM以及Microsoft.Community.MVVM。原创 2023-07-31 10:55:53 · 226 阅读 · 0 评论 -
WPF中RenderTransform详解
2 基于ScaleTransform的放大缩小,翻转和展开的动画。二、TranslateTransform(平移)一、RenderTransform(渲染变换)1 TranslateTransform介绍。三 、RotateTransform(旋转)六、MatrixTranform(矩阵变换)七、TransformGroup(变换组)四、ScaleTransform(缩放)1 RenderTransform介绍。1 RotateTransform介绍。五、SkewTransform(倾斜)原创 2023-07-18 07:10:39 · 1247 阅读 · 0 评论 -
wpf listbox style
【代码】wpf listbox style。原创 2023-07-05 13:07:43 · 204 阅读 · 0 评论 -
C# wpf 实现Canvas内控件拖动
鼠标按下 释放 移动。转载 2023-06-28 07:10:00 · 607 阅读 · 0 评论 -
C# wpf 附加属性实现任意控件拖动调整大小
【代码】C# wpf 附加属性实现任意控件拖动调整大小。原创 2023-06-27 20:31:10 · 1173 阅读 · 0 评论 -
wpf usercontrol 继承
【代码】wpf usercontrol 继承。原创 2023-06-25 21:51:51 · 225 阅读 · 0 评论 -
wpf relativesourcebind
假设您的父 View 的 View 模型设置为其DataContext,则此绑定(bind)将对其进行访问…DataContext是该 View 的DataContext,例如。设置为DataContext的 View 模型。因此,PropertyName属性是该 View 模型的公共(public)属性。基本上,您需要使用RelativeSource绑定(bind)。需要绑定到父的某些属性,试验记录一下 结果。原创 2023-06-16 14:26:09 · 151 阅读 · 0 评论 -
wpf控件保存图片
【代码】wpf控件保存图片。原创 2023-06-10 14:33:32 · 351 阅读 · 0 评论 -
WPF阴影的简单使用(DrawShadowEffect)
ShadowDepth:确定阴影离开内容多远,单位为像素(默认值为5)。将该属性设置为0会创建外侧辉光(outer-glow)效果,该效果会在内容的周围添加晕彩(halo of color);将该属性设置为0会将阴影放置到右边,增加该属性的值时会逆时针移动阴影。BlurRadius:模糊阴影,该属性和BlurEffect类的Radius属性非常类似(默认值是5);Opacity:使用从1(完全不透明,默认值)到0(完全透明)之间的小数使阴影部分透明;Color:设置阴影的颜色(默认为黑色);转载 2023-06-04 08:13:17 · 302 阅读 · 0 评论 -
C# wpf 附加属性实现任意控件拖动调整大小
WPF拖动改变大小系列 第一节 Grid内控件拖动调整大小 第二节 Canvas内控件拖动调整大小 第三节 窗口拖动调整大小 第四节 附加属性实现拖动调整大小(本节)定义附加属性IsResizeable,用于指示控件是否可调整大小,ResizeTemplate用指定拖动控件的样式,实现界面业务分离。 IsResizeable:// Using a DependencyProperty as the backing store for IsResizeable. This enables animatio转载 2023-06-04 07:56:39 · 1538 阅读 · 0 评论 -
WPF中DataGrid CheckBox选择数据错乱
DataGrid 的 EnableRowVirtualization 属性默认值是True,就是说动态加载数据,只实例化屏幕内可见的数据;行头的内容是通过绑定实现的,但是滚动刷新时传入的DataGridRow并不是实际位置的行,而是虚拟的,造成行头显示内容错乱;方法1:设置EnableRowVirtualization=“False",简单易行,但系统资源的开销大。原创 2023-04-18 16:24:18 · 492 阅读 · 0 评论 -
WPF之Binding深入探讨
1,Data Binding在WPF中的地位程序的本质是数据+算法。数据会在存储、逻辑和界面三层之间流通,所以站在数据的角度上来看,这三层都很重要。但算法在3层中的分布是不均匀的,对于一个3层结构的程序来说,算法一般分布在这几处:A。数据库内部。B。读取和写回数据。C。业务逻辑。D。数据展示。E。界面与逻辑的交互。A,B两部分的算法一般都非常稳定,不会轻易去改动,复用性也很高;C处与客户需求最紧密,最复杂,变化最大,大多少算法都集中在这里。D,E负责UI和逻辑的交互,也占有一定量的算法。显然,C部分是程序的转载 2023-04-03 21:18:30 · 1546 阅读 · 0 评论 -
WPF TreeView控件获取节点等级和父节点
今天在做一个项目时用到TreeView控件,想通过双击子节点对选中节点进行一些处理,发现并没有想象中的那么简单,于是就只能自己想办法去实现了(网上搜了一些方法,不是很靠谱,重要的是不够简洁【坏笑】)这个在Winform开发的时候很容易获取,因为TreeNode有这个属性,但是WPF的TreeViewItem没有提供这个属性,我们只能自己实现了。2、当节点是由数据源绑定生成时,需要通过可视树来获取父节点。这里的Level就是我们要获取的层级属性,接下来绑定数据源。一、获取选中节点的父节点(容器)转载 2023-04-03 13:30:11 · 746 阅读 · 0 评论 -
wpf动画
WPF提供了一个更高级的模型,通过该模型可以只关注动画的定义,而不考虑它们的渲染方式,这个模型基于依赖项属性基础架构,本质上,WPF动画只不过是在一段时间间隔内修改依赖项属性值的一种方式。wpf中,最常用的动画技术是线性插值动画,标准的帧速率是60秒/帧,使用动画的最简单方式是实例化在前面列出的其中一个动画类,然后使用修改元素的BeginAnimation()方法,所有wpf元素,从UIElement基类开始,都继承了BeginAnimation()方法,该方法是IAnimatable接口的一部分。转载 2023-04-02 15:36:56 · 1206 阅读 · 0 评论 -
wpf仪表盘
【代码】wpf仪表盘。转载 2023-03-28 15:26:27 · 299 阅读 · 0 评论 -
WPF绘制自定义窗口
简介: 原文:WPF绘制自定义窗口 WPF是制作界面的一大利器,下面就用WPF模拟一下360的软件管理界面,360软件管理界面如下: 界面不难,主要有如下几个要素: 窗体的圆角 自定义标题栏及按钮 自定义状态栏 窗体的半透明效果 窗体4周有一圈半透明阴影(抓的图上看不出来) 实现思路很简单,首先隐藏默认窗口的标题栏和边框,然后用WPF的Border或Canvas等元素模拟定义窗体的标题栏、内容区和状态栏。它和后面的Grid元素定义的实际窗口是同级的。到此,自定义窗口的基类就打造完成,完整代码见附件。转载 2023-03-27 17:45:49 · 1305 阅读 · 0 评论 -
WPF Template,ItemsTemplate,ItemContainerStyle,ItemsPanel,ContentPresenter
我现在有个需求,要求做个像360右上角的配置菜单的按钮,用Botton和popup可以实现,可我不想写太多事件,这时候我想到了comboBox这个控件,点击出现下拉的内容,真是太符合我的需要了,于是,我就决定定制ComboBox。首先,默认的ComboBox是一个两行两列的布局,(0,0)(第一行,第一列的位置)位置处是一个编辑控件,(0,1)是个按钮,(1,0)(1,1)是个popup,就是点击出现下拉的位置,popup的显示绑定按钮的状态,于是,我们点击按钮的时候,popup就显示出来,popup区转载 2023-03-27 17:36:06 · 466 阅读 · 0 评论 -
WPF中datagrid控件如何获得某个单元格并改变其背景颜色
上面一段代码,dgDataSource指的是datagrid控件的名字;整个代码是将datagrid第一行第一列的单元的背景色设置为红色。WPF中datagrid控件如何获得某个单元格并改变其背景颜色。转载 2023-02-09 14:16:57 · 2151 阅读 · 5 评论 -
WPF 自定义TreeView控件样式,仿QQ联系人列表
根据思路,我们需要设置三个样式,TreeView样式,TreeViewItem样式,HierarchicalDataTemplate分层模板样式。像这种联系人列表一般涉及到多层级数据,而且有很多数据是需要动态更新的,如果通过手动一条条增加数据反而更复杂,而且不方便。默认的TreeView控件四周会有边距,因此需要设置下TreeView的样式。另外鼠标经过和鼠标选中的背景色需要变化,因此还需要设置TreeViewItem的样式。分层模板中存在两种样式,一种是分组样式,一种是人员样式。转载 2022-12-15 15:32:09 · 1504 阅读 · 0 评论 -
WPF中的文字修饰——上划线,中划线,基线与下划线
我们知道,文字的修饰包括:空心字、立体字、划线字、阴影字、加粗、倾斜等。这里只说划线字的修饰方式,按划线的位置,我们可将之分为:上划线、中划线、基线与下划线。从上至下,分别为上划线(Overline),中划线(StrikeThrough),基线(Baseline)和下划线(Underline)。方法是:设置TextBlock的TextDecorations属性,再对TextDecoration的Pen属性进行设置。,如果没有设置TextDecorations属性,则默认为None,即不带划线修饰。转载 2022-11-30 11:38:11 · 1241 阅读 · 0 评论 -
更改WPF中现有DataGridColumn的日期格式
【代码】更改WPF中现有DataGridColumn的日期格式。转载 2022-10-28 11:33:30 · 865 阅读 · 0 评论 -
.NET的MVVM框架
交互设计师可以专注于使用 XAML 表达用户体验需求,然后创建和视图模型的绑定,而视图模型则是由应用程序开发者开发和维护的。具体地,任何直接引用这个模型的东西都可能以视图模型无法察觉的方式改变某个属性,因此 UI 也不会有相应的改变。因此如果它们关联到存活期比它们更长的视图模型的事件,视图模型将会出现泄露。MVVM 视图模型包含概念模型而不是数据模型,所有业务逻辑和其它操作都是在模型和视图模型里完成的。理想的情况下,视图模型是不知道使用它们的视图的,尤其是。1. 你的模型和视图模型名字相同。转载 2022-10-20 10:49:19 · 2575 阅读 · 0 评论 -
wpf controltemplate contenttemplate
【代码】wpf controltemplate contenttemplate。原创 2022-10-17 09:04:34 · 245 阅读 · 0 评论 -
mvc,mvp,mvvm的区别与联系
MVC层的Model层和View层存在耦合,为了解决这个问题,MVP模式将VIew层和Model层解耦,之间的交互只能通过Presenter层,实际上,MVP模式的目的就是将VIew层和Model层完全解耦,使得对View层的修改不会影响到Model层,而对Model层的数据改动也不会影响到View层。典型流程View层触发的事件传递到Presenter层中处理,Presetner层去操作Model层,并且将数据返回给VIew层,这个过程中,VIew层和Model层没有直接的联系。由此MVP模式应运而生。转载 2022-10-13 10:18:01 · 368 阅读 · 0 评论 -
Decorator和Adorner
简单的想法是,它们是另一组交互的visual,提供与主visual交互的额外途径。那些就是叠加在元素之上的另一个visual,它们装饰并提供额外的功能及交互。Decorator可被用于添加简单的视觉装饰,例如边界(Border),或者更复杂的行为,例如ViewBox,AdornerDecorator,或者是InkPresenter。例如,Border类暴露它的BorderBrush, BorderThickness,和CornerRadius,它们都会影响包围child content的边界的绘制方式。原创 2022-10-12 15:34:28 · 107 阅读 · 0 评论 -
美化WPF中TextBox的Style样式
注意这里有一个HeightToCornerConverter转换器,因为border的圆角和textbox的height成2倍的关系,需要自适应转换,所有在用的时候要注意实例化这个类。转载 2022-09-30 14:14:23 · 834 阅读 · 0 评论 -
在WPF TreeView中使用复选框
输入焦点,因为它会对键盘导航产生负面影响,但是,当它的包含项被选中时,它必须以某种方式切换其检查状态以响应某些击键。如果您对项目应如何以及何时更新其检查状态有不同的规则,只需调整这些方法中的逻辑以满足您的需求。我建议您复制这些要求并将它们粘贴到您最喜欢的文本编辑器中,例如记事本,因为我们将在文章的其余部分按编号引用它们。对象的检查状态发生变化时,它会将简单的规则应用于其父项和子项的检查状态。本文还展示了如何使用。在本文中,我们将检查我的。的项是复选框,这是很常见的,比如在向用户展示一组要选择的分层选项时。转载 2022-09-16 11:07:46 · 1049 阅读 · 0 评论 -
WPF 带CheckBox、图标的TreeView
在WPF实际项目开发的时候,经常会用到带CheckBox的TreeView,虽然微软在WPF的TreeView中没有提供该功能,但是微软在WPF中提供强大的ItemTemplate模板功能和自定义样式,那我们可以自己写一个这样的控件供自己使用。转载:https://www.cnblogs.com/zsmhhfy/archive/2013/03/18/2965755.html。首先写一个供TreeView使用的数据模型,并且实现INotifyPropertyChanged接口,我自己写的这个比较简单。转载 2022-09-16 11:05:32 · 445 阅读 · 0 评论 -
wpf程序启动事件
【代码】wpf程序启动事件。原创 2022-08-30 11:29:10 · 301 阅读 · 0 评论 -
MVVM中轻松实现Command绑定 传递Command参数 ConverterParameter
2、可以把converter的接口由ivaluecovneter改为imultivalueconverter,实现多个绑定。1、converterparameter不是依赖属性,所以不能用binding。wpf 绑定Command 传递CommandParameter参数。3、imultivalueconverter例子。原创 2022-05-12 17:29:51 · 1589 阅读 · 0 评论 -
WPF解决当ScrollViewer中嵌套ItemsControl时,不能使用鼠标来滚动翻页
1. ScrollViewer:滚动条容器,当内容超过指定的长度和宽度后,就会出现滚动条,而且可以使用鼠标中键来滚动, 简单例子如下: 1 <Window x:Class="ConnectScrollViewScrollingDemo.MainWindow" 2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 3 xmlns:x="http://schem转载 2022-05-02 11:37:32 · 1170 阅读 · 0 评论 -
wpf richtextbox
取出其中的内容//方法1 string s = System.Windows.Markup.XamlWriter.Save(richTextBox.Document);//方法2FlowDocument document = richTextBox.Document;System.IO.Stream st = new System.IO.MemoryStream();System.Windows.Markup.XamlWriter.Save(document,st);byte[] data =转载 2022-04-22 17:20:08 · 217 阅读 · 0 评论 -
wpf textbox清空样式
<Style x:Key="TextBoxSearchV" TargetType="{x:Type TextBox}"> <Style.Resources> <VisualBrush x:Key="SText" Stretch="Uniform" TileMode="None" Opacity="0.6" AlignmentX="Left"> <VisualBrush.Visual>原创 2022-03-25 15:28:44 · 545 阅读 · 0 评论 -
C# wpf 实现窗口靠近屏幕边缘自动吸附
参考:https://blog.csdn.net/qq_35831134/article/details/88751067#region 侧吸 private new bool Hide = false; //用来表示当前隐藏状态,例如Hide=false就是不在隐藏状态 string type = ""; //用来表示窗口隐藏在哪个方向 private void SliderTimer_Tick(object原创 2022-02-09 15:37:18 · 1016 阅读 · 0 评论 -
WPF开发之以管理员身份运行2
代码形式using System;using System.Collections.Generic;using System.Collections.Specialized;using System.IO;using System.Reflection;using System.Security.Principal;using System.Threading;using System.Windows;using SchoolClient.Utils;using SchoolClient转载 2022-01-08 17:03:17 · 551 阅读 · 0 评论 -
WPF触发器(Trigger、DataTrigger、EventTrigger)
WPF中有种叫做触发器的东西(记住不是数据库的trigger哦)。它的主要作用是根据trigger的不同条件来自动更改外观属性,或者执行动画等操作。 WPFtrigger的主要类型有:Trigger、MultiTrigger、DataTrigger、MultiDataTrigger、EventTrigger几种。从字面意思上我们想大家已经知道个大概,接下来我将还会用实例代码逐一进行介绍。tr...转载 2022-01-07 10:20:24 · 7497 阅读 · 0 评论 -
wpf 以管理员运行1
1、项目属性2、安全性 选中“启用ClickOne安全设置"3、打开 app.manifset将 <requestExecutionLevel level="asInvoker" uiAccess="false" />改为 <requestExecutionLevel level="requireAdministrator" uiAccess="false" />4、项目属性 关闭”启用ClickOne安全设置“5、保存并重新编译。...原创 2022-01-01 11:46:11 · 240 阅读 · 0 评论 -
WPF Calendar样式
原生的不可改变大小 这样写可以改变样式。<!--Day按钮样式--> <Style x:Key="CalendarDayButtonStyle" BasedOn="{StaticResource XXX}" TargetType="{x:Type CalendarDayButton}"> <Setter Property="MinWidth" Value="100" /> <Setter Property="MinHeigh原创 2021-12-31 17:13:59 · 327 阅读 · 0 评论