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

wpf中资源的使用

在这里插入图片描述

前言

在 WPF 中,“资源”允许你定义可重用的对象(如画笔、样式、模板、数据等),并在应用程序的不同部分甚至整个应用程序中引用它们,这有助于实现一致性、可维护性和 XAML 代码的简洁性。

1、应用程序级别的资源

将资源文件添加到App.xaml中,应用程序级别的资源可以在该程序的多个窗体中使用

<Application x:Class="wpf资源.App"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:local="clr-namespace:wpf资源"StartupUri="MainWindow.xaml"><Application.Resources><SolidColorBrush x:Key="GlobalBackgroundBrush" Color="Red" /><Style x:Key="GlobalButtonStyle" TargetType="Button"><Setter Property="FontSize" Value="14"/><Setter Property="Foreground" Value="White"/><Setter Property="Background" Value="Blue"/></Style></Application.Resources>
</Application>

1)在MainWindow中调用GlobalButtonStyle

 <Button Height="100" Content=" 123"  Style="{StaticResource GlobalButtonStyle}" />

运行结果:
在这里插入图片描述
2)在Window1中调用GlobalButtonStyle

 <Button Height="100" Content=" 123"  Style="{StaticResource GlobalButtonStyle}" />

运行结果:
在这里插入图片描述

2、窗体级别的资源

在该窗体以及其子元素使用

<Window.Resources><Style x:Key="MainWindowlTextBlockStyle" TargetType="TextBlock"><Setter Property="FontSize" Value="14"/><Setter Property="Foreground" Value="White"/><Setter Property="Background" Value="Green" /></Style></Window.Resources>

在MainWindow中调用MainWindowlTextBlockStyle

 <TextBlock Height="100" Text =" 456"  Style="{StaticResource ResourceKey= MainWindowlTextBlockStyle}" />

在这里插入图片描述

3、元素级别的资源

只能在该元素以及其子元素中使用

 <Grid><Grid.Resources ><SolidColorBrush x:Key="PanelHighlightBrush" Color="Yellow"/></Grid.Resources ><StackPanel Orientation="Vertical" ><TextBlock Height="100" Text =" 456"  Background ="{StaticResource ResourceKey= PanelHighlightBrush}" /></StackPanel ></Grid>

在这里插入图片描述

4、元素级别的资源

外部资源字典

1)添加外部资源
MainWindow.xaml中添加以下代码,代码在Window.Resources中定义了一个ResourceDictionary资源字典,将需要添加的外部资源全都放到ResourceDictionary.MergedDictionaries中,格式如:“pack://application:,/外部命名控件名;component/Dictionary1.xaml”,如果component后面还跟了文件夹的话,则这个路径也要加上文件夹名。这里的代码命名控件名是WpfApp2,由于命名空间内直接包含了Dictionary1.xaml,所以component后面跟的是Dictionary1.xaml。
在这里插入图片描述

2)添加Window窗体级别的资源
Window窗体级别的资源放到ResourceDictionary.MergedDictionaries外部和ResourceDictionary内部,比如下面的ButtonColor。

<Window.Resources><ResourceDictionary><ResourceDictionary.MergedDictionaries><ResourceDictionary Source = "pack://application:,,,/WpfApp2;component/Dictionary1.xaml" /></ResourceDictionary.MergedDictionaries><SolidColorBrush x:Key="ButtonColor" Color="red"/></ResourceDictionary></Window.Resources>

MainWindow调用

<Button Height="100"  Background ="{StaticResource ResourceKey=Color_Active}" />

在这里插入图片描述

马工撰写的年入30万+C#上位机项目实战必备教程(点击下方链接即可访问文章目录)

1、《C#串口通信从入门到精通》
2、《C#与PLC通信从入门到精通 》
3、《C# Modbus通信从入门到精通》
4、《C#Socket通信从入门到精通 》
5、《C# MES通信从入门到精通》
6、《winform控件从入门到精通》
7、《C#操作MySql数据库从入门到精通》


文章转载自:

http://Wl0OBoQV.psxxp.cn
http://Nmbn4po4.psxxp.cn
http://94oGBcwd.psxxp.cn
http://FpNctHTq.psxxp.cn
http://h16uDrCu.psxxp.cn
http://PqIWGKZ2.psxxp.cn
http://bjdh56qX.psxxp.cn
http://u6Ocl8E8.psxxp.cn
http://aDosjq4t.psxxp.cn
http://90BZKDec.psxxp.cn
http://h7pdSuND.psxxp.cn
http://3CoqnHCW.psxxp.cn
http://oDRKYKKZ.psxxp.cn
http://8cqmsqig.psxxp.cn
http://lVZGcVk2.psxxp.cn
http://FErKF7J7.psxxp.cn
http://iGgLtv0m.psxxp.cn
http://rijppjso.psxxp.cn
http://qFSj5A18.psxxp.cn
http://E4Xs3rpK.psxxp.cn
http://5BAuSLpy.psxxp.cn
http://TAMgixq9.psxxp.cn
http://psVJHA82.psxxp.cn
http://Z651sgWk.psxxp.cn
http://AtBYjcof.psxxp.cn
http://DwRrx995.psxxp.cn
http://rjGZASO7.psxxp.cn
http://6rPJx9fA.psxxp.cn
http://ko460Hhv.psxxp.cn
http://8j3vK8Vr.psxxp.cn
http://www.dtcms.com/a/366157.html

相关文章:

  • 【Ubuntu扩容】Ubuntu启动项丢失、增加硬盘相关操作记录贴
  • Dubbo分布式服务框架全解析
  • 十一、容器化 vs 虚拟化-K8s-Kustomize
  • 免费低代码谁更优?斑斑与氚云深度对比,中小企业数字化转型选对平台很关键
  • 热烈庆祝“中国抗战胜利80周年”,织信低代码助力国之重器砥砺前行!
  • vue+elementUI 进行表格行内新增及校验,同行其他输入框数据影响当前输入框校验结果
  • Web与Nginx网站服务
  • VUE中引入tailwindcss样式(用于GemDesgin的页面生成)
  • 英飞凌ASIL-D级无刷电机驱动芯片TLE9189守护汽车安全
  • 新手SEO高效入门实践指南
  • Linux 基础IO-从 “一切皆文件” 到自定义 libc 缓冲区
  • 字符串(1)
  • 关于多Agent协作框架的讨论:以产品经理工作流为例对比Sub Agent与AutoGen
  • 论文阅读:arixv 2024 Adversarial Attacks on Large Language Models in Medicine
  • SpringMVC —— 响应和请求处理
  • 低代码开发平台技术总结
  • Coze源码分析-资源库-删除提示词-后端源码
  • Selenium
  • 一个基于 axios 的请求封装工具 - request-fruge365
  • Energy期刊论文学习——基于集成学习模型的多源域迁移学习方法用于小样本实车数据锂离子电池SOC估计
  • scss 转为原子css unocss
  • 【Linux】环境变量与程序地址空间详解
  • Linux——服务器多线程压缩工具介绍
  • 深入探讨AI三大领域的核心技术、实践方法以及未来发展趋势,结合具体代码示例、流程图和Prompt工程实践,全面展示AI编程的强大能力。
  • Makefile学习笔记 (1)
  • Horse3D游戏引擎研发笔记(九):使用现代图形引擎的元数据管理纹理创建过程(类Unity、Unreal Engine与Godot)
  • vue2 打包生成的js文件过大优化
  • 【iOS】对象复制与属性关键字
  • Linux编程——网络编程(UDP)
  • 当液态玻璃计划遭遇反叛者:一场 iOS 26 界面的暗战