Net跨平台UI框架Avalonia入门-资源和样式

news/2024/10/18 6:07:46/

Net跨平台UI框架Avalonia入门-资源和样式编写和使用

  • 资源和样式编写和使用
  • 样式(Styles)和资源(Resources)
    • 样式(Styles)
      • 样式定义
        • 定义的位置:
        • 定义内容:
      • 样式文件的定义和引用
    • 资源(Resources)
      • 资源的定义
      • 资源的使用
      • 资源字典的创建和引用
        • 创建资源字典
        • 资源字典引用

资源和样式编写和使用

在Avalonia中样式(Styles)和资源(Resources)是两个不同的内容,这跟WPF中不一样,WPF中样式属于资源的一种,而在Avalonia资源只能是各类颜色、笔刷、固定的属性等等,资源可以被样式引用,样式无法在资源中定义和使用。

样式(Styles)和资源(Resources)

样式(Styles)

样式定义

定义的位置:

Avalonia中 Style样式需要定义在Styles下面(<xxx.Styles>标签下或者xxxStyles.axaml样式文件),如下

<Window.Styles>中定义样式:

在这里插入图片描述

在样式文件中定义样式:

在这里插入图片描述

在资源字典中无法定义样式,否则会发生错误
在这里插入图片描述

定义内容:

定义一个样式

具体样式内容还是和WPF一样使用Setter,样式名称使用Selector来定义,具体名称="控件名.名称"

<Style Selector="TextBlock.h1"><Setter Property="FontSize" Value="24"/><Setter Property="FontWeight" Value="Bold"/></Style>

使用样式

使用Classes来引用样式,名称就是上面定义的名称

 <TextBlock Classes="h1" Text="TextBlock"/>

样式文件的定义和引用

右键项目,添加→新建项,选择Avalonia分类中的Styles项,添加一个样式文件
在这里插入图片描述

添加完文件,默认生成如下代码,Design.PreviewWith是样式文件中的一个设计器,可以在里面添加你写的样式对应的控件,使用样式进行实时预览

在这里插入图片描述

然后在样式文件中增加样式,如下,编写了一个Button的样式,然后在Design中增加一个Button,就可以在右侧设计器中看到效果

在这里插入图片描述
在这里插入图片描述

在其他文件中引用样式

直接在<xxxx.Styles>标签中添加StyleInclude进行引用,设置Source属性

 <StyleInclude Source="/AvaStyles.axaml"/>

在这里插入图片描述

资源(Resources)

资源的定义

资源一般在Resources下面定义(<xxx.Resources>标签,包括<Styles.Resources>,或者xxxResourceDictionary.axaml资源字典文件),主要定义颜色、笔刷、特殊的一些属性作为资源使用,资源的定义和WPF基本上差不多。

资源(Resources)可以在样式Styles中引用

<xxx.Resources>标签中定义

在这里插入图片描述
在这里插入图片描述

在资源字典中定义

在这里插入图片描述

资源的使用

与WPF一样,通过StaticResourceDynamicResource进行使用

 <Window.Resources><SolidColorBrush x:Key="redBrush" Color="Red"/></Window.Resources>
<Button Content="111"  Background="{DynamicResource redBrush}"/>
<Button Content="222" Grid.Column="1"  Background="{StaticResource redBrush}"/>

在这里插入图片描述

效果:
在这里插入图片描述

资源字典的创建和引用

创建资源字典

右键项目,添加→新建项,选择Avalonia分类中的Resource Dictionary项,添加一个样式文件

在这里插入图片描述

资源字典引用

资源字典在别的文件夹中引用需要在Resources标签下通过MergedDictionaries属性,使用ResourceInclude类来引用,示例如下:

 <Window.Resources><ResourceDictionary><ResourceDictionary.MergedDictionaries><ResourceInclude Source="/MyResourceDictionary.axaml"/></ResourceDictionary.MergedDictionaries></ResourceDictionary><SolidColorBrush x:Key="redBrush" Color="Red"/></Window.Resources>

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

相关文章

PBDB Data Service:Specimens grouped by bibliographic reference(根据参考书目分类的标本)

Specimens grouped by bibliographic reference&#xff08;根据参考书目分类的标本&#xff09; 描述参数以下参数可用于指定您感兴趣的标本种类以下非常重要的参数允许您选择与所提及的分类群有特定关系的参考文献&#xff0c;并跳过其他参考文献以下参数可用于按各种标准查询…

__101对称二叉树------进阶:你可以运用递归和迭代两种方法解决这个问题吗?---本题还没用【迭代】去实现

101对称二叉树 原题链接&#xff1a;完成情况&#xff1a;解题思路&#xff1a;参考代码&#xff1a; 原题链接&#xff1a; 101. 对称二叉树 https://leetcode.cn/problems/symmetric-tree/ 完成情况&#xff1a; 解题思路&#xff1a; 递归的难点在于&#xff1a;找到可以…

Navicat premium 15激活教程及安装教程+报错解决办法

Navicat premium 15激活教程及安装教程报错解决办法 1、安装包和注册工具下载2、安装Navicate Premium 15&#xff0c;直接下一步安装即可&#xff0c;安装位置可以按照到D盘3、激活Navicate Premium 15打开安装包里面的Navicat Keygen Patch v5.6.0 DFoX.exe工具当点击path选择…

ST平台用DMA传输ADC采集的数据

在 STM32F0 硬件平台上&#xff0c;使用 DMA&#xff08;Direct Memory Access&#xff09;传输 ADC&#xff08;Analog-to-Digital Converter&#xff09;采集的数据是一个高效的方法。下面是一些步骤和注意事项&#xff0c;帮助你实现这个功能&#xff1a; 配置 ADC&#xff…

这就是冒泡排序,像可乐中的气泡滋滋向上冒一样(44)

小朋友们好&#xff0c;大朋友们好&#xff01; 我是猫妹&#xff0c;一名爱上Python编程的小学生。 和猫妹学Python&#xff0c;一起趣味学编程。 今日主题 什么是冒泡排序&#xff1f; 用Python写段代码&#xff0c;实现冒泡排序。 冒泡排序 冒泡排序(Bubble Sort)是一种…

数字化时代,如何做好用户体验与应用性能管理

引言 随着数字化时代的到来&#xff0c;各个行业的应用系统从传统私有化部署逐渐转向公有云、行业云、微服务&#xff0c;这种变迁给运维部门和应用部门均带来了较大的挑战。基于当前企业 IT 运维均为多部门负责&#xff0c;且使用多种运维工具&#xff0c;因此&#xff0c;当…

详解MySQL的并发控制

目录 1.概述 2.事务 2.1.什么是事务 2.2.事务的隔离级别 2.2.1.三种数据一致性问题 2.2.2.四种隔离级别 2.3.如何设置隔离级别 3.锁 3.1.锁与事务的关系 3.2.分类 3.3.表锁 3.3.1.概述 3.3.2.读锁 3.3.3.写锁 3.3.4.保护机制 3.4.行锁 3.4.1.概述 3.4.2.什么…

探究C/C++编码世界:从字符编码到中文处理之艺

探究C-C编码世界&#xff1a;从字符编码到中文处理之艺 一、(1) C/C编码基础a. 计算机编码原理b. ASCII编码与扩展c. Unicode编码及其应用 二、(2) 字符编码与C/C操作a. 字符串处理函数b. 宽字符与多字节字符c. 字符编码转换方法 三、(3) 中文编码方式与实践a. GB2312、GBK与GB…