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

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.mfbz.cn/a/21032.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

浅谈PMO对组织战略的支持︱美团骑行事业部项目管理中心负责人边国华

美团骑行事业部项目管理中心负责人边国华先生受邀为由PMO评论主办的2023第十二届中国PMO大会演讲嘉宾&#xff0c;演讲议题&#xff1a;浅谈PMO对组织战略的支持。大会将于6月17-18日在北京举办&#xff0c;更多内容请浏览会议日程 议题内容简要&#xff1a; 战略是组织运行的…

【C++】C++中的多态

目录 一.多态的概念二.多态的定义及实现2.1虚函数2.2虚函数的重写虚函数重写的两个例外 2.3多态的构成条件2.4C11 override 和final2.5重载、重写、隐藏的对比 三.抽象类3.1概念3.2接口继承和实现继承 四.多态的原理4.1虚函数表4.2多态的原理(1)代码分析(2)清理解决方案 4.3动态…

AVUE样式、刷新、字典、清空搜索条件等操作

1、操作栏、表格样式的控制 2、下拉框字典的设置 3、日期格式的设置 const dateFormat function(row, value) { if (!value) return ; let format YYYY-mm-dd; let date new Date(value); const dataItem { Y: date.getFullYear().toString(), m: (date.ge…

LabVIEWCompactRIO 开发指南23 Web服务

LabVIEWCompactRIO 开发指南23 Web服务 LabVIEW8.6中引入的LabVIEWWeb服务提供了一种开放的标准方式&#xff0c;可通过Web与VI进行通信。考虑一个部署在分布式系统中的LabVIEW应用程序。LabVIEW提供了网络流等功能来建立通信&#xff0c;但许多开发人员需要一种方式&#xf…

实验10 超市订单管理系统综合实验

实验10 超市订单管理系统综合实验 应粉丝要求&#xff0c;本博主帮助实现基本效果&#xff01; 未避免产生版权问题&#xff0c;本项目博主不公开源码&#xff0c;如果您遇到相关问题可私聊博主&#xff01; 一、实验目的及任务 通过该实验&#xff0c;掌握利用SSM框架进行系…

ipa如何安装到iphone

这里以目前很火的奥普appuploader为例&#xff0c;先打开 appuploader&#xff0c;把 iPhone 用原装数据线连接&#xff0c;点击左侧的 appuploader一栏&#xff0c;会在右窗格中看到机器的相关信息&#xff0c;可以看到是否越狱一栏显示“是”。 接下来请点击左侧的“程序库”…

Android应用-开发框架设计

目录 1. &#x1f4c2; 简介 1.1 背景 1.2 专业术语 2. &#x1f531; 总体设计思想 2.1 分层&#xff1a;组件化设计框架 2.2 分类&#xff1a;应用开发架构图 3. ⚛️ 框架详细设计 3.1 组件化框架外形 3.2 业务模块化 3.3 代码编程框架 4. &#x1f4a0; 框架其他…

本地git仓库(gitea)与openssh-server的冲突(connection reset by ip port 22)

前提 之前在本地的windows电脑上安装了一个gitea供项目组成员使用。 期间为了在windows电脑上使用scp拷贝文件&#xff0c;离线安装过一个openssh。 冲突 发现无法pull/clone gitea上的仓库了&#xff0c;提示 connection reset by ip port 22 fatal: Could not read from r…

【ChatGPT】无需注册,无需科学上网,无需人工验证的速度超快的 ChatGPT

文章目录 一、ChatGPT介绍二、使用ChatGPT时经常遇到的一些问题三、一个让你呼吸顺畅的 ChatGPT 一、ChatGPT介绍 ChatGPT&#xff0c;全称聊天生成预训练转换器&#xff08;英语&#xff1a;Chat Generative Pre-trained Transformer&#xff09;&#xff0c;是OpenAI开发的人…

BGP路由选择实验

测试环境拓扑图 每一种规则测试完后记得恢复初始状态&#xff01;&#xff01; 各设备BGP Router_ID为loopback 0的地址。 AR1 配置 [V200R003C00] #sysname AR1 # interface GigabitEthernet0/0/0ip address 10.1.12.1 255.255.255.0 # interface LoopBack0ip address 1.1.…

vue大屏开发系列—使用echart开发省市地图数据,并点击省获取市地图数据

1. 本文在基础上进行改进&#xff0c;后端使用若依后端 IofTV-Screen: &#x1f525;一个基于 vue、datav、Echart 框架的物联网可视化&#xff08;大屏展示&#xff09;模板&#xff0c;提供数据动态刷新渲染、屏幕适应、数据滚动配置&#xff0c;内部图表自由替换、Mixins注入…

揭 秘~月薪2-3万的程序员一天到底是怎么度过的?

程序员的高薪资&#xff0c;一直是大家热衷讨论的话题&#xff0c;几乎每隔一段时间就会在社交平台被网友们热议一番。 比如这条“月薪2万到3万的程序员的一天是怎么样度过的&#xff1f;”的帖子就一直排在知乎前列。 作为薪资可观的岗位&#xff0c;大家都非常好奇&#xff…

22届硕士,去年秋招拿了字节跳动offer,有一说一,不是很难进

自从抖音短视频APP火了之后&#xff0c;起公司字节跳动也逐渐向着大厂靠拢&#xff0c;相信大家都已经对这家公司很熟悉了&#xff0c;尤其是近几年来&#xff0c;对它的认识也在不断刷新&#xff0c;它惊人的发展速度确实让行业内人刮目相看&#xff0c;如今很多年轻人也想要挤…

ChatGPT的工作原理(纯干货,万字长文)

ChatGPT 能够自动生成一些读起来表面上甚至像人写的文字的东西&#xff0c;这非常了不起&#xff0c;而且出乎意料。但它是如何做到的&#xff1f;为什么它能发挥作用&#xff1f;我在这里的目的是大致介绍一下 ChatGPT 内部的情况&#xff0c;然后探讨一下为什么它能很好地生成…

Rust每日一练(leetDay0001) 两数之和、两数相加、最长子串

目录 1. 两数之和 Two Sum &#x1f31f; 2. 两数相加 Add Two Numbers &#x1f31f;&#x1f31f; 3. 无重复字符的最长子串 Longest substring without repeating characters &#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Rust每日一练…

内网渗透(七十八)之域权限维持之ACL滥用(下)

ACL滥用(下) 7、GenericAll 权限 应用于组 再来看看GenericAll 权限 应用于组如何进行权限维持。 由于用户hack是普通的域用户,因此他没有往Domain Admins 组添加用户的权限,如图所示,以用户hack 身份往Domain Admins 组中添加用户,可以看到,添加用户失败。 现在我们…

孙鑫VC++第四章 2.简单绘图-绘制

目录 1. 按键消息 2. 绘制线条 2.1 利用SDK全局函数实现画线功能 2.2 利用MFC的CDC类实现画线功能 2.3 利用MFC的CClientDC类实现画线功能 2.4 利用MFC的CWindowDC类实现画线功能 3. 在桌面窗口中画线 3.1 绘制彩色线条 4. 使用画刷绘图 4.1 简单画刷 4.2 位图画刷 …

『手撕 Mybatis 源码』02 - 加载配置文件

加载配置文件 获取输入流 myBatis 的配置文档层次架构 首先从读入开始查看是怎么加载配置文件的&#xff0c;现在从这里打个断点 public class MybatisTest {Testpublic void test1() throws IOException {// 1. 通过类加载器对配置文件进行加载&#xff0c;加载成了字节输入…

代码随想录算法训练营第二十三天|理论基础 77. 组合

文章目录 理论基础77.组合思路代码总结 理论基础 回溯算法&#xff1a;一种暴力搜索方式 回溯是递归的副产品&#xff0c;只要有递归就会有回溯。 回溯法&#xff0c;一般可以解决如下几种问题&#xff1a; 组合问题&#xff1a;N个数里面按一定规则找出k个数的集合切割问题…

学术加油站|基于LSM-tree存储系统的内存管理,最大限度降低I/O成本

本文系北京理工大学科研助理牛颂登所著&#xff0c;本篇也是 OceanBase 学术系列稿件第 10 篇。欢迎访问 OceanBase 官网获取更多信息&#xff1a;https://www.oceanbase.com/ 「牛颂登&#xff1a;北京理工大学科研助理&#xff0c;硕士期间在电子科技大学网络空间安全研究院从…