当前位置: 首页 > news >正文

WPF开发小技巧

WPF开发小技巧希望能帮助小伙伴们在WPF项目开发中可以更好的开发和调试程序

一、WPF开发调试终端

方式一:修改项目输出类型(推荐)

1.双击WPF项目中的启动项目跳转.csproj文件

2.将OutputType从WinExe改为Exe,强制应用程序附带控制台窗口

方式二:动态创建控制台窗口(代码控制)

1.在App.xaml.cs类中增加代码通过AllocConsoleAPI动态附加控制台窗口,适合需要按条件显示终端的场景。代码如下:

2.注意事项:在项目启动前需在App.xaml中移除StartupUri,改为通过代码启动控制台窗口。

启动调试终端运行结果

二、WPF软件窗口调试顶部工具栏

WPF软件窗口调试顶部工具栏的打开和关闭操作

打开状态:

关闭流程:工具栏 ——> 选择 ——> 调试 ——> XAML热重载 ——> 取消选中“启用应用内工作栏”

三、WPF应用程序配置方式

打开XAML入口文件APP.xaml,如果需要扩展功能,可以添加第三方组件库、资源字典、样式、以及多种主题支持等。

它相当于将 WPF UI 库的所有默认样式、模板、颜色和资源合并到你的应用程序中。通常放在App.xaml<Application.Resources>中,确保整个程序都能使用 WPF UI 的美观样式。

例如:

配置WPF UI第三方UI组件库

1.下载WPF-UI NuGet包

2.在APP.xaml文件中配置应用程序的全局资源,引入了WPF-UI第三方UI组件库,设置了应用程序级资源字典,合并了WPF-UI的主题字典(ThemesDictionary),并指定使用Light主题,使用外部命名空间(ui),增加应用程序使用了一些外部UI组件或风格,以增强用户界面的美观性和可用性。

3.配置WPF-UI第三方组件库后可以在窗口或页面中引用ui第三方组件

配置WPF-Button事件触发器

1.下载Microsoft.Xaml.Behaviors.Wpf NuGet包

2.在APP.xaml文件中配置应用程序的全局资源,引用触发器组件设置按钮触发器事件。

3.配置触发器组件后可以在窗口和或页面中引用触发器组件

4.实现按钮触发器功能:鼠标进入、鼠标离开、鼠标点击、鼠标松开等。

View:

ViewModel:

public ICommand MouseEnterCommand { get; set; }//鼠标进入
public ICommand MouseLeaveCommand { get; set; }//鼠标离开
public ICommand MouseClickCommand { get; set; }//鼠标点击
public ICommand MouseReleaseCommand { get; set; }//鼠标松开

public MainWindowViewModel()

{

MouseEnterCommand = new RelayCommand(OnMouseEnter);
MouseLeaveCommand = new RelayCommand(OnMouseLeave);
MouseClickCommand = new RelayCommand(OnMouseClick);
MouseReleaseCommand = new RelayCommand(OnMouseLoosen);

}

private void OnMouseEnter()
{
Console.WriteLine("鼠标进入");
}
private void OnMouseLeave()
{
Console.WriteLine("鼠标离开");
}
private void OnMouseClick()
{
Console.WriteLine("鼠标点击");
}
private void OnMouseLoosen()
{
Console.WriteLine("鼠标松开");
}

四、WPF连接摄像操作

通过连接摄像头并在程序上展示视频流实时画面

配置添加WPF程序集

1.添加程序集引用 WindowsFormsIntegration.dll。右键点击 “依赖项” 选择 “添加项目引用” 添加WindowsFormsIntegration.dll程序集到项目中。

2.在窗口引用程序集WindowsFormsIntegration.dll,并在XAML文件中通过xmlns声明定义WinFormHost。

配置显示视频流代码实现

3.实现展示视频流画面实时显示,在WPF应用程序中,<WinFormHost:WindowsFormsHost>元素用于在WPF嵌入Windows Forms控件。<WinFormHost:WindowsFormsHost>这是WPF中用于承载Windows Forms控件的容器。

View:

x:Name:这是WPF中的标识符,允许你在代码后面引用这个控件。通过这个名称,可以在C#代码中访问pictureBoxHost进行进一步操作。

