WPF
文章平均质量分 61
苏守坤
牛逼轰轰的软件工程师一枚,可惜不是我,哈哈
展开
-
WPF ContextMenu 在MVVM模式中绑定 Command及使用CommandParameter传参
ContextMenu无论定义在.cs或.xaml文件中,都不继承父级的DataContext,所以如果要绑定父级的DataContext,直接DataContext=“{Binding}”是行不通的不能绑父级,但是能绑资源第一步:定义一个中间类用来做资源对象public class BindingProxy : Freezable { #region Overrides of Freezable protected override Freezabl原创 2021-08-09 16:55:46 · 2945 阅读 · 0 评论 -
github图片不显示问题解决
今天在github上查阅资料,但是页面的图片不显示,如下图所示:解决方法,打开路径C:\Windows\System32\drivers\etc下的hosts文件,文件不要选错了哈,使用记事本打开就可以打开内容如下:在最后加上# GitHub Start 192.30.253.112 github.com 192.30.253.119 gist.github.com151.101.184.133 assets-cdn.github.com151.101原创 2021-01-12 10:08:42 · 820 阅读 · 4 评论 -
Visual Studio NuGet离线安装包
扣扣技术交流群:460189483一:Nuget简介:NuGet 是免费、开源的包管理开发工具,专注于在 .NET 应用开发过程中,简单地合并第三方的组件库。当需要分享开发的工具或是库,需要建立一个Nuget package,然后把这个package放到Nuget的站点。如果想要使用别人已经开发好的工具或是库,只需要从站点获得这个package,并且安装到自己的Visual Studio项目或是解决方案里。NuGet能更方便地把一些dll和文件(如jquery)添加到项目中,而不需要从文件中原创 2021-01-11 15:56:03 · 7478 阅读 · 1 评论 -
WPF图片模糊的解决之路
设计稿转为xaml后,设计师开始review UI了,发现图片都模糊了。这一张很神奇,三个图片都是同一张,中间的那个最清楚,上面的这个左右两边清楚,下面的那个四个边都不清楚。这一张,右边是原图,左边是模糊的图,同比放大的。于是开始查原因:1. 检查图片,png, DPI=72,Stretch="None",原图尺寸和xaml里面写的尺寸一致。如果替换为大尺寸的原图,使用时,size写的小一点,同比例缩小,没问题。2. 第一反应是像素对齐,SnapsToDevicePixels=原创 2020-12-14 11:30:14 · 539 阅读 · 0 评论 -
WPF中加载并使用图像资源
一开始如下图:首先右击“WpfApplication”——添加——新建文件夹,取名Image然后右击“Image”文件夹——添加——现有项然后随便找个图片,如下图:然后更改一下MainWindow.xaml中的代码:<Window x:Class="WpfApplication3.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="ht原创 2020-11-30 15:14:53 · 5461 阅读 · 0 评论 -
WP ListBox 遍历DataTemplate(获取所有控件)
项目需求,ListBox选中切换其选中项的Image控件的图片,其它每项ListBoxItem的相应Image控件都设置为未选中图片.解决方案适用于ComboBox等:1.先看xaml文件:<DataTemplate x:Name="BusTemplate" x:Key="LBDataTemplate"> <StackPanel> <StackPanel Orientation="Horizontal" Margin="10">原创 2020-11-30 15:08:08 · 881 阅读 · 0 评论 -
WPF右键菜单及样式
WPF中的右键菜单主要是通过ContextMenu来实现,ContextMenu的使用有两种方式一、.在Resources中声明,在控件中使用。1.在Resources中添加ContextMenu <Window.Resources> <ContextMenu x:Key="ContextMenu"> <MenuItem Name="MiFullScreen" Header="全屏"/>原创 2020-11-27 17:18:23 · 7412 阅读 · 0 评论 -
WPF TextBlock的数据绑定
绑定单个数据源:<TextBlock Text="{Binding PrintTimes}" Height="auto" Width="500" HorizontalAlignment="Center" />现在,想绑定另一个属性名是否可以将两个或多个值同时绑定?可以用如下代码实现<TextBlock> <Run Text="Name = "/> <Run Text="{Binding Name}"/> <Run ...原创 2020-11-20 13:46:32 · 13440 阅读 · 1 评论 -
C# 生成随机数的3种方式
随机数的定义为:产生的所有数字毫无关系.在实际应用中很多地方会用到随机数,比如需要生成唯一的订单号.在C#中获取随机数有三种方法:一.Random 类Random类默认的无参构造函数可以根据当前系统时钟为种子,进行一系列算法得出要求范围内的伪随机数.Random rd = new Random();int i = rd.Next();这种随机数可以达到一些要求较低的目标,但是如果在高并发的情况下,Random类所取到的系统时钟种子接近甚至完全一样,就很有可能出现重复,...原创 2020-11-18 17:51:16 · 2777 阅读 · 0 评论 -
C# 获取随机可用端口号
TCP与UDP段结构中端口地址都是16比特,可以有在0---65535范围内的端口号。对于这65536个端口号有以下的使用规定:(1)端口号小于256的定义为常用端口,服务器一般都是通过常用端口号来识别的。任何TCP/IP实现所提供的服务都用1---1023之间的端口号,是由IANA来管理的;(2)客户端只需保证该端口号在本机上是惟一的就可以了。客户端口号因存在时间很短暂又称临时端口号;(3)大多数TCP/IP实现给临时端口号分配1024---5000之间的端口号。大于5000的端口号是为其他服原创 2020-11-18 17:17:22 · 2389 阅读 · 0 评论 -
WPF label、TextBlock中如何控制数据显示的位数
例如:我想在Label中保留两位有效小数位<Label> <Label.Content> <TextBlock Text="{Binding PlanMu, StringFormat={}{0:F2}}"></TextBlock> </Label.Content></Label>原创 2020-09-02 14:48:19 · 3295 阅读 · 0 评论 -
WPF的文件选择与保存
1.引用Windows.Form2.打开文件System.Windows.Forms.OpenFileDialog openFileDialog1 = new System.Windows.Forms.OpenFileDialog(); openFileDialog1.InitialDirectory = "c:\\"; openFileDialog1.Filter = "(*.mdb)|*.mdb"; openFileD原创 2020-08-28 14:59:28 · 1147 阅读 · 0 评论 -
C# 键值对
1.初始化一个键值对1 //初始化定义一个键值对,注意最后的括号2 Dictionary<int, string> dic = new Dictionary<int, string>();2.为键值对添加元素1 //键值对的Add函数2 dic.Add(2, "zhao");3 dic.Add(4, "qian");4 dic.Add(6, "sun");5 dic.Add(8, "li");3.键值对的ContainsKey和ContainsVa.原创 2020-08-10 17:04:53 · 12274 阅读 · 1 评论 -
C#模拟键盘输入、鼠标移动和点击、设置光标位置及控制应用程序的显示
主要是储备一些知识,防备以后用的时候方便查找资料C# 模拟鼠标移动与点击https://www.cnblogs.com/blackice/p/3418414.html使用C#模拟键盘输入、鼠标移动和点击、设置光标位置及控制应用程序的显示https://www.cnblogs.com/makesense/p/6215732.htmlC# 系统应用之鼠标模拟技术及自动操作鼠标https://www.cnblogs.com/sanler/p/7474473.html...原创 2020-06-29 16:47:16 · 4650 阅读 · 0 评论 -
WPF绘制几何图形
一 WPF的基本图形对象ShapeWPF图形的基类是Shape,所有的wpf图形类都是继承于Shape。WPF提供了许多现成的Shape对象。所有形状对象都从Shape类继承。可用的形状对象包括Ellipse、Line、Path、PolygonPolyline和Rectangle。Shape对象共享以下公共属性。 Stroke:描述形状轮廓的绘制方式。 StrokeThickness:描述形状轮廓的厚度。 Fill:描述形状内部如何绘制。 用于指定坐标和顶点...原创 2020-06-29 16:34:08 · 3783 阅读 · 0 评论 -
WPF中三种方法得到当前屏幕的宽和高
WPF程序中的单位是与设备无关的单位,每个单位是1/96英寸,如果电脑的DPI设置为96(每个英寸96个像素),那么此时每个WPF单位对应一个像素,不过如果电脑的DPI设备为120(每个英寸120个像素),那此时每个WPF单位对应应该是120/96=1.25个像素一般在程序中我们常常需要得到当前屏幕的宽和高,常见做法有:1.这两个方法可以返回当前屏幕选择的分辨率,该分辨率是以像素为单位,在DPI为96的情况下我们可以利用它们来做一些控件的定位,因为此时WPF单位对应一个像素,而当DPI非96的情况下原创 2020-06-23 11:55:40 · 4998 阅读 · 1 评论 -
WPF 修改按钮按下的颜色
首先在后台创建一个附加属性public class ButtonBrush{ public static readonly DependencyProperty ButtonPressBackgroundProperty = DependencyProperty.RegisterAttached( "ButtonPressBackground",...原创 2020-01-07 15:34:22 · 11196 阅读 · 1 评论 -
C#封装成DLL,并在C#中调用
在项目开发时,需要将自己写的C#方法封装,供别人二次开发使用,方法就是封装成DLL,让别人调用就好了一、C#封装成DLL1、在VS中创建项目选择类库,命名 myDll 2、建立好项目后自动生成的代码如下: 代码修改如下,添加自己要封装的C#代码,注意修饰符必须为publicusing System;using System.Collections.Gen...原创 2019-11-07 10:48:56 · 3772 阅读 · 1 评论 -
WPF水珠效果按钮组的实现教程
扣扣技术交流群:460189483效果图相关知识这部分基本就是废话,网上都能找到,我只不过是整理了以下.建议先不看,用到的时候可以回来看看贝塞尔曲线先来看两组图,有助于理解什么是贝塞尔曲线(图片取自维基百科,参考链接1)二次贝塞尔曲线:P0是起点,P2是终点,P1是控制点三次贝塞尔曲线:P0是起点,P2是终点,P1是控制点1,P2是控制点2...原创 2019-05-10 16:16:56 · 776 阅读 · 0 评论 -
WPF中的数据绑定--元素绑定
扣扣技术交流群:4601894831. 元素绑定数据绑定最简单的形式是源对象是WPF元素而且源属性是依赖项属性。依赖项属性具有内置的更改通知支持。因此当源对象中改变依赖属性的值时,会立即更新目标对象中的绑定属性。绑定表达式当使用绑定表达式时,不必对源对象做任何改动,只需配置源对象使其属性具有正确的值范围。<Slider Grid.Row="0" Name="slide...原创 2019-04-30 11:58:21 · 2504 阅读 · 0 评论 -
WPF 自定义ItemsControl/ListBox/ListView控件样式
扣扣技术交流群:460189483一、前言ItemsControl、ListBox、ListView这三种控件在WPF中都可作为列表信息展示控件。我们可以通过修改这三个控件的样式来展示我们的列表信息。既然都是展示列表信息的控件,那他们有什么相同点和不同点呢。同: 1、这三个控件都是列表型控件,可以进行列表绑定(ItemsSource); 2、这三个控件均使用Items...原创 2019-05-08 15:07:16 · 2475 阅读 · 0 评论 -
WPF中的数据绑定--基础
WPF中的数据绑定提供了很强大的功能。与普通的WinForm程序相比,其绑定功能为我们提供了很多便利,例如Binding对象的自动通知/刷新,Converter,Validation Rules,Two Way Binding等功能,省去了很多维护的繁琐工作。另外对于WPF中提供的数据模板功能,让我们可以轻松定制可以被复用的控制呈现的模块—但这是以数据绑定为前提来做到轻松易用的效果的。数据提供者例...原创 2019-04-30 15:18:06 · 426 阅读 · 0 评论 -
WPF INotifyPropertyChanged使用方法
扣扣技术交流群:460189483INotifyPropertyChanged 接口:向客户端发出某一属性值已更改的通知。NotifyPropertyChanged接口用于向客户端(通常是执行绑定的客户端)发出某一属性值已更改的通知。一般使用地方是:加载数据时,及时更新相应的数据加载名称。操作功能时,及时提示相应的错误信息。实例:xaml代码: <TextBlo...原创 2019-04-30 15:22:44 · 1381 阅读 · 0 评论 -
WPF 控件模板
扣扣技术交流群:460189483引言:在进行WPF项目开发过程中,由于项目的需要,经常要对某个控件进行特殊的设定,其中就牵涉到模板的相关方面的内容。本文也是在自己进行项目开发过程中遇到控件模板设定时集中搜集资料后整理出来的,以供在以后的项目开发过程中查阅。WPF有控件模板和数据模板,从字面上来看,控件模板主要是用来改变控件的外观,数据模板则定义控件中数据的表现方式。下面让逐一进行介绍。...原创 2019-04-30 15:29:57 · 360 阅读 · 0 评论 -
WPF ListView 的三种数据绑定方式
1.最原始的绑定方式:public ObservableCollection<object> ObservableObj;public MainWindow(){ InitializeComponent(); ObservableObj = new ObservableCollection<object>(); ObservableObj....原创 2019-04-30 15:36:55 · 10810 阅读 · 0 评论 -
WPF中ListBox的绑定
WPF中列表式控件派生自ItemsControl类,继承了ItemsSource属性。ItemsSource属性可以接收一个IEnumerable接口派生类的实例作为自己的值(所有可被迭代遍历的集合都实现了这个接口,如数组、List<T>等)。每一个 ItemsControl的派生类都有自己的条目容器,如ListBox的条目容器ListBoxItem.当我们利用Binding为一个It...原创 2019-04-30 15:40:04 · 10360 阅读 · 0 评论 -
MVVM模式的 数据绑定
数据绑定要达到的效果数据绑定要达到什么效果呢,就是在界面中绑定了数据源之后,数据在界面上的修改能反映到绑定源,同时绑定源的修改也能反映到界面上。从界面反映到绑定的数据源是很容易理解的,因为在绑定过程中我们指定了DataContext和Binding的对象,很容易找到绑定的源并修改。但数据源修改时怎么通知界面呢?因为ViewModel中被绑定的属性并不知道谁绑定了它,如果在ViewModel中存...原创 2019-04-30 15:41:45 · 1017 阅读 · 0 评论 -
MVVM设计模式的事件绑定
为什么要事件绑定这个问题其实是很好理解的,因为事件是丰富多样的,单纯的命令绑定远不能覆盖所有的事件。例如Button的命令绑定能够解决Click事件的需求,但Button的MouseEnter、窗体的Loaded等大量的事件要怎么处理呢?这就用到了事件绑定。事件绑定要使用事件绑定需要借助System.Windows. interactivity,如果安装了Blend,里面就包含了这个d...原创 2019-04-30 15:42:36 · 425 阅读 · 0 评论 -
MVVM模式View和ViewModel的通信
还需要些什么呢在前面几篇博客中我们尝试去实现了MVVM中的数据绑定、命令绑定和事件绑定。貌似实现的差不多了。我最早尝试用MVVM去开发的时候也是这么想的,没有用第三方框架,甚至只是实现了数据绑定和命令绑定就开搞了,遇到需要订阅事件的时候就把代码写在后台。那时候经常自我洗脑:设计模式是死的,人是活的,不能犯教条主义错误,后台写点代码影响不大。我确实很好的贯彻了这个思想,逻辑自然是乱得一塌糊涂。后...原创 2019-04-30 15:43:25 · 2816 阅读 · 0 评论 -
C#获取屏幕的分辨率
扣扣技术交流群:460189483在C#中获取当前屏幕的分辨率的方法1:rectangle类。命名空间为:system.Drawing。 system.Drawing.Rectangle rec=Screen.GetWorkingArea(this); int SH=rec.Height(); int SW=rec.Width...原创 2019-05-09 16:27:35 · 6921 阅读 · 0 评论 -
WPF微信聊天和通讯录按钮样式代码分享
扣扣技术交流群:460189483一、先用Path画一下轮廓<Path Stroke="Red" StrokeThickness="1" Margin="10" StrokeDashCap="Round"> <Path.Data> <GeometryGroup> <PathGeometry Figures="M 4,40 ...原创 2019-05-07 11:49:04 · 663 阅读 · 0 评论 -
WPF中button按钮同时点击多次触发click解决方法
扣扣技术交流群:460189483解决WPF中button按钮同时点击多次触发click的方法,供大家参考,具体内容如下DateTime lastClick = DateTime.Now;object obj = new object();int i = 0;private void Button_Click(object sender, RoutedEventArgs e){...原创 2019-05-07 11:55:26 · 2981 阅读 · 0 评论 -
WPF制作带小箭头的按钮完整代码
扣扣技术交流群:460189483在没给大家介绍实现代码之前,先给大家看下效果图,如果大家感觉效果不错,请参考实现代码:XAML代码:<ControlTemplate x:Key="btnTpl" TargetType="RadioButton"> <StackPanel Orientation="Vertical" Height="30" Backgrou...原创 2019-05-07 11:58:20 · 1115 阅读 · 0 评论 -
C# WPF 通过委托实现多窗口间的传值的方法
扣扣技术交流群:460189483在使用WPF开发的时候就不免会遇到需要两个窗口间进行传值操作,当然多窗口间传值的方法有很多种,本文介绍的是使用委托实现多窗口间的传值。在上代码之前呢,先简单介绍一下什么是C#中的委托(如果只想了解如何传值可以略过这部分)在网络上有很多对于委托的介绍和讲解,经过我的学习和总结加上了一点我自己的理解,我认为委托是一种类似于C语言的指针,但是它指向的是方法而不...原创 2019-05-07 13:29:16 · 1643 阅读 · 0 评论 -
WPF设置Button的Style
扣扣技术交流群:460189483一、前言程序界面上的按钮多种多样,常用的就这几种:普通按钮、图标按钮、文字按钮、图片文字混合按钮。本文章记录了不同样式类型的按钮实现方法。下面话不多说了,来一起看看详细的介绍吧。二、固定样式的按钮固定样式的按钮一般在临时使用时或程序的样式比较固定时才会使用,按钮整体样式不需要做大的改动。2.1 普通按钮-扁平化风格先看效果:来自苏守坤的...原创 2019-04-30 09:52:30 · 13832 阅读 · 1 评论