当前位置: 首页 > news >正文

Avalonia如何更改全局背景色

1.项目下载地址:https://gitee.com/confusedkitten/avalonia-demo

2.UI库Semi.Avalonia,项目地址  https://github.com/irihitech/Semi.Avalonia

3.ColorView,使用Semi.Avalonia.ColorPicker,Nuget获取就行 

4.样式预览

以下是测试专用方法,动态改变默认背景色,实际上你只要在你的资源里设置以下    <SolidColorBrush x:Key="WindowDefaultBackground">#336699</SolidColorBrush>,就可以了,这个资源文件在App.axaml中引用以下就生效了

 5.WindowBackground.axaml

<UserControl xmlns="https://github.com/avaloniaui"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:colorPicker="clr-namespace:Semi.Avalonia.ColorPicker;assembly=Semi.Avalonia.ColorPicker"xmlns:controls="using:Avalonia.Controls"mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"x:Class="AvaloniaDemo.Pages.WindowBackground"><StackPanel Spacing="20"><StackPanelVerticalAlignment="Top"Orientation="Horizontal"Spacing="20"><ColorView ColorSpectrumShape="Ring" x:Name="ColorV" Loaded="ColorVLoaded"/></StackPanel></StackPanel>
</UserControl>

6.WindowBackground.axaml.cs 

using Avalonia;
using Avalonia.Controls;
using Avalonia.Input;
using Avalonia.Interactivity;
using Avalonia.Markup.Xaml;
using Avalonia.Media;
using System;namespace AvaloniaDemo.Pages;public partial class WindowBackground : UserControl
{public EventHandler<ColorChangedEventArgs>? ColorChangedHandler;public WindowBackground(){InitializeComponent();}private void ColorVLoaded(object? sender, RoutedEventArgs e){if (sender is ColorView colorView)colorView.ColorChanged += ColorChanged;}private void ColorChanged(object? sender, ColorChangedEventArgs e){ColorChangedHandler?.Invoke(this, e);}
}

7.MainWindow.axaml.cs

using Avalonia.Controls;
using Avalonia.Markup.Xaml;
using Avalonia.Media;
using Avalonia.Themes.Fluent;
using AvaloniaDemo.Pages;namespace AvaloniaDemo.Views
{public partial class MainWindow : Window{public MainWindow(){this.InitializeComponent();}private void TabLoaded(object? sender, Avalonia.Interactivity.RoutedEventArgs e){if (sender is WindowBackground windowBackground)windowBackground.ColorChangedHandler += ColorChanged;}private void ColorChanged(object? sender, ColorChangedEventArgs e){Resources["WindowDefaultBackground"] = new SolidColorBrush(e.NewColor);}private void InitializeComponent(){AvaloniaXamlLoader.Load(this);}}
}

8. 标题栏颜色问题

参考 https://github.com/AvaloniaUI/Avalonia/issues/186

解决方案是,设置 SystemDecorations="None",就是不要标题栏了,自己画一个:类似这个样子

<Window xmlns="https://github.com/avaloniaui"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:vm="using:AvaloniaDemo.ViewModels"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:pages="using:AvaloniaDemo.Pages"mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"x:Class="AvaloniaDemo.Views.MainWindow"x:DataType="vm:MainWindowViewModel"Icon="/Assets/avalonia-logo.ico"SystemDecorations="None"Title="AvaloniaDemo"><Design.DataContext><!-- This only sets the DataContext for the previewer in an IDE,to set the actual DataContext for runtime, set the DataContext property in code (look at App.axaml.cs) --><vm:MainWindowViewModel/></Design.DataContext><Grid RowDefinitions="40,*"><StackPanel Background="Pink" Orientation="Horizontal" VerticalAlignment="Center"><TextBlock Text="画一个标题栏"/><Button Content="×" FontSize="25" Margin="1010 0 0 0"/></StackPanel><TabControl Name="tab"Grid.Row="1"Margin="8"Padding="20,0,0,0"HorizontalAlignment="Stretch"TabStripPlacement="Left"><TabItem Header="DataGrid"><pages:DataGrid /></TabItem></TabControl></Grid>
</Window>

