96 热度

WPF 让窗口激活作为前台最上层窗口的方法

在 WPF 中,如果想要使用代码控制,让某个窗口作为当前用户的输入的逻辑焦点的窗口,也就是在当前用户活动的窗口的最上层窗口,默认使用 Activate 方法,通过这个方法在大部分设备都可以做到激活窗口。但是在一些特殊的设备上,使用下面代码调起窗口只是在任务栏闪烁图标,而没有让窗口放在最上层...

收录时间: 2020-04-24
分类: WPF
贡献者: Rector
71 热度

C#/.NET的WPF应用程序编程开发中如何从System.Drawing.Bitmap加载位图(BitmapImage)?

在C#/.NET的WPF应用程序编程开发中,如何从System.Drawing.Bitmap加载位图(BitmapImage)并显示在Image控件中呢? 类似如下的效果...

收录时间: 2020-04-24
分类: WPF
贡献者: Rector
57 热度

C#/.NET的WPF应用程序编程开发中如何实现文本框TextBox的占位字符效果?

在前端开发中,如果需要实现一个文本框的占位字符效果,那是非常简捷的操作,只需设置文本框input的placeholder属性即可,但在WPF的桌面应用程序中,文本框TextBox是没有默认的占位字符p...

收录时间: 2020-04-21
分类: WPF
贡献者: Rector
53 热度

WPF 动画实战 点击时显示圆圈淡出效果

本文告诉大家一个有趣的动画,在鼠标点击的时候,在点击所在的点显示一个圆圈,然后这个圆圈做动画变大,但是颜色变淡的效果。本文的控件可以让大家将对应的容器放在自己应用里面就能实现这个效果。这个效果特别简单,属于入门级的动画,代码也很少,请看效果...

收录时间: 2020-04-14
分类: WPF
贡献者: Rector
51 热度

WPF 升级 .NET Core 的理由

本文列举一些让 WPF 升级 .NET Core 的理由。

收录时间: 2020-04-14
分类: WPF
贡献者: Rector
81 热度

WPF 为何不要重写默认 string 字符串的 DataTemplate 数据模版

在 WPF 中可以通过 DataTemplate 给任意的类型重写这个类型在界面显示的数据模版,我想要让小伙伴的界面都有相同的样式,此时我就尝试重写字符串的数据模版,但是我就踩到了一个坑。重写默认样式的时候需要小心,我更多是建议小伙伴写样式,然后通过 Style 获取静态资源,而不是重写默认样式。补充一下细节,什么是默认样式?在 WPF 中,如果没有给对应的资源一个 Key 的值,那么将会做到某个指定类型的默认样式...

收录时间: 2020-04-10
分类: WPF
贡献者: Rector
AD 友情赞助
97 热度

[WPF]总结一些我在开发WPF时常用的工具

我从一万二千年前开始写XAML,这么多年用了很多各式各样的工具,现在留在电脑里的、现在还在用的、在写WPF时用的也就那么几个。这篇文章总结了这些工具,希望这些工具可以让WPF开发者事半功倍。

收录时间: 2020-03-30
分类: WPF
贡献者: Rector
129 热度

Showing a Custom ContextMenu on a WPF Window Title Bar

ContextMenus are a staple in any WPF desktop application. I honestly can’t think of a single WPF application that didn’t use a ContextMenu. Most of the time, these ContextMenus are placed within the content of the application. Maybe you have a grid of records, you right-click a record, and get a ContextMenu to act on the selected record.

收录时间: 2020-01-14
分类: WPF
贡献者: Rector
153 热度

.NET Core 3 WPF MVVM框架 Prism系列之模块化

