19 热度

制作通过 NuGet 分发的源代码包时,如果目标项目是 WPF 则会出现一些问题(探索篇,含解决方案)

源代码包源代码包不是 NuGet 官方的概念,而是林德熙和我在 GitHub 上做的一个项目,目的是将你的项目以源代码的形式发布成 NuGet 包。在安装此 NuGet 包后,目标项目将获得这些源代码。你可以通过以下博客了解如何制作一个源代码包。将 .NET Core 项目打一个最简单的 NuGet 源码包,安装此包就像直接把源码放进项目一样 - 吕毅Roslyn 如何基于 Microsoft.NET.Sdk 制作源代码包 - 林德熙SourceYard 制作源代码包 - 林德熙这可以避免因为安装 NuGet 包后带来的大量程序集引用,因为程序集数量太多对程序的启动性能有很大的影响:C# 程序...

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

[WPF自定义控件]使用WindowChrome自定义Window Style

1. 为什么要自定义Window对稍微有点规模的桌面软件来说自定义的Window几乎是标配了,一来设计师总是克制不住自己想想软件更个性化,为了UI的和谐修改Window也是必要的;二来多一行的空间可以添加很多功能,尤其是上边缘,因为被屏幕限制住鼠标的移动所以上边缘的按钮很容易选中。做桌面开发总有一天会遇到自定义Window的需求,所以我在控件库中也提供了一个简单的自定义Window。2. 我想要的功能我在上一篇文章介绍了标准Window的功能,我想实现一个包含这些基本功能的,窄边框、扁平化的Window,基本上模仿...

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

WPF 隐藏系统窗口菜单

本文告诉大家如何隐藏系统窗口菜单,系统的窗口菜单请看下图...

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

WPF 添加窗口消息钩子方法

窗口消息钩子需要先拿到窗口指针然后需要在窗口初始化完成之后才可以做到,推荐的做法请看代码...

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

为 WPF 程序添加 Windows 跳转列表的支持

Windows 跳转列表是自 Windows 7 时代就带来的功能,这一功能是跟随 Windows 7 的任务栏而发布的。当时应用程序要想用上这样的功能需要调用 shell 提供的一些 API。然而在 WPF 程序中使用 Windows 跳转列表功能非常简单,在 XAML 里面就能完成。本文将介绍如何让你的 WPF 应用支持 Windows 跳转列表功能。

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

WPF 最小的代码使用 DynamicRenderer 书写

在 WPF 中有 DynamicRenderer 提供高性能的书写,这个类在 WPF 只有 InkCanvas 使用,如果想要在自己的 UIElement 使用,需要写一些代码 先创建一个 UIElement 自定义一个,因为 DynamicRenderer 继承于 StylusPlugIn 需要使用 UIElement 的 StylusPlugIns 属性才能添加他 下面创建一个 MeexikelelHaiwurbe 的 UIElement 现在里面什么都没写

收录时间: 2019-01-09
分类: WPF
贡献者: Rector
AD 友情赞助
244 热度

只需 5 秒钟,你就能取到 WPF 程序的超高分辨率超高清截图

我想要截取一个 WPF 程序的图标,但是它太小了。如果我就这样截屏截下来,是很不高清的。由于我需要制作一份课件,所以我需要超高清版本,可是,如何做才能最快速拿到 WPF 程序的超高清截图呢? 本文分享一个方法,只需 5 秒钟,你就能拿到!

收录时间: 2018-12-26
分类: WPF
贡献者: Rector
154 热度

WPF 一个空的 WPF 程序有多少个窗口

在 WPF 内部的5个窗口之 MediaContextNotificationWindow听说有五个窗口可以通过 user32 的 EnumThreadWindows 找到一个线程的窗口delegate bool EnumThreadDelegate(IntPtr hWnd, IntPtr lParam);[DllImport("user32.dll")]static extern boo...

收录时间: 2018-12-22
分类: WPF
贡献者: lindexi
156 热度

