一、窗体类基本概念 对于WPF应用程序,在Visual Studio和Expression Blend中,自定义的窗体均继承System.Windows.Window类。...用户通过窗口与 Windows Presentation Foundation (WPF) 独立应用程序进行交互。 窗口的主要用途是承载可视化数据并使用户可以与数据进行交互的内容。...独立 WPF 应用程序使用 Window 类来提供它们自己的窗口。在 WPF 中,可以使用代码或 XAML 标记来实现窗口的外观和行为。...显示窗体 构造函数 Show()、ShowDialog()方法:Show()方法显示非模态窗口,这意味着应用程序所运行的模式允许用户在同一个应用程序中激活其他窗口。...image.png WPF窗体的详细的属性、方法、事件请参考MSDN,有很多的属性、方法、事件与Windows应用程序中 System.Windows.Forms.Form类颇为相似。
由于涉及到坐标转换,这种转换经常发生在计算的不知不觉中;所以无论你使用哪种 Windows 下的 UI 框架进行开发,你都需要了解这些内容,以免不断踩坑。...如果应用不支持屏幕 DPI 感知,那么使用的就是系统 DPI 值,于是一样的会被系统进行位图缩放。 但事情到 Windows 10 (1803) 之后,事情又有了转机。...and other frameworks hosted in WPF do not automatically scale 即原生 WPF 应用支持 DPI 缩放,在其他 UI 框架中的 WPF 也支持...微软的 Office 系列就是典型的使用了混合 DPI 感知级别的应用。...- Per Monitor DPI - WPF Preview.docx at master · Microsoft/WPF-Samples 在 Windows 10 中修复显示模糊的应用 - Windows
从 Windows 10 (1803) 开始,Win32 应用也可以有 API 来实现原生的亚克力效果了。不过相比于 UWP 来说,可定制性会差很多。...本文介绍如何在 WPF 程序中应用 Windows 10 真•亚克力效果。(而不是一些流行的项目里面自己绘制的亚克力效果。)...---- API 需要使用的 API 是微软的文档中并未公开的 SetWindowCompositionAttribute。...) - walterlv 当然,使用此 API 也可以做 Windows 10 早期的模糊效果,比如: 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) - walterlv...如何使用 为了方便地让你的窗口获得亚克力效果,我做了两层不同的 API: AcrylicBrush 当然,受到 Win32 启用亚克力效果的限制,只能在窗口上设置此属性 WindowAccentCompositor
本文来安利大家一个有趣而且强大的库,通过 F# 和 C# 混合编程编写 WPF 应用,可以在 WPF 中使用到 F# 强大的数据处理能力 在 GitHub 上完全开源 Elmish.WPF 库,请看 https...大家都知道,使用 F# 能带来很好的数据处理能力,从 F# 语法层面带来的编写效率提升和编写逻辑的优化,而 F# 本身是没有带 GUI 可视化应用编程的。...因此上一句话说 F# 本身是没有带 GUI 可视化应用编程是完全错误的,因为 F# 可以非常方便调起 WPF 和 WinForms 等成熟的 UI 框架作为自身的可视化应用框架 通过 Elmish.WPF...程序,在此例子里面,几乎没有 C# 多少的戏份,只是为了使用 C# 更好的驱动 WPF 程序而已,因为部分初始化方法和类型等在 F# 写起来的代码量可不少。...如果你想持续阅读我的最新博客,请点击 RSS 订阅,推荐使用RSS Stalker订阅博客,或者前往 CSDN 关注我的主页 本作品采用 知识共享署名-非商业性使用-相同方式共享
默认情况下的 WPF 项目都是带 -windows 的 TargetFramework 方式,但有一些项目是不期望加上 -windows 做平台限制的,本文将介绍如何实现不添加 -windows 而引用...WPF 框架 先看一个标准的 WPF 项目的 csproj 项目文件内容 以上代码的核心在于设置 TargetFramework 为 net7.0-windows 的同时设置 UseWPF 属性。...在此设置之下,项目本身就限定了采用 Windows 平台 对于一些特殊的项目来说,也许只是在某些模块下期望引用 WPF 的某些类型,而不想自己的项目限定平台。...即可设置对 WPF 程序集的引用,也就是仅仅只是将 WPF 的程序集取出来当成引用,而不是加上 WPF 的负载 通过此方式即可不需要设置 TargetFramework 为 net7.0-windows
---- 关于 Windows Community Toolkit 早期版本的 Xaml Bridge,可以参见: WPF 使用 Edge 浏览器 - 林德熙 安装 NuGet 包 你需要做的第一步,是在你的...配置 WPF 项目能访问 UWP 的类型 因为我们即将开始使用到 UWP 中的控件类型,所以需要配置项目能够访问到 Windows Runtime 的类型。 ?...▲ 添加 Windows.Foundation.FoundationContract.winmd 开始在 WPF 中使用 UWP 的控件 你可以像使用普通 WPF 控件一样将 WindowsXamlHost...关于 PerMonitorV2 和 PerMonitor 的理解和区别,可以参见: Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32) - walterlv...关于如何在 WPF 下开启 PerMonitorV2 级别的 DPI 感知可以参见: 支持 Windows 10 最新 PerMonitorV2 特性的 WPF 多屏高 DPI 应用开发 - walterlv
继上篇 c#之添加window服务(定时任务) 基础之上, 这篇文章主要讲述,使用winform程序来控制window服务的安装,启动,停止,卸载等操作 1.在同一个解决方案添加winform项目,如图...两个程序集(其中涉及window服务的一些操作) ?...4.把之前创建的window服务也引入winform中 ?...6.在项目winform中,右击项目,添加->新建项,在弹出的菜单中选择 应用程序清单文件,如图 ?.../p/7170951.html https://docs.microsoft.com/en-us/dotnet/framework/windows-services/walkthrough-creating-a-windows-service-application-in-the-component-designer
安装 nssm是一个 Windows 服务管理器,可以把应用写入服务,以达到自动重启的功能。 目前最新的版本是2.24,下载地址。...使用 Node 假设有一个最简单的 node 服务器程序 var express = require('express'); var app = express(); app.get('/', function...点击 Install service 然后打开 Windows 的 Services,看到刚才安装的应用已经在 Services 里面了,并且为 “Automatic”,说明它会随着 Windows...Python 将 Python 应用写入 Windows 服务也可以使用上述两种方法。 nssm 启动 bat 服务报错 遇到 bat 文件双击可以运行,但是写入服务却不能运行的情况。...('Hello') 使用 Windows 自带的 Services 手动启动: 使用 nssm 启动: $ node_test: Unexpected status SERVICE_PAUSED in
本文告诉大家如何在 WPF 中应用上 UWP 的笔迹控件,从而实现性能超级高的笔迹应用的方法 先新建一个 .NET Core 3.1 的 WPF 应用,当前的方法不支持 .NET Framework 版本...更多请看 VisualStudio 快速设置启动项目 如果期望在服务器做自动打包,可以在命令行,进入打包应用的 csproj 所在文件夹,输入下面命令即可自动构建 msbuild -restore 通过以上命令即可构建出...更多请参阅旁加载安装部分的内容 如果做分发此应用的话,推荐使用 加强版在国内分发 UWP 应用正确方式 通过win32安装UWP应用 的方法进行分发,此时就不需要让用户去关注证书问题 以上的代码放在 github...WPF 引用 UWP 控件 不打包为 MSIX 分发的方法 如果想给画布加上背景,请看 WPF 使用 Microsoft.Toolkit.Wpf.UI.Controls 的 InkCanvas 时加上背景色和按钮方法...更多触摸请看 WPF 触摸相关 更多笔迹相关请看 WPF 渲染原理 高性能笔迹原理 WPF 高性能笔 WPF 高速书写 StylusPlugIn 原理 WPF 最小的代码使用 DynamicRenderer
@echo off ::设置服务名称 set service_name=ServiceManagement ::设置服务描述 set service_description=文件安全上传服务 :...:设置服务程序路径 set prog_path=%cd:\=\\%\\ServiceManagement.exe ::设置服务的启动方式 auto:自动 demand:手动 disabled:禁用...instsrv.exe %service_name% remove 2>nul %s32%\instsrv.exe %service_name% %s32%\srvany.exe >nul ::设置服务的启动方式...service_name% start= %strt% sc description %service_name% "%service_description%" echo 生成注册表文件... echo Windows...start %service_name% echo ===========================完成============================ pause 保存为bat,将需要注册的程序和
; window.Source = new Uri("Page1.xaml", UriKind.Relative); window.Show(); 打开Windows...EditGateLIst gatel = new WpfApplication1.EditGateLIst(); gatel.ShowDialog(); 假设Windows...的类名称为gate1
使用 WPF 开发一个 Windows 屏幕保护程序 2018-12-22 02:24 最近有小伙伴问我如何可以让 Windows 静置一段时间不操作之后...---- 屏幕保护程序的本质 屏幕保护程序本质上就是一个 Win32 窗口应用程序。 好了,这一节真的结束了…… ? 编译好一个窗口应用程序之后,把扩展名改为 scr,于是你的屏幕保护程序就做好了。...实际上本应该是 Visual Studio 创建的空 WPF 程序的默认大小。 处理屏幕保护程序参数 我的屏幕保护程序是一个非常简单的程序,几乎就是默认的模板。...如果把你的屏幕保护程序拷贝到那个 Windows 的受信任目录下,你的程序是无法运行起来的。正确的做法,是右键,使用 “安装” 选项进行安装。.../write-a-windows-screen-saver-using-wpf.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。
GridSplitter wpf的GridSplitter设置问题导致GridSplitter不可见, HorizontalAlignment=“Stretch” //设置水平填充控件 VerticalAlignment
用户可通过 SCP 控制服务的启动、停止、暂停等,SCP 会通过 SCM 调用服务程序 开发一个Windows服务通常也比较简单,在开发的时候我们期望以命令行方式运行,想对Windows服务有更多的控制...,就有一个Windows服务框架TopShelf 可以满足,使用这个框架要求你使用一个IoC容器,在框架中使用的是common service locator 接口,可以根据你的喜好去选择你自己中意的IoC...StructureMap 作为IoC容器,创建了一个StructureMapServiceLocator来掩藏StructureMap,创建的Windows服务的名称是stuff,可以吊相应的方法启动,...,我更喜欢使用后一种方式设置,在应用程序的配置文件上增加个配置WindowsServiceInstanceName: 服务实例,推荐大家使用这个Windows服务框架TopShelf ,可以简化很多工作和增加灵活性
服务可运行多个实例 Topshelf是一个开源的跨平台的服务框架,支持Windows和Mono,只需要几行代码就可以构建一个很方便使用的服务....Topshelf宿主我们的服务,主要是Topshelf如何设置我们的服务的配置和启动和停止的时候的方法调用 class Program { static void Main...) => t.Stop ( ) ); } ); x.RunAsLocalSystem ( ); //服务的描述...x.SetDescription ( "Topshelf_Description" ); //服务的显示名称...服务) ConsoleApp_Topshelf.exe uninstall (卸载Windows服务) 代码下载:http://files.cnblogs.com/aierong/ConsoleApp_Topshelf.rar
使用 C 创建 Windows 服务 最近需要将一些命令行程序包装成后台服务, 本来可以用 .NET 完成, 不过又想尝试一下用 C 语言实 现 Windows 服务, 发现用 C 语言做 Windows...服务也是很容易的, 步骤如下: 1 包含必要的头文件, 并定义一些常量, 代码如下: #include windows.h> #include // 服务线程暂停时间; #define..., 响应在服务管理器中对服务的操作(停止、重新启动)。..., 使用 sc create 命令可以安装服务: REM 服务名称必须与代码中的服务名称保持一致 SC CREATE MemoryStatus binPath= %PROJECT_OUTPUT_DIR%...服务的启动与关闭可以使用 NET 命令: NET START MemoryStatus 过几秒钟之后在关闭服务: NET STOP MemoryStatus 最后, 打开日志文件, 可以看到类似下面的输出
发布Windows Service的方法 1、 在默认窗口Service1中右键Add Install,自动生成两个类。 ? 2....6.使用installutil安装新建好的MyFirstService,方法如下: 一、打开C:\Windows\Microsoft.NET\Framework64\v4.0.30319目录,找到InstallUtil.exe...二、把该文件复制到你生成服务的根目录下。 ? 三、使用命令:在cmd中定位到你的服务所在的目录(即InstallUtil.exe所在的目录),使用InstallUtil 服务名.exe进行安装。...四:用命令:installutil /u 服务的名称.exe,点击运行,即可卸载服务。 五:使用命令打开services.msc即可找到你的服务啦。...(我已经做过测试),特别是在使用window7的用户特别需要注意,系统默认system账号是“禁用”模式。 ? 第二种错误的可能就是服务已经存在,则会出现下面的错误 ?
public static extern int getlasterror(); #endregion dllimport /// /// 应用程序入口...string svcpath; string svcname; string svcdispname; //服务程序的路径... /// 服务名 /// 服务显示名称.... /// 服务安装是否成功..... /// /// 服务名.
新建一个控制台应用程序,使用Nuget安装TopShelf: nuget Install-Package Topshelf 测试代码: 在Main中输入: //FileInfo fi = new FileInfo...使用Log4net还需注意的是这个配置文件如果取的路径不正确的话是不会生成日志的,而且此时程序并不会抛异常。 调试程序的时候直接运行即可。...安装服务的话可以用管理员权限打开Cmd,定位到程序所在目录,使用下面命令安装即可: TopShelfService.exe install 注意中间是空格,卸载同理: TopShelfService.exe...uninstall 如果嫌打开CMD定位啥的麻烦的话,可以直接在应用程序上点击右键创建快捷方式,打开快捷方式属性,在目标的后面直接添加空格和install,再创建一个卸载的快捷方式,在目标后面添加空格和...uninstall,注意如果是win7系统,需要更改快捷方式兼容性中以管理员身份运行此程序,当然,如果把程序部署到另外的服务器上的话可能快捷方式的路径会改变。
<Grid.ContextMenu > <ContextMenu> <MenuItem Header="增加" Click="M...
领取专属 10元无门槛券
手把手带您无忧上云