WPF 资源基础

news/2024/9/25 16:15:40/

动态资源/静态资源

UI代码

<Window x:Class="WpfApp1.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:local="clr-namespace:WpfApp1"mc:Ignorable="d"Title="MainWindow" Height="450" Width="800"><Window.Resources><!--笔刷资源--><SolidColorBrush x:Key="SolidColor" Color="Red"/></Window.Resources><Grid><StackPanel><!--按钮事件,通过点击按钮,更新资源的Color--><Button Content="Update" Margin="10" Click="Button_Update" /><!--静态绑定--><Button Content="Button1" BorderBrush="{StaticResource SolidColor}" Margin="10"/><!--动态绑定--><Button Content="Button2" BorderBrush="{DynamicResource SolidColor}" Margin="10"/></StackPanel></Grid>
</Window>

业务代码

namespace WpfApp1
{/// <summary>/// MainWindow.xaml 的交互逻辑/// </summary>public partial class MainWindow : Window{public MainWindow(){InitializeComponent();        }private void Button_Update(object sender, RoutedEventArgs e){//找到资源,设置新的值this.Resources["SolidColor"] = new SolidColorBrush(Colors.Black);}}
}

运行结果
在这里插入图片描述
点击,Update 按钮 动态绑定的Button2边框变为黑色,Button1 未改变
在这里插入图片描述
需要控件,随着软件资源变化去改变的话,就使用DynamicResource 动态绑定

例如,软件随着Window 主题 改变颜色

资源字典

提供一个可以供所有窗口使用的,资源样式 -----资源字典

首先在项目中,添加一个资源字典
在这里插入图片描述

在这里插入图片描述

此时添加一些Button的样式

在这里插入图片描述
将资源字典的内容,添加到应用程序中
在App.xaml中添加
在这里插入图片描述

此时,界面上能够成功引用资源文件里面的样式
在这里插入图片描述
此时新建一个窗口,也同样能以相同的方式,使用资源字典里面的样式
在这里插入图片描述
在代码中,可以查找、设置 我们添加的资源

在这里插入图片描述


http://www.ppmy.cn/news/1439631.html

相关文章

Kubernetes - CentOS7搭建k8s_v1.18集群高可用(kubeadm/二进制包部署方式)实测配置验证手册

Kubernetes - CentOS7搭建k8s集群高可用&#xff08;kubeadm/二进制包部署方式&#xff09;实测配置验证手册 前言概述&#xff1a; 一、Kubernetes—k8s是什么 Kubernetes 这个名字源于希腊语&#xff0c;意为“舵手“或”飞行员"。 Kubernetes&#xff0c;简称K8s&#…

clickhouse与oracle传输数据

参考 https://github.com/ClickHouse/clickhouse-jdbc-bridge https://github.com/ClickHouse/clickhouse-jdbc-bridge/blob/master/docker/README.md clickhouse官方提供了一种方式&#xff0c;可以实现clickhouse与oracle之间传输数据&#xff0c;不仅仅是oracle&#xff0…

中电金信:向“新”而行——探索融合架构的项目管理在保险行业的应用

近年来&#xff0c;险企在政策推动、市场牵引、自身发展、新技术应用日趋成熟等内外部因素的驱动下&#xff0c;积极投身到数字化转型的浪潮中。在拜访各类保险客户和合作项目的过程中&#xff0c;我们发现不少险企在数字化转型中或多或少都面临着战略如何落地、技术如何承接和…

基于 Spring Boot 博客系统开发(三)

基于 Spring Boot 博客系统开发&#xff08;三&#xff09; 本系统是简易的个人博客系统开发&#xff0c;为了更加熟练地掌握 SprIng Boot 框架及相关技术的使用。&#x1f33f;&#x1f33f;&#x1f33f; 基于 Spring Boot 博客系统开发&#xff08;二&#xff09;&#x1f…

yolov8 dll 编译

1. 每次用yolo v8 都要用python &#xff0c;对于我这种写软件的太不方便了&#xff0c;下面尝试编译dll 调用, 我已经有做好的模型.best.pt 参考视频方法: yolov8 TensorRT C 部署_哔哩哔哩_bilibili 【yolov8】tensorrt部署保姆级教程&#xff0c;c版_哔哩哔哩_bilibili 需…

深入理解Java消息中间件-Apache Kafka

在数字化时代&#xff0c;数据如同血液一样流动于现代应用的每一个角落。如何高效、可靠地处理这些数据流&#xff0c;成为了构建响应式、可扩展和弹性系统的关键挑战。作为一名专业的Java技术架构师和作家&#xff0c;我将深入分析Apache Kafka这一广泛使用的Java消息中间件解…

[C++学习记录]---实现写文件和读文件

前言 C中写文件和读文件基本原理。都是通过文件流对象来实现的&#xff0c;可以通过适当的打开模式来控制文件的读写行为。 正文 01-写文件 具体代码解释如下&#xff1a; 包含头文件&#xff1a; 首先需要包含 <fstream> 头文件&#xff0c;这个头文件包含了对…

docker制作zookeeper镜像

制作 Zookeeper 镜像的步骤通常包括以下几个主要步骤&#xff1a; 准备 Dockerfile&#xff1a;编写 Dockerfile 文件&#xff0c;定义如何构建 Zookeeper 镜像。 构建镜像&#xff1a;使用 Dockerfile 构建 Zookeeper 镜像。 运行容器&#xff1a;运行基于构建的镜像创建的容…