WPF 源代码 从零开始写一个 UI 框架

需要知道 WPF 是一个 UI 框架,作为一个 UI 框架,最主要的就是交互。也就是 UI 框架需要有渲染显示和处理用户输入的功能。如果直接告诉大家 WPF 里面有哪些类,估计没有几位小伙伴会听下去,要么就是讲的类太简单,看过去我也就知道了,要么就是这个类可能我一直都不会用到他,即使可能会用到也早就忘了。本文不会直接告诉大家 WPF 的源代码是如何写的,而是从零开始一起来写一个 UI 框架,在写的...

收录时间: 2018-12-22
分类: WPF
贡献者: lindexi
312 热度

WPF 高速书写 StylusPlugIn 原理

本文告诉大家 WPF 的 StylusPlugIn 为什么能做高性能书写,在我的上一篇博客和大家介绍了 WPF 的触摸原理,但是没有详细告诉大家如何通过触摸原理知道如何去做一个高速获得触摸的应用,所以本文就在上一篇博客的基础继续告诉大家底层的原理 如果觉得原理很无聊,就直接关闭本文,因为本文都是理论,不会告诉大家如何做高性能书写 在 WPF 如果想要做高性能的书写,就需要足够快获得用户的触摸输入,而如果直接拿到的是路由的输入就会存在下面的问题

收录时间: 2018-10-09
分类: WPF
贡献者: lindexi
521 热度

WPF 使用 Edge 浏览器

本文告诉大家如何使用 Windows Community Toolkit 的新控件,在 WPF 使用 Edge 浏览器 首先需要通过 VisualStudio 创建 WPF 项目。因为 Microsoft.Toolkit.Win32.UI.Controls 库只支持 4.6.2 以上,所以需要选择框架大于 4.6.2 打开 Nuget 安装 Microsoft.Toolkit.Win32.UI.Controls ,需要同意许可

收录时间: 2018-09-05
分类: WPF
贡献者: lindexi
310 热度

C# 从零开始写 SharpDx 应用 初始化dx修改颜色

本文来告诉大家如何在上一篇博客创建的窗口里面使用 Sharpdx 初始化,然后设置窗口颜色 本文是 SharpDX 系列博客,更多博客请点击SharpDX 系列 在C# 控制台创建 Sharpdx 窗口已经创建了一个窗口,现在需要在这个窗口初始化。因为是从零开始写,所以需要非常多细节,我觉得一篇文章是很难全部告诉大家,所以分为了系列的文章。从零开始写有利于大家了解一个渲染框架是如何做出来,并且从底层优化渲染,当然这个方法就是学习的时间会比较长。我会在文章去掉很多细节放在后面的博客讲,让大家先知道总体是如何做的。 创建资源 第一步是需要添加一个方法 InitializeDeviceResources 用来初始化资源,这里初始化的就是设备的资源。在 dx 的渲染是需要紧密绑定设备。 这个方法就是写在KikuSimairme类里,关于这个类的代码在C# 控制台创建 Sharpdx 窗口

收录时间: 2018-09-05
分类: WPF
贡献者: lindexi
416 热度

WPF 使用 SharpDX

本文告诉大家如何在 WPF 使用 SharpDX ,只是入门 本文是一个系列 WPF 使用 Direct2D1 画图入门 WPF 使用 Direct2D1 画图 绘制基本图形 WPF 使用 SharpDX WPF 使用 SharpDX 在 D3DImage 显示 WPF 使用封装的 SharpDx 控件 WPF 使用 SharpDx 异步渲染 先介绍一下 SharpDx ,一个底层封装的 DirectX 库,支持 AnyCpu ,支持 Direct3D9, Direct3D11, Direct3D12,Direct2D1。支持 win32 程序和商店程序。

收录时间: 2018-09-05
分类: WPF
贡献者: lindexi
320 热度

WPF 触摸到事件