View.cs:

将pictureBox控件作为子控件添加到WindowsFormHost中,确保代码pictureBox可以正确渲染和显示在WPF窗口中。

ViewModel:

使用CancellationTokenSource来控制图像捕捉和显示的循环,主要用于从视频源读取帧(如摄像头),调整图像大小,并在PictureBox控件中显示。

重点:

PictureBox.SizeMode:设置PictureBox的显示模式为缩放或拉伸,使图像适应控件的大小。

PictureBoxSizeMode.Zoom:设置图像的大小递增或递减原有的大小比例。

PictureBoxSizeMode.StretchImage:设置PictureBox中的映像被拉伸或收缩以适合的大小。

五、WPF添加窗口UI背景图片

代码实现:

运行报错:

IOException: 找不到资源“image/bg1.png”

排查解决步骤:

1.检查并修改“生成操作”属性(最常见原因):选中项目中bg1.png文件 —— 查看属性窗口 ——找到生成操作 ——设置为“资源”URl必须使用完成Pack URl(设置为内容URl不能使用pack://application:,,,为前缀)

2.验证文件路径与大小写:确认文件夹名称确实是Image而不是image或Images。确认文件名确实是bg1.png而不是BG1.PNG.

3.清理并重新生成项目:清楚解决方案 ——重新生成解决方案。有时Visual Studio的资源存会导致旧路径残留。

http://www.jsqmd.com/news/887990/

相关文章:

  • Geolib地理计算库:零依赖的经纬度处理终极指南
  • 实战教程:如何使用GLM-4.1V-9B-Thinking-gs-A8W8进行图像理解和视频分析的完整指南
  • 上海亚卡黎实业有限公司2026作业设备优选:专业车载高空作业平台厂家/剪式平台厂家推荐上海亚卡黎实业 - 栗子测评
  • MolmoPoint-Vid-4B vs 传统坐标定位:Grounding Tokens技术如何颠覆视频交互体验
  • 在STM32上实现LVGL贝塞尔曲线动画:从数学公式到流畅UI的完整实战
  • 5分钟快速上手MASA模组中文汉化包:告别英文界面烦恼
  • 多自由度冗余空间机械臂位姿一体化规划与控制【附代码】
  • 构建AI应用技术栈:从模型选型到生产部署的实战指南
  • 构建专注友好型团队文化:从异步沟通到深度工作的实践框架
  • Unity PRG库存与换装系统:数据驱动架构实战
  • AI测试生成:从单次遍历到上下文增强的范式转变
  • WordPress Widget Boilerplate与Gutenberg编辑器集成:现代WordPress开发终极指南 [特殊字符]
  • 智能财务对账Agent如何设计?2026金融大模型Agent架构设计与实战指引
  • AlphaFold 3终极指南:掌握Jackhmmer与HMMER提升蛋白质结构预测精度
  • everfu/hexo-theme-solitude主题用户行为分析:热力图与转化路径追踪配置
  • C++_string类_调用及模拟实现
  • tools.simonwillison.net图像处理工具集:从裁剪到优化的完整指南
  • 芯片逆向工程中的‘脏活累活’:如何用Cadence Virtuoso高效整理与验证提取后的电路?
  • 高密度光纤定位观测规划及相关技术【附代码】
  • 从Anthropic事件看AI安全:代码泄露、模型治理与工程实践
  • Python基础语法:访问器@property和修改器@xxx.setter
  • 抖音内容批量获取终极方案:Douyin Downloader 专业指南
  • MuJoCo物理仿真终极指南:深度解析接触动力学与7个实战调优技巧
  • 3个关键功能解析:USBToolBox如何简化macOS与Windows的USB端口映射难题
  • 告别无效投递:智能时间标签让你的简历精准触达活跃岗位
  • FCEUX终极指南:从怀旧游戏到专业调试的完整NES模拟器教程
  • MinIO + Docker 快速搭建 S3 兼容对象存储
  • 保姆级教程:手把手带你走通UDS Bootloader刷写全流程(附报文解析)
  • CPU环境也能跑!ChatGLM-6B-INT4嵌入式设备部署指南
  • 如何用AOT-GAN实现高分辨率图像修复:从原理到实践