草庐IT

WPF-Window

全部标签

C#中WPF实现依赖注入和MVVM,以及服务定位ServiceLocator

最近在想重写架构于是就研究了一套WPF的相关内容,WPF不像MAUI内置了容器,需要我们自己手动添加,于是就有了今天的内容。首先,我们新建一个.net6.0的WPF项目由于WPF没有内置容器,我们先安装一下依赖注入的nuget包Microsoft.Extensions.DependencyInjection点开App.xaml文件,修改为如下publicpartialclassApp:Application{//////Getsthecurrentinstanceinuse///publicnewstaticAppCurrent=>(App)Application.Current;}由于我们要

MvvmCross 跨平台应用开发——进阶篇_WPF导航局部切换

MvvmCross跨平台应用开发——进阶篇_WPF导航局部切换简言主窗体配置子页面的配置详解简言书接上回,在MvvmCross跨平台应用开发——入门篇中我们概述了MvvmCross框架的基础,并创建了基础开发模型包含Windows的WPF和Android的Xamarin.Android两个平台的应用程序,以及核心的Core程序集,构建一个跨平台的基础开发模板。这篇将通过细致的代码逻辑来讲解构建大型应程序的核心部件导航功能。主窗体配置MvvmCross框架下WPF默认的MainWindow窗体并不能完美的实现主窗体的功能并且需要继承MvxWindow类才能够让框架识别。MainWindow是没有

Window Server 2022 无法安装网卡驱动 1219-v

安装过win10的朋友都知道,win10基本上不用自己下载驱动.插上网线就能用.但是今天在server2022上,死活无法安装成功.原因有很多,网上也有很多资料.重点:其实不需要修改驱动配置,只需要在驱动中选择对应驱动,比如:1219[x]-LM,x标识很多版本,选择一个低一点的就可以了.参考博客: WindowsServer2022安装IntelI219V服务器网卡_lggirls的博客-CSDN博客_i219v和i219lm区别打开计算机管理  1.在计算机管理中存在无法识别的驱动,找到"以太网控制器", 2.右键选择"更新驱动程序"3.选择"浏览我的电脑以查找驱动程序"  4.选择"让我

WPF ContextMenu 的绑定和传参问题

 在ListView列表中,存在多个项目,每个项目都需要右键菜单进行操作。这时一般情况下定义的采用以下方式:即在模板中定义的控件内(在当前示例中是Border),定义一个ContextMenu。Command在ViewModel中定义。运行后会报找不到绑定的命令DeleteCmd。熟悉WPF绑定的话,会想过使用RelativeSourceMode=FindAncestor让它在上级控件的逻辑树中找。遗憾的是ContextMenu不存在于当前控件的逻辑树,它有自己的逻辑树,无法通过向上控件找到DataContext的命令。在找了许多资料后,微软给的方案是使用BindingProxy继承自Free

WPF自定义控件与样式(13)-自定义窗体Window & 自适应内容大小消息框MessageBox

一.前言  申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接。  本文主要内容:自定义Window窗体样式;基于自定义窗体实现自定义MessageBox消息提示框;二.自定义Window窗体样式  自定义的Window窗体效果:   因为WPF默认的窗体比较简陋,大都需要自己实现Window窗体样式效果,基本思路很简单:第一步:干掉默认样式:WindowStyle=WindowStyle.None;第二步:设置窗体透明:AllowsTransparency=true;第三步:设置

Winform/WPF利用CefSharp集成vue开发

原文发表在我的个人搭建的博客网站上:博客链接,下面是直接复制过来的Winform/WPF集成vue开发前言有时候因为各种原因,可能在开发winform或wpf项目的时候需要嵌入web项目,而目前vue在web开发中还是非常流行的,今天有空琢磨了一下怎么在winform中集成vue进行开发,当然,winform能实现,wpf也是一样的。目前希望达到的效果是,能够在winform中显示web界面,并且能够与vue中的各个组件进行交互,也就是调用vue中的函数,及vue函数调用C#中的方法。项目创建首先,先用vue-cli建个demo项目,这里就不进行详细介绍了,网上教程很多,由于我之前写了一个vu

C# wpf 附加属性实现任意控件拖动调整大小

WPF拖动改变大小系列第一节Grid内控件拖动调整大小第二节Canvas内控件拖动调整大小第三节窗口拖动调整大小第四节附加属性实现拖动调整大小(本节)文章目录WPF拖动改变大小系列前言一、如何实现?1.定义附加属性2.整合功能3.关联功能二、完整代码三、使用示例1.拖动控件大小2.拖动窗口大小总结前言前面几节讲了控件拖动改变大小的几种方法,根据不同的布局可以有不同的实现方式。本节主要讲的是利用附加属性对这些方式进行封装,实现复用性,否则直接添加装饰器的方式需要写cs代码较为麻烦,且不方便移植,实现起来很不方便。通过将上述几节的所有功能整合到附加属性中,增加灵活度和适用性。一、如何实现?1.定义

redis6.0.6安装(window版)

Redis6.0.6安装(window版)下载redis6.0.6版本下载MSYS2下载redis6.0.6版本redis官网地址:http://www.redis.cn/download.html下载MSYS2清华的源https://mirrors.tuna.tsinghua.edu.cn/msys2/distrib/x86_64/这当中有安装版本exe结尾的文件也有免安装版的tar.xz结尾的文件,我选择免安装版本的。下载在本地路径下后解压即可,如下图。接着就是换源。在etc/pacman.d下有这三个文件。分别打开三个文件,在文件的开头分别写上一下三句内容。后缀为mingw32的:Ser

window.location对象详解

window.location对象不仅可以获得当前页面的地址(URL),还能够将浏览器重定向到新的页面。打开chrome的调试工具,在Console一栏中输入window.location,出现如下图所示(包含location的多个属性):1、window.location对象常用属性接下来以http://www.myurl.com:8866/test?id=123&username=xxx作为栗子,介绍一下location的常用属性:1.1window.location.href(当前URL)返回当前页面的URLhttp://www.myurl.com:8866/test?id=123&us

禁用WinForm调用WPF控件时在高DPI下自动缩放

禁用WPF应用程序自动感知DPI在项目的Assemblyinfo.cs文件里插入一个参数[assembly:System.Windows.Media.DisableDpiAwareness]为进程设置默认DPI感知 方法一:通过程序清单进行设置自VisualStudio2015 起,此设置已存在于中app.manifest,只需取消注释即可。      true   true   方法二:以编程方式设置默认感知在进程中创建HWND窗口后,不再支持更改DPI感知模式。如果要以编程方式设置进程默认DPI感知模式,则必须在创建任何HWND之前调用相应的API。Windows7SetProcessDP