相关文章:

Avalonia如何更改全局背景色

1.项目下载地址&#xff1a;https://gitee.com/confusedkitten/avalonia-demo 2.UI库Semi.Avalonia&#xff0c;项目地址 https://github.com/irihitech/Semi.Avalonia 3.ColorView&#xff0c;使用Semi.Avalonia.ColorPicker&#xff0c;Nuget获取就行 4.样式预览 以下是…...

万界星空科技低代码平台云MES系统功能场景

1、 工艺管理 生产工艺规程、岗位操作法、工艺卡片的编制。 生产过程的工艺条件、产品质量指标以及原材料消耗的执行检查、相关数据的统计分析。 2、 工序管理 对人、机、料、法控制&#xff0c;规定产品质量标准及有关完成方法的各项规程&#xff0c;并明确各道工序的管理负责…...

运维大数据平台的建设与实践探索

随着企业数字化转型的推进&#xff0c;运维管理面临着前所未有的挑战和机遇。为应对日益复杂且严峻的挑战&#xff0c;数字免疫系统和智能运维等概念应运而生。数字免疫系统和智能运维作为新兴技术&#xff0c;正引领着运维管理的新趋势。数字免疫系统和智能运维都借助大数据运…...

【Java 进阶篇】创建 HTML 注册页面

在这篇博客中&#xff0c;我们将介绍如何创建一个简单的 HTML 注册页面。HTML&#xff08;Hypertext Markup Language&#xff09;是一种标记语言&#xff0c;用于构建网页的结构和内容。创建一个注册页面是网页开发的常见任务之一&#xff0c;它允许用户提供个人信息并注册成为…...

【JVM系列】- 启航·JVM概论学习

启航JVM概论 &#x1f604;生命不息&#xff0c;写作不止 &#x1f525; 继续踏上学习之路&#xff0c;学之分享笔记 &#x1f44a; 总有一天我也能像各位大佬一样 &#x1f3c6; 博客首页 怒放吧德德 To记录领地 &#x1f31d;分享学习心得&#xff0c;欢迎指正&#xff0c…...

Windows技巧

Windows应用 Windows应用无限延长Windows10 自动更新时间管理员身份打开cmd输入以下代码设置暂停更新时间 Windows应用 无限延长Windows10 自动更新时间 管理员身份打开cmd 输入以下代码 这里设置的是3000天&#xff0c;需要恢复更新可以将其设置为1天 reg add “HKEY_LOCA…...

Git 应用小记

常用命令 git reset 3种模式 --soft&#xff1a;将HEAD引用指向给定提交&#xff0c;索引&#xff08;暂存区&#xff09;和工作目录的内容不变 --mixed&#xff08;默认&#xff0c;可不写&#xff09;&#xff1a;将HEAD引用指向给定提交&#xff0c;索引&#xff08;暂存区…...

APT攻击与零日漏洞

APT攻击 当谈到网络安全时&#xff0c;APT&#xff08;高级持续性威胁&#xff09;攻击是最为复杂和难以检测的攻击类型之一。APT攻击通常涉及到高度的技术和策略性&#xff0c;而且它们的目标是深入地渗透和长时间地隐藏在目标网络中。 1. 什么是APT攻击&#xff1f; 高级持续…...

leetCode 1143.最长公共子序列 动态规划 + 滚动数组

1143. 最长公共子序列 - 力扣&#xff08;LeetCode&#xff09; 给定两个字符串 text1 和 text2&#xff0c;返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 &#xff0c;返回 0 。 一个字符串的 子序列 是指这样一个新的字符串&#xff1a;它是由原字符串…...

【C++ Miscellany】继承体系非尾端类设计为抽象类

部分赋值问题 用软件来处理两种动物&#xff1a;蜥蜴和鸡 class Animal { public:Animal& operator (const Animal& rhs);... };class Lizard: public Animal { public:Lizard& operator (const Lizard& rhs);... };class Chicken: public Animal {Chicken…...

Leetcode236. 二叉树的最近公共祖先

