WPF对象资源

目录

参数复用

资源的定义

使用方式


资源统一设置:对象资源属性/向上搜索:APP、系统资源

参数复用

需求:想和C#代码一样,写一个全局的参数,都能使用。

复制代码
 <!--以下三个命名空间都可以在xaml中使用C#中的属性-->
 <!--xmlns:sys="clr-namespace:System;assembly=mscorlib"-->
 <!--xmlns:sys="clr-namespace:System;assembly=netstandard"-->
 <!--xmlns:sys="clr-namespace:System;assembly=System.Runtime"-->

<Window x:Class="XH.StyleLesson.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:XH.StyleLesson"
        xmlns:sys="clr-namespace:System;assembly=System.Runtime"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
<Window.Resources>
  <!--参数定义-->
  <sys:Double x:Key="value">120</sys:Double>
  <SolidColorBrush x:Key="brush">red</SolidColorBrush>
  <Style TargetType="Button" x:Key="btnStyle">
      <!--参数使用-->
      <Setter Property="Width" Value="{StaticResource value}"/>
      <Setter Property="Height" Value="200"/>
      <Setter Property="Background" Value="{StaticResource brush}"/>
  </Style>
</Window.Resources>
  <Grid>
    <Button Style="{StaticResource btnStyle}"/>    
  </Grid>
</Window>

注意:xaml中使用参数时候,数据类型一定要属性需要的数据类型保持一致,否则会报错。

资源的定义

Resources 对象的资源管理

xaml中任何对象都包含Resources资源管理

也是有作用域的,搜索方式是父对象资源的查找

也直接在App.xaml也可以设置

StaticResource 静态资源 逐行扫描 从前往后扫描 找不到就报错

DynamicResource动态资源 先加载完运行完再扫描 找不到不会报错 就是不显示

使用区别:希望资源在运行过程中指定:使用动态;如果固定资源:使用静态

性能上:首推静态,能用静态不使用动态

使用方式

如果在Style中,需要当前控件下都默认使用的话,就不用设置key,如果是特定的,需要使用key进行绑定。

复制代码
<Style TargetType="Button" x:Key="btnStyle">
    <Setter Property="Width" Value="200"/>
    <Setter Property="Height" Value="200"/>
    <Setter Property="Background" Value="{StaticResource brush}"/>
</Style>

<!--绑定即可-->
<Button Style="{StaticResource btnStyle}"/>
相关推荐
暖馒5 小时前
Modbus应用层协议的深度剖析
网络·网络协议·c#·wpf·智能硬件
R1nG8637 小时前
HCCL vs NCCL代码级对比 hccl/algorithms/ vs nccl/src/collectives/ Ring算法实现差异
wpf·cann
刘欣的博客9 小时前
C# CS架构程序发版升级的走数据库方案
c#·单文件升级自己的方式
Yorlen_Zhang10 小时前
Python Tkinter Text 控件完全指南:从基础编辑器到富文本应用
开发语言·python·c#
不绝19110 小时前
C#进阶:预处理指令/反射,Gettype,Typeof/关键类
开发语言·c#
大鹏说大话11 小时前
告别 MSBuild 脚本混乱:用 C# 和 Nuke 构建清晰、可维护的现代化构建系统
开发语言·c#
风指引着方向11 小时前
归约操作优化:ops-math 的 Sum/Mean/Max 实现
人工智能·wpf
czhc114007566312 小时前
通信 28
c#
听麟14 小时前
HarmonyOS 6.0+ 跨端智慧政务服务平台开发实战:多端协同办理与电子证照管理落地
笔记·华为·wpf·音视频·harmonyos·政务
bugcome_com15 小时前
C# 程序结构详解:从 Hello World 开始
c#