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.项目下载地址:https://gitee.com/confusedkitten/avalonia-demo 2.UI库Semi.Avalonia,项目地址 https://github.com/irihitech/Semi.Avalonia 3.ColorView,使用Semi.Avalonia.ColorPicker,Nuget获取就行 4.样式预览 以下是…...
万界星空科技低代码平台云MES系统功能场景
1、 工艺管理 生产工艺规程、岗位操作法、工艺卡片的编制。 生产过程的工艺条件、产品质量指标以及原材料消耗的执行检查、相关数据的统计分析。 2、 工序管理 对人、机、料、法控制,规定产品质量标准及有关完成方法的各项规程,并明确各道工序的管理负责…...
运维大数据平台的建设与实践探索
随着企业数字化转型的推进,运维管理面临着前所未有的挑战和机遇。为应对日益复杂且严峻的挑战,数字免疫系统和智能运维等概念应运而生。数字免疫系统和智能运维作为新兴技术,正引领着运维管理的新趋势。数字免疫系统和智能运维都借助大数据运…...
【Java 进阶篇】创建 HTML 注册页面
在这篇博客中,我们将介绍如何创建一个简单的 HTML 注册页面。HTML(Hypertext Markup Language)是一种标记语言,用于构建网页的结构和内容。创建一个注册页面是网页开发的常见任务之一,它允许用户提供个人信息并注册成为…...
【JVM系列】- 启航·JVM概论学习
启航JVM概论 😄生命不息,写作不止 🔥 继续踏上学习之路,学之分享笔记 👊 总有一天我也能像各位大佬一样 🏆 博客首页 怒放吧德德 To记录领地 🌝分享学习心得,欢迎指正,…...
Windows技巧
Windows应用 Windows应用无限延长Windows10 自动更新时间管理员身份打开cmd输入以下代码设置暂停更新时间 Windows应用 无限延长Windows10 自动更新时间 管理员身份打开cmd 输入以下代码 这里设置的是3000天,需要恢复更新可以将其设置为1天 reg add “HKEY_LOCA…...
Git 应用小记
常用命令 git reset 3种模式 --soft:将HEAD引用指向给定提交,索引(暂存区)和工作目录的内容不变 --mixed(默认,可不写):将HEAD引用指向给定提交,索引(暂存区…...
APT攻击与零日漏洞
APT攻击 当谈到网络安全时,APT(高级持续性威胁)攻击是最为复杂和难以检测的攻击类型之一。APT攻击通常涉及到高度的技术和策略性,而且它们的目标是深入地渗透和长时间地隐藏在目标网络中。 1. 什么是APT攻击? 高级持续…...
leetCode 1143.最长公共子序列 动态规划 + 滚动数组
1143. 最长公共子序列 - 力扣(LeetCode) 给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串…...
【C++ Miscellany】继承体系非尾端类设计为抽象类
部分赋值问题 用软件来处理两种动物:蜥蜴和鸡 class Animal { public:Animal& operator (const Animal& rhs);... };class Lizard: public Animal { public:Lizard& operator (const Lizard& rhs);... };class Chicken: public Animal {Chicken…...
Leetcode236. 二叉树的最近公共祖先
给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖…...
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 网站 : https://repo.maven.apache.org/maven2/ 2、放在这个文件夹下面 3、setting–>build–>Runner : -DarchetypeCataloglocal...
Android---java内存模型与线程
Java 内存模型翻译自 Java Memory Model,简称 JMM。它所描述的是多线程并发、CPU 缓存等方面的内容。 在每一个线程中,都会有一块内部的工作内存,这块内存保存了主内存共享数据的拷贝副本。但在 Java 线程中并不存在所谓的工作内存࿰…...
23.10.7.sql 里面的DISTINCT
例如: SELECT DISTINCT t.container_no FROM biz_inventory_task_detail t 这里distinct干嘛的 解释: DISTINCT是一个关键字,用于在SELECT语句中返回唯一不重复的值。 在这个查询中,使用DISTINCT关键字,是为了返回biz…...
mysql面试题38:count(1)、count(*) 与 count(列名) 的区别
该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官: count(1)、count(*) 与 count(列名) 的区别 当使用COUNT函数进行数据统计时&…...
nodejs+vue+elementui大学生心理健康管理系统
简单的说 Node.js 就是运行在服务端的 JavaScript。 前端技术:nodejsvueelementui 前端:HTML5,CSS3、JavaScript、VUE本大学生心理健康管理系统使用简洁的框架结构,专门用于用户咨询心理专家,系统具有方便性、灵活性、应用性。于是…...
【MySQL】深入解析MySQL双写缓冲区
原创不易,注重版权。转载请注明原作者和原文链接 文章目录 为什么需要Doublewrite BufferDoublewrite Buffer原理Doublewrite Buffer和redo logDoublewrite Buffer相关参数总结 在数据库系统的世界中,保障数据的完整性和稳定性是至关重要的任务。为了实现…...
u-boot 编译与运行
文章目录 u-boot 编译与运行环境配置ubuntu 版本qemu 版本u-boot 版本(master)交叉工具链版本 u-boot 源码下载生成配置文件报错情况一报错情况2 u-boot 配置编译编译脚本编译报错解决编译日志编译产物 运行 u-boot 编译与运行 本文主要介绍 u-boot 编译…...
C++QT-day2
#include <bits/stdc.h>/*自己封装一个矩形类(Rect),拥有私有属性:宽度(width)、高度(height),定义公有成员函数:初始化函数:void init(int w, int h)更改宽度的函数:set_w(int w)更改高度的函数:set_h(int h)输出该矩形的周长和面积函数:void sho…...
asnumpy:NPU 原生的 NumPy 体验
如果你用 Python 做 AI 开发,大概率写过类似这样的代码:用 NumPy 预处理数据,把结果转成 PyTorch Tensor,推理完再转回 NumPy 做后处理。这个过程里数据在 CPU 和 NPU 之间来回拷贝了一次,拖慢了整体速度。 CANN 的 a…...
【Rust + Tauri 2 + TypeScript + Tailwind CSS 4 桌面应用 UI 组件选型深度对比(2026版)】
摘要:随着 Tauri 2 在桌面应用开发领域的快速崛起,开发者面临着一个关键抉择:如何在前端选择最适合的 UI 组件库?本文基于 2026 年最新生态,对 shadcn/ui、Radix UI、Base UI、Mantine、Ant Design、Chakra UI、Headle…...
别再傻傻用IO翻转了!用STM32的SPI+DMA驱动WS2812灯带,实测1920颗灯珠依然稳如老狗
STM32 SPIDMA驱动WS2812灯带:从时序优化到千级灯珠稳定控制实战 1. 为什么GPIO翻转方案在大型项目中频频翻车? 很多嵌入式开发者初次接触WS2812灯带时,都会尝试用GPIO翻转来实现控制——毕竟看起来只需要一根信号线,似乎用普通IO口…...
STM32F103 平行替代方案全面分析(2026 年最新)
STM32F103 作为全球最经典的 Cortex-M3 MCU,凭借成熟的生态和广泛的应用基础统治了中低端嵌入式市场十余年。但近年来受国际供应链波动影响,其价格持续走高(2026 年 5 月 STM32F103C8T6 批量价约 8-12 元,部分型号甚至超过 20 元&…...
保姆级教程:在RK3568开发板上搞定ES8316声卡驱动(从DTS配置到tinymix调试全流程)
RK3568开发板ES8316声卡驱动全流程实战指南 从零开始的声音之旅 当你第一次拿到RK3568开发板,想要实现音频功能时,ES8316这颗高性能低功耗的音频编解码芯片可能会成为你的首选。但在嵌入式Linux环境下,从硬件连接到软件驱动,再到最…...
Qt QUdpSocket组播发送失败?别慌,这3个坑我帮你踩过了(附Windows/Linux代码)
Qt QUdpSocket组播发送失败的3个实战排查点与跨平台解决方案 第一次在Qt项目中使用QUdpSocket实现组播通信时,那种"代码明明没报错但数据就是发不出去"的焦虑感我至今记忆犹新。组播技术本应简化一对多通信的场景,但当你在Windows开发机上测试…...
Noisereduce的PyTorch实现:将降噪算法集成到神经网络中的完整教程
Noisereduce的PyTorch实现:将降噪算法集成到神经网络中的完整教程 【免费下载链接】noisereduce Noise reduction in python using spectral gating (speech, bioacoustics, audio, time-domain signals) 项目地址: https://gitcode.com/gh_mirrors/no/noisereduc…...
魔,法变,声器,低延迟高保真设计,让语音聊天与直播互动更具趣味性与辨识度
获取连接: 魔法变声器https://pan.quark.cn/s/77bfbefc8233 魔,法变,声器是一款专为移动端语音交互设计的实时音频处理工具。 它针对游戏开黑与社交场景进行了低延迟优化,能在不占用过多系统资源的前提下,将原始人声精准转换为目标音色&…...
ARM嵌入式项目存储选型指南:从eMMC到SD卡,如何平衡性能、可靠性与成本
1. 项目概述:为什么存储选型是ARM嵌入式项目的“命门”?干了十几年嵌入式开发,从早期的ARM7、ARM9到现在的Cortex-A系列,经手的项目少说也有上百个。我发现一个很有意思的现象:很多工程师在选型时,CPU主频、…...
bili2text终极指南:一键将B站视频转换为高质量文字稿的免费工具
bili2text终极指南:一键将B站视频转换为高质量文字稿的免费工具 【免费下载链接】bili2text Bilibili视频转文字,一步到位,输入链接即可使用 项目地址: https://gitcode.com/gh_mirrors/bi/bili2text 你是否曾经为了整理B站视频中的精…...