本文将介绍如何在.NET Core3环境下使用MVVM框架Prism的应用程序的模块化前言我们都知道,为了构成一个低耦合,高内聚的应用程序,我们会分层,拿一个WPF程序来说,我们通过MVVM模式去将一个应用程序的分成View-ViewModel-Model,大大消除之前业务逻辑和界面元素之间存在的高耦合,使我们后台开发人员可以将重点更放在业务逻辑层面上,属于UI界面的则可以交给更专业的UI人员但是一个应用程序是由不同的业务模块来组合而成,我们理想状态下,每个业务模块拥有着能够独立的功能,并且和其他业务模块之间的是低耦合关系的,且每个业务模块可以单独用来开发,测试和部署,这样组成的应用程序是非常...

收录时间: 2020-01-13
分类: WPF
贡献者: Rector
180 热度

.NET Core学习笔记(2)—— WPF使用UWP Custom Control

自.NET Core 3.0开始,某软加入了对WPF的支持。同时对XAML Islands也做了进一步加强。在.NET Core 3.0之前,我们只能在WPF程序中,通过两种方式有限制地使用Standard UWP Control:微软包装好的第一方控件,比如InkCanvas,InkToolbar,MediaPlayerElement和MapControl,这些可以直接当成WPF的控件写到XAML中。通过WindowsXamlHost来使用的其他微软第一方Standard UWP Control,这种方式不支持XAML,需要在cs代码中进行类型转换和订阅事件。这两种方式都存在一些问题:很多U...

收录时间: 2019-12-24
分类: WPF
贡献者: Rector
202 热度

WPF 画一个3D矩形并旋转

具体的代码还是线性代数。主要是旋转和平移。这个例子的中模型是在世界原点建立。所以旋转会以自身轴心旋转。如果不在世界原点建立模型,还想以自身为旋转轴旋转。则是需要以下步骤:模型的中心点为V1(100,100,0)假设中心为轴(平行于Y轴),旋转A度,也就是说自身中心点的Y轴旋转。步骤...

收录时间: 2019-12-16
分类: WPF
贡献者: Rector
122 热度

号外号外!WPF界面开发者福音,DevExpress支持.NET Core 3.0!

通过DevExpress WPF Controls,你能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件的衍伸产品,还是以数据为中心的商业智能产品,都能通过DevExpress WPF控件来实现。DevExpress WPF Controls v19.2全新发布,新版本支持.NET Core 3.0、增强Data Grid和TreeList控件功能等,欢迎立即下载体验最新版哦...

收录时间: 2019-12-10
分类: WPF
贡献者: Rector
281 热度

开源WPF控件库MaterialDesignInXAML推荐

今天介绍一个开源的C# WPF开源控件库,非常漂亮,重点是开源哦WPF做桌面开发是很有优势的,除了微软自带的控件外,还有很多第三方的控件库,比如收费的Dev Express For WPF、Telerik For WPF等,及Github上开源免费的控件库如MaterialDesignInXAML等。WPF做桌面开发是很有优势的,除了微软自带的控件外,还有很多第三方的控件库,比如收费的Dev Express For WPF、Telerik For WPF等,及Github上开源免费的控件库如MaterialDesignInXAML等。本文主要介绍第三方C# WPF开源控件库: Material...

收录时间: 2019-12-02
分类: WPF
贡献者: Rector
331 热度

VS2019打包WPF安装程序最新教程

VS2019打包WPF安装程序最新教程,使用Visual Studio 2019开发的WPF程序如果想要打包为安装程序,除了在VS2019找到WPF项目类库直接右键发布之外,更常用的还是将其打包为exe或者msi的安装程序;打包成安装程序的话,客户得到安装程序直接安装即可使用,即使在离线环境情况下,安装好就可以使用了。一些传统行业发布程序时,比较常用这种方法,如医疗,教育等。演示程序打包一览在本教程中,我完整的打包了一个简单的WPF程序,最终安装好了以后,在桌面有一个我的程序的快捷方式图标,点击这个图标即可打开应用程序。WPF安装程序桌面图标 程序运行后的效果如下所示:VS2019打包WPF安...