给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个节点 p、q&#xff0c;最近公共祖先表示为一个节点 x&#xff0c;满足 x 是 p、q 的祖先且 x 的深度尽可能大&#xff08;一个节点也可以是它自己的祖…...

Swift SwiftUI CoreData 过滤数据 2

预览 Code import SwiftUI import CoreDatastruct HomeSearchView: View {Environment(\.dismiss) var dismissState private var search_value ""FetchRequest(entity: Bill.entity(),sortDescriptors: [NSSortDescriptor(keyPath: \Bill.c_at, ascending: false)…...

解决maven骨架加载慢问题(亲测解决)

1、下载archetype-catalog.xml 网站 &#xff1a; https://repo.maven.apache.org/maven2/ 2、放在这个文件夹下面 3、setting–>build–>Runner : -DarchetypeCataloglocal...

Android---java内存模型与线程

Java 内存模型翻译自 Java Memory Model&#xff0c;简称 JMM。它所描述的是多线程并发、CPU 缓存等方面的内容。 在每一个线程中&#xff0c;都会有一块内部的工作内存&#xff0c;这块内存保存了主内存共享数据的拷贝副本。但在 Java 线程中并不存在所谓的工作内存&#xff0…...

23.10.7.sql 里面的DISTINCT

例如&#xff1a; SELECT DISTINCT t.container_no FROM biz_inventory_task_detail t 这里distinct干嘛的 解释&#xff1a; DISTINCT是一个关键字&#xff0c;用于在SELECT语句中返回唯一不重复的值。 在这个查询中&#xff0c;使用DISTINCT关键字&#xff0c;是为了返回biz…...

mysql面试题38:count(1)、count(*) 与 count(列名) 的区别

该文章专注于面试&#xff0c;面试只要回答关键点即可&#xff0c;不需要对框架有非常深入的回答&#xff0c;如果你想应付面试&#xff0c;是足够了&#xff0c;抓住关键点 面试官&#xff1a; count(1)、count(*) 与 count(列名) 的区别 当使用COUNT函数进行数据统计时&…...

nodejs+vue+elementui大学生心理健康管理系统

简单的说 Node.js 就是运行在服务端的 JavaScript。 前端技术&#xff1a;nodejsvueelementui 前端&#xff1a;HTML5,CSS3、JavaScript、VUE本大学生心理健康管理系统使用简洁的框架结构&#xff0c;专门用于用户咨询心理专家&#xff0c;系统具有方便性、灵活性、应用性。于是…...

【MySQL】深入解析MySQL双写缓冲区

原创不易&#xff0c;注重版权。转载请注明原作者和原文链接 文章目录 为什么需要Doublewrite BufferDoublewrite Buffer原理Doublewrite Buffer和redo logDoublewrite Buffer相关参数总结 在数据库系统的世界中&#xff0c;保障数据的完整性和稳定性是至关重要的任务。为了实现…...

u-boot 编译与运行

文章目录 u-boot 编译与运行环境配置ubuntu 版本qemu 版本u-boot 版本&#xff08;master&#xff09;交叉工具链版本 u-boot 源码下载生成配置文件报错情况一报错情况2 u-boot 配置编译编译脚本编译报错解决编译日志编译产物 运行 u-boot 编译与运行 本文主要介绍 u-boot 编译…...

C++QT-day2

#include <bits/stdc.h>/*自己封装一个矩形类(Rect)&#xff0c;拥有私有属性:宽度(width)、高度(height)&#xff0c;定义公有成员函数:初始化函数:void init(int w, int h)更改宽度的函数:set_w(int w)更改高度的函数:set_h(int h)输出该矩形的周长和面积函数:void sho…...

VRCT终极指南:3步实现VRChat跨语言实时翻译,打破虚拟社交障碍

VRCT终极指南&#xff1a;3步实现VRChat跨语言实时翻译&#xff0c;打破虚拟社交障碍 【免费下载链接】VRCT VRCT(VRChat Chatbox Translator & Transcription) 项目地址: https://gitcode.com/gh_mirrors/vr/VRCT 您是否曾在VRChat的国际房间中&#xff0c;面对来自…...

跨平台部署YOLOv5的路径陷阱:从WindowsPath错误看Python pathlib的兼容性设计

1. 当WindowsPath遇上Linux&#xff1a;YOLOv5部署的路径陷阱 最近帮朋友调试一个YOLOv5模型部署问题&#xff0c;场景特别典型&#xff1a;在Windows训练好的目标检测模型&#xff0c;迁移到Linux服务器就报错。错误信息直指一个看似简单的路径问题&#xff1a;"NotImple…...

Phi-4-mini-reasoning案例分享:用逻辑题测试模型对‘必要条件’的理解深度

Phi-4-mini-reasoning案例分享&#xff1a;用逻辑题测试模型对必要条件的理解深度 1. 模型能力定位 Phi-4-mini-reasoning是专为推理任务优化的文本生成模型&#xff0c;其核心优势在于处理需要多步逻辑推导的问题。与通用对话模型不同&#xff0c;它更擅长处理以下类型任务&…...

YOLOv8人脸检测实战:如何将WIDER Face数据集玩出新花样?结合OpenCV分类提升准确率

YOLOv8人脸检测实战&#xff1a;WIDER Face数据集与OpenCV分类的融合优化 人脸检测技术早已从实验室走向实际应用&#xff0c;但误检问题始终困扰着开发者。上周团队在商场部署的人脸统计系统&#xff0c;竟将广告牌上的明星照片全部计入客流——这种尴尬促使我们重新思考单阶段…...

写段代码教会你什么是HOOK技术?HOOK技术能干什么?

起因是我想在搞一些操作windows进程的事情时&#xff0c;老是需要右键以管理员身份运行&#xff0c;感觉很麻烦。就研究了一下怎么提权&#xff0c;顺手瞄了一眼Windows下用户态权限分配&#xff0c;然后也是感谢《深入解析Windows操作系统》这本书给我偷令牌的灵感吧&#xff…...

BG3 Mod加载异常完全解决方案:从顺序重置到冲突修复的系统指南

BG3 Mod加载异常完全解决方案&#xff1a;从顺序重置到冲突修复的系统指南 【免费下载链接】BG3ModManager A mod manager for Baldurs Gate 3. 项目地址: https://gitcode.com/gh_mirrors/bg/BG3ModManager 博德之门3 Mod管理器故障解决是许多玩家在使用BG3ModManager时…...

高频电路布线十大实用技巧与EMC解决方案

1. 高频电路布线的基本概念与挑战高频电路通常指工作频率达到或超过45MHz~50MHz的数字逻辑电路&#xff0c;当这类电路占整个电子系统1/3以上比重时&#xff0c;就必须考虑高频特性带来的设计挑战。我在实际项目中多次遇到这样的场景&#xff1a;一个原本在低频下工作良好的电路…...

PX4无人机Offboard模式实战:从Gazebo仿真到真机避坑指南(附Python/C++代码对比)

PX4无人机Offboard模式全流程实战&#xff1a;从仿真到真机的Python/C双语言开发指南 1. Offboard模式核心原理与开发环境搭建 Offboard模式是PX4飞控系统中最为强大的控制模式之一&#xff0c;它允许开发者通过外部计算机&#xff08;如运行ROS的机载电脑&#xff09;发送精确…...

企业开始用 AI 后,最容易被忽略的其实是这件事!

这两年&#xff0c;越来越多企业开始尝试把 AI 用到日常办公中。从写邮件、整理纪要&#xff0c;到查询知识库、生成文档&#xff0c;AI 正在从个人工具变成企业工作的一部分。但很多企业在推进 AI 时&#xff0c;首先关注的往往是功能和效率&#xff0c;比如“能不能写”“能不…...

Linux 内核中的信号处理:从发送到捕获

Linux 内核中的信号处理&#xff1a;从发送到捕获 引言 作为一名深耕操作系统和嵌入式开发的工程师&#xff0c;我深知通知机制的重要性。在系统开发中&#xff0c;及时的通知可以帮助系统快速响应事件。在 Linux 内核中&#xff0c;信号是一种重要的进程间通信机制&#xff0c…...