![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
WPF
文章平均质量分 68
OneByOneDotNet
智者建桥,愚者建墙,天之道,损有余而补不足。人之道,损不足以奉有余。
展开
-
C#遍历获取枚举的DescriptionAttribute内容
var typeNames = new List<string>(); var enumType = typeof(MouduleType); foreach (var value in Enum.GetValues(enumType)) { var fieldInfo = enumType.GetField(Enum.GetName(enumType, value)); ...原创 2021-11-19 09:35:10 · 440 阅读 · 0 评论 -
搭建Wpf框架(1) —— 管理系统-Wpf客户端框架2.0(OA,聊天,定时任务)
本次升级内容涉及到1.后端使用ASP.net core,采用的是Colder.Admin.AntdVue的框架,升级到.netcore5.0。源码地址:(进群51286643提供服务端的开源代码地址),在原作者的基础上加了OA,聊天,定时任务等。大家看原作者的即可吧。在线浏览地址,AStudio框架,账号Admin,密码Admin手机版在线浏览地址,AStudio-App框架,账号Admin,密码Admin2.CS端,升级到.netcore3.0和net472。源码地址:艾竹/AIStudio.Wp转载 2021-08-28 10:49:51 · 2074 阅读 · 0 评论 -
Prism Unity WPF注册 泛型 Repository
protected override void RegisterTypes(IContainerRegistry containerRegistry) { var builder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json", opti..原创 2021-08-17 17:38:23 · 593 阅读 · 0 评论 -
WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=True)
在 WPF 中,如果想做一个背景透明的异形窗口,基本上都要设置 `WindowStyle="None"`、`AllowsTransparency="True"` 这两个属性。如果不想自定义窗口样式,还需要设置 `Background="Transparent"`。这样的设置会让窗口变成 Layered Window,WPF 在这种类型窗口上的渲染性能是非常糟糕的。本文介绍如何使用 `WindowChrome` 而不设置 `AllowsTransparency="True"` 制作背景透明的异形窗口,这可转载 2021-08-06 08:52:10 · 2756 阅读 · 1 评论 -
Prism WPF Region
这里有个目录什么是Region(区域)?定义(动态占位符)松耦合在xaml内创建Region在Code里面创建Region什么是RegionManager?什么是RegionAdapter?创建自定义RegionAdapter什么是Region(区域)?定义(动态占位符)简单来说,Region可以理解为View的动态占位符,在View上进行视图占位,就像图书馆占座一样,方便后续注入UI元素。比如我们可以将我们的程序划分为MenuRegion,Top Region、和Main Region.松耦合原创 2021-08-05 16:52:48 · 434 阅读 · 0 评论 -
Prism8 for wpf学习笔记-Prism简介和安装
这里写目录标题什么是Prism?下载并安装Prism系统需求源码和示例[NuGet packages](https://docs.microsoft.com/zh-cn/nuget/quickstart/install-and-use-a-package-in-visual-studio) 安装prism安装生产力工具(可在了解prism基础组成后回退回来安装)Prism Template PackSnippets(代码片段)propp 具有支持字段的属性,取决于 BindableBasecmd 创建一个原创 2021-07-24 15:48:31 · 3367 阅读 · 1 评论 -
MaterialDesign OpenDialogCommand不生效
只需要将 Button 放 置在 DialogHost:内即可: <materialDesign:DialogHost Grid.Column="2"> <Button Command="{x:Static materialDesign:DialogHost.OpenDialogCommand}"> <Button.CommandParameter原创 2021-07-13 17:26:42 · 618 阅读 · 0 评论 -
WPF-MenuItem只显示最后一个Icon
我在配置一个ContextMenu,想实现动态后台添加MenuItem。然而我遇到了这个问题:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OwH8y74r-1621672714862)(https://files.mdnice.com/user/10081/7b2653a8-b291-4d47-a2b1-96c8a385b439.png)]无论是写死icon,还是后台赋值,都只有最后一个icon是显示的····经过一番摸索,找到了个解决方案。<Contex原创 2021-05-22 16:40:27 · 1306 阅读 · 0 评论 -
从源码角度解析依赖属性
什么是依赖属性?依赖属性是属性的全新实现,它是在C#属性的基础上包装而成。从源码盘它我们从system.windows 源码,可以注意到因为DependencyProperty类没有公有的构造函数。反而只能使用静态的DependencyProperty.Register()方法创建那我们看看最复杂的Register方法,可以看到有属性名Name,属性类型,拥有者类型,以及默认元数据值以及验证回调函数。我们也可以观察到它调用了个RegisterCommon方法,进行了简单的传参,我们继续看看原创 2021-04-30 16:42:50 · 826 阅读 · 1 评论 -
《深入浅出WPF》-刘铁猛学习笔记——XAML
这里有个目录XAML是什么?导人程序集和引用其中的名称空间XAML的树型结构Attribute (特性、标记、属性)Property (属性)属性赋值字符串赋值使用属性元素( Property Element)进行复杂赋值XAML 注释后记XAML是什么?XAML是微软公司创造的一种开发语言,XAML的全称是 Extensible Application Markup Language,即可拓展应用程序标记语言。它由XML拓展而来,类似的,它的语法以这样标记语法为主,以下例子示例声明一个Button。原创 2021-03-03 11:47:41 · 1166 阅读 · 0 评论 -
Fody,告别烦人的INotifyPropertyChanged,最简方式实现通知!
最简方式实现INotifyPropertyChanged,只需3分钟原创 2021-01-30 09:43:11 · 2065 阅读 · 1 评论 -
.Net 5 C# 泛型(Generics)
3分钟保证你理解泛型原创 2021-01-20 13:45:17 · 192 阅读 · 0 评论 -
.Net 5 C# 反射(Reflection)
当我们需要获取一个程序集或者一个类的所有属性(名称、类型等)、方法(名称、类型等)等信息时,我们就需要反射。> 反射就像一个朦胧的镜子,抽象折射一个程序集或者一个类的所有信息。> 反射就像一个朦胧的镜子,抽象折射一个程序集或者一个类的所有信息。> 反射就像一个朦胧的镜子,抽象折射一个程序集或者一个类的所有信息。原创 2021-01-20 12:56:11 · 394 阅读 · 0 评论 -
C # 9.0的record
官方消息: c # 9.0已经过时了!早在五月份,我就在博客中介绍了 c # 9.0计划,下面是该文章的更新版本,以便与我们最终发布的计划相匹配。对于每一个新的 c # 版本,我们都在努力提高常见编码场景的清晰度和简单性,c # 9.0也不例外。这次的一个特别重点是支持数据形状的简洁和不可变的表示。Init-only properties对象初始化器非常棒。它们为类型的客户端创建对象提供了一种非常灵活和可读的格式,特别适用于嵌套对象创建,在嵌套对象创建过程中,可以一次性创建整个对象树。下面是一个简单的原创 2021-01-20 09:06:11 · 339 阅读 · 0 评论 -
.net core Wpf中使用cefsharp加载本地html网页,并且cefsharp支持any cpu
第一步,在程序包管理器安装 cefsharp.wpf第二步您必须在项目的第一个 < propertygroup > 中添加< cefsharpanycpusupport > true </cefsharpanycpusupport > (例如. csproj 文件)。第三步,上代码public partial class App : Application{ public App() { //Add Custom assem原创 2020-11-24 18:02:28 · 1424 阅读 · 0 评论 -
.NET5 它来了!微软大一统时代来临!
今天双11,Microsoft released.NET 5(在他们的开发博客上同时发布)。新版本的重点是改进。NET Core 3.1: 更小的单文件应用程序、对 Windows ARM64的支持以及更强大的 JsonSerializer api 是。NET 5,以及许多可观的性能改进。新的主要语言版本(c # 9和 f # 5)也是本版本的一部分。统一的平台愿景也得到了微软首席项目经理 Richard Lander 的加强。NET Core.然而,尽管最初的范围发生了变化,。NET 5带来了许多改进翻译 2020-11-11 08:47:39 · 1691 阅读 · 0 评论 -
WPF mvvm 验证,耗时两天的解决方案
常用类类名介绍ValidationRule所有自定义验证规则的基类。提供了让用户定义验证规则的入口。ExceptionValidation表示一个规则,该规则检查在绑定源属性更新过程中引发的异常。它是一个内置的规则,它检查在绑定源属性更新过程中引发的异常。ValidationResult数据验证结果的表现方式。ValidationRule对象的Validate方法执行完毕后通过ValidationResult来表示验证的结果。这里包含了错误信息—ErrorConten原创 2020-09-27 08:45:39 · 316 阅读 · 0 评论 -
WPF Selector、SelectIndex、SelectedValue、SelectedValuePath、SelectedItem这几兄弟你分的清楚嘛?
SelectorSelector是一个抽象类,继承ItemsControl类(包含任何类型的对象(例如字符串,图像或面板)的集合),而本文的4个兄弟都是Selector类下的4个属性。SelectIndexSelectIndex的作用是获取或设置当前选择项中第一项的索引,如果选择项为空,则返回负数(-1)大致理解成将集合像数据那样排序,index就是序号,根据序号设置获取选中项。以下代码表示选择索引为0也就是默认选中第一项。<ListBox Margin="10,0,0,5" Selec原创 2020-09-19 16:45:48 · 2912 阅读 · 0 评论 -
WPF显示命名空间不存在对应名称
3个办法1 切换到Release模式,再生成。生成成功后切换回Debug模式就不报错了。这是Release模式下找不到我们自定义的控件导致的报错。所以切换为Release后生成则可以解决此问题。2.清理重新生成3.重启VS!有用点个赞再走呗~...原创 2020-08-05 11:18:18 · 2864 阅读 · 1 评论 -
WPF设计模式下选定数据源?F12直达ViewModel的方法,超好用
您只需要在xaml上新增这一行代码,记得引用对应命名空间哦d:DataContext="{d:DesignInstance viewModel:LoginViewModel, IsDesignTimeCreatable=True}"点个赞再走呗~~~原创 2020-08-05 11:13:31 · 665 阅读 · 1 评论 -
WPF combobox设置默认选项不生效的问题
combobox 是常用的控件,当我们需要绑定设置默认选项时,往往会绑定SelectedItem 属性去设置,可是你会惊奇地发现SelectedItem的值绑定了,它依旧是熟悉的模样根据官方的解释该属性确实是设置选中的第一项的,可是为什么没有生效呢?我们解析这个控件[System.Windows.TemplatePart(Name=“PART_EditableTextBox”, Type=typeof(System.Windows.Controls.TextBox))][System.Wi原创 2020-06-24 08:24:18 · 2603 阅读 · 1 评论 -
WPF排版布局经验总结(干货)简短不疲倦
本文不过多讲述wpf的基础布局控件,本文只记录WPF排版的技巧,这是个人的总结,不能符合所有情况,如果有何不对的地方,请评论指正,谢谢。1.区域划分在接手一个界面的时候,先纵观全局,将眼见的区域划分,推荐优先使用Grid进行区域的划分,尽量设置行列的宽高为Auto或者按*比例进行划分。2.寻找界面的共性将所看到的属性作用相同的控件归类,比如大部分都是Label,可以将la...原创 2020-04-14 13:56:25 · 583 阅读 · 0 评论 -
UserControl和CustomControl两者区别
UserControl将多个WPF控件(例如:TextBox,TextBlock,Button)进行组合成一个可复用的控件组; 由XAML和Code Behind代码组成; 不支持样式/模板重写; 继承自UserControl;例如当需要界面切换时,可以将多个TextBox封装到一起为一个UserControl,然后进行加载。UserControl可以理解为多个控件的组合。Cust...原创 2020-04-10 15:40:02 · 1014 阅读 · 0 评论 -
像羽毛一样轻的MVVMLight(一)(MVVM 和 MVVMLight简介)
致敬 在此致敬翁智华大佬,感谢大佬为后辈们写下如此详细的文档,本文将在原文基础上添加些自己的理解,希望这样优秀的文档广为流传。原文请参考https://www.cnblogs.com/wzh2010/p/6285954.html一、MVVM 和...转载 2020-04-10 12:29:06 · 507 阅读 · 0 评论 -
WPF学习里程(二) XAML基础
什么是XAML?官方语言:XAML是eXtensible Application Markup Language的英文缩写,相应的中文名称为可扩展应用程序标记语言,它是微软公司为构建应用程序用户界面而创建的一种新的描述性语言。人话:XAML定义了WPF应用中的按钮及各种控件的布局。具体长什么样呢?如下图然后我们了解一下XAML基础XAML文档中的每个元素都映射为....原创 2020-04-04 00:27:12 · 180 阅读 · 0 评论 -
3分钟搞懂什么是WPF。
1.首先,推荐猛哥(刘铁猛)的书籍 《深入浅出WPF》,引用猛哥的话:“使用WPF开发管理系统这个提法是不对的”,因为WPF是(Windows Presentation Foundation )的简称,即是用来编写表现层的技术和工具。主要负责将程序展示给用户看,类似的有Windows Forms、Asp.NET.Silverlight等等。 通俗的话说,WPF就是写编写...原创 2020-04-02 23:14:22 · 8315 阅读 · 0 评论