收录时间: 2019-11-19
分类: WPF
贡献者: Rector
255 热度

WPF 的 Application.Current.Dispatcher 中,Dispatcher 属性一定不会为 null

在 WPF 程序中,可能会存在 Application.Current.Dispatcher.Xxx 这样的代码让一部分逻辑回到主 UI 线程。因为发现在调用这句代码的时候出现了 NullReferenceException,于是就有三位小伙伴告诉我说 Current 和 Dispatcher 属性都可能为 null。然而实际上这里只可能 Current 为 null 而此上下文的 Dispatcher 是绝对不会为 null 的。(当然我们这里讨论的是常规编程手段,如果非常规手段,你甚至可以让实例的 this 为 null 呢……)由于本文所述的两个部...

收录时间: 2019-08-27
分类: WPF
贡献者: Rector
AD 友情赞助
260 热度

WPF 的 Application.Current.Dispatcher 中,为什么 Current 可能为 null

更新于 2019-08-27 05:05在 WPF 程序中,可能会存在 Application.Current.Dispatcher.Xxx 这样的代码让一部分逻辑回到主 UI 线程。因为发现在调用这句代码的时候出现了 NullReferenceException,于是就有三位小伙伴告诉我说 Current 和 Dispatcher 属性都可能为 null。然而实际上这里只可能 Current 为 null 而此上下文的 Dispatcher 是绝对不会为 null 的。(当然我们这里讨论的是常规编程手段,如果非常规手段,你甚至可以让实例的 this 为 null 呢……)当你的应用程序退出时...

收录时间: 2019-08-27
分类: WPF
贡献者: Rector
316 热度

[WPF自定义控件库]好用的VisualTreeExtensions

微软在Silverlight Toolkit里提供了一个好用的VisualTreeExtensions,里面提供了一些查找VisualTree的扩展方法。在那个时候(2009年),VisualTreeExtensions对我来说正好是个很棒的Linq和扩展方法的示例代码,比那时候我自己写的FindChildByName之类的方法好用一万倍,所以我印象深刻。而且因为很实用,所以我一直在用这个类(即使是在WPF中),而这次我也把它添加到Kino.Wpf.Toolkit中,可以在 这里 查看源码。...

收录时间: 2019-07-11
分类: WPF
贡献者: Rector
283 热度

如何监视 WPF 中的所有窗口,在所有窗口中订阅事件或者附加 UI

由于 WPF 路由事件(主要是隧道和冒泡)的存在,我们很容易能够通过只监听窗口中的某些事件使得整个窗口中所有控件发生的事件都被监听到。然而,如果我们希望监听的是整个应用程序中所有的事件呢?路由事件的路由可并不会跨越窗口边界呀?本文将介绍我编写的应用程序窗口监视器,来监听整个应用程序中所有窗口中的路由事件。这样的方法可以用来无时无刻监视 WPF 程序的各种状态。

收录时间: 2019-06-28
分类: WPF
贡献者: Rector
313 热度

如何追中 WPF 程序中当前获得键盘焦点的元素并显示出来

我们有很多的调试工具可以帮助我们查看 WPF 窗口中当前获得键盘焦点的元素。本文介绍监控当前键盘焦点元素的方法,并且提供一个不需要任何调试工具的自己绘制键盘焦点元素的方法。

收录时间: 2019-06-28
分类: WPF
贡献者: Rector
315 热度

WPF 通过 ReadyToRun 提升性能

通过 ReadyToRun 可以在程序集同时包含 IL 和本机代码,可以有效提升软件的启动速度。在 .NET Core 3.0 Preview 6 发布了 ReadyToRun 的功能,通过这个功能可以提升软件的启动性能,在程序设置在发布的时候使用 ReadyToRun 的特性,将会编译出来 ReadyToRun(R2R)格式的程序集...

收录时间: 2019-06-28
分类: WPF
贡献者: Rector
AD 友情赞助