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 小时前
07-02-源码-.NET Core GC分配路径
算法·unity·c#·.netcore·gc·1024程序员节
吴可可1237 小时前
C#调用摄像头拍照的三种API方案
c#
samble11 小时前
从零搭建半导体设备上位机(二):Prism + DryIoc,五个工程与区域导航怎么串起来
wpf·prism·dryioc
一条闲鱼_mytube12 小时前
分布式 ID 生成方案:雪花算法与号段模式
分布式·算法·wpf
Msir_Modern12 小时前
Noita 元胞沙盒笔记
算法·unity·c#·游戏引擎·元胞自动机
她说彩礼65万13 小时前
WPF Prism代码走读
wpf
星之擎14 小时前
Task 很优雅的取消方式是什么?C# 里面。
开发语言·c#
czhc114007566315 小时前
一周概念复盘:预热、漂移与门禁
c#
云中飞鸿16 小时前
.Net和C#有什么关系?(从C++视角观察)
开发语言·c#·.net
淡海水18 小时前
07-04-源码-.NET Core GC清扫与压缩
unity·架构·c#·.netcore·gc·1024程序员节