通过这个方法就可以创建线程运行 ThreadProc 这个函数是一个无限循环,请看代码while (!this.__disposed){// 忽略代码}这个函数的底层实际上是包括了另一个循环来从 penimc2_v0400.dll 拿到触摸信息如果插入的设备有一个,就会运行 penimc2_v0400.dll 里 GetPenEvent 拿到触摸的信息。如果有多个就会调用 GetPenEv...

收录时间: 2018-08-16
分类: WPF
贡献者: Rector
337 热度

WPF 在image控件用鼠标拖拽出矩形

今天有小伙伴问我一个问题,在image控件用鼠标拖拽出矩形,本文告诉大家如何使用鼠标画出矩形 做出来的效果先请大家看一下 最简单的方法是在 Down 的时候记录按下的点,在 移动的时候重新计算所在的宽度

收录时间: 2018-08-14
分类: WPF
贡献者: lindexi
AD 友情赞助
290 热度

MEF 插件式开发 - WPF 初体验

MEF 在 WPF 中的简单应用MEF 的开发模式主要适用于插件化的业务场景中,C/S 和 B/S 中都有相应的使用场景,其中包括但不限于 ASP.NET MVC 、ASP WebForms、WPF、UWP 等开发框架。当然,DotNet Core 也是支持的。在上篇文章中,笔者大致讲述如果在控制台程序中创建一个简单的 MEF 应用程序。如果有读者不太清楚,可点击 MEF 插件式开发 - 小试...

收录时间: 2018-08-02
分类: WPF
贡献者: Rector
319 热度

在WPF中将图片转换成3D图像并可以旋转

时光偷走的,永远都是我们眼皮底下看不见的珍贵。 https://pan.baidu.com/s/14dk-OU2SR0nxXj2bL4bVpQ首先先看一下源代码最初的运行效果,是否是自己需要的。在这里,三维的面图是用函数生成的Z轴数据,当然,我们也可以使用图片的颜色作为Z轴。准备工作,VS2008及以上版本,博主使用的是VS2017,需要升级一下项目。在此感...

收录时间: 2018-07-20
分类: WPF
贡献者: Rector
488 热度

WPF 使用 WindowChrome,在自定义窗口标题栏的同时最大程度保留原生窗口样式(类似 UWP/Chrome)

WPF 自定义窗口样式有多种方式,不过基本核心实现都是在修改 Win32 窗口样式。然而,Windows 上的应用就应该有 Windows 应用的样子嘛,在保证自定义的同时也能与其他窗口样式保持一致当然能最大程度保证 Windows 操作系统上的体验一致性。本文将使用 WindowChrome 来自定义窗口样式,使其既保留原生窗口样式和交互习惯,又能够具备一定的自定义空间。使用 W...

收录时间: 2018-07-12
分类: WPF
贡献者: Rector
339 热度

WPF 控件库——仿制Windows10的进度条

一、其实有现成的先来看看Windows10进度条的两种模式: 网上有不少介绍仿制Windows10进度条的文章,也都实现了不错的效果。而我再开一文的原因是觉得如果在这基础上添加一些功能,比如圆点的数量,圆点的大小等等,效果可能会更好一些。接触过UWP的朋友应该知道,其框架中自带了进度条控件,以 ProgressRing 为例,通过Blend,我们可以获取到控件的XAML,以下是部分...

收录时间: 2018-07-10
分类: WPF
贡献者: Rector
286 热度

WPF 控件库——仿制Chrome的ColorPicker

一、观察项目中的一个新需求,需要往控件库中添加颜色拾取器控件,因为公司暂时还没有UI设计大佬入住,所以就从网上开始找各种模样的ColorPicker,找来找去我就看上了谷歌浏览器自带的,它长这个样:    看上去不错,可以搞!搞之前得观察一下这里面可能的一些坑。对WPF而言,圆角阴影等效果都是基本操作,这里就不说了。首先我们注意到上图中有两个拖动条,一个背景是可见光谱,另一个背...

收录时间: 2018-07-05
分类: WPF
贡献者: Rector
AD 友情赞助