当前位置: 首页 > 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…...

asnumpy:NPU 原生的 NumPy 体验

如果你用 Python 做 AI 开发&#xff0c;大概率写过类似这样的代码&#xff1a;用 NumPy 预处理数据&#xff0c;把结果转成 PyTorch Tensor&#xff0c;推理完再转回 NumPy 做后处理。这个过程里数据在 CPU 和 NPU 之间来回拷贝了一次&#xff0c;拖慢了整体速度。 CANN 的 a…...

【Rust + Tauri 2 + TypeScript + Tailwind CSS 4 桌面应用 UI 组件选型深度对比(2026版)】

摘要&#xff1a;随着 Tauri 2 在桌面应用开发领域的快速崛起&#xff0c;开发者面临着一个关键抉择&#xff1a;如何在前端选择最适合的 UI 组件库&#xff1f;本文基于 2026 年最新生态&#xff0c;对 shadcn/ui、Radix UI、Base UI、Mantine、Ant Design、Chakra UI、Headle…...

别再傻傻用IO翻转了!用STM32的SPI+DMA驱动WS2812灯带,实测1920颗灯珠依然稳如老狗

STM32 SPIDMA驱动WS2812灯带&#xff1a;从时序优化到千级灯珠稳定控制实战 1. 为什么GPIO翻转方案在大型项目中频频翻车&#xff1f; 很多嵌入式开发者初次接触WS2812灯带时&#xff0c;都会尝试用GPIO翻转来实现控制——毕竟看起来只需要一根信号线&#xff0c;似乎用普通IO口…...

STM32F103 平行替代方案全面分析(2026 年最新)

STM32F103 作为全球最经典的 Cortex-M3 MCU&#xff0c;凭借成熟的生态和广泛的应用基础统治了中低端嵌入式市场十余年。但近年来受国际供应链波动影响&#xff0c;其价格持续走高&#xff08;2026 年 5 月 STM32F103C8T6 批量价约 8-12 元&#xff0c;部分型号甚至超过 20 元&…...

保姆级教程:在RK3568开发板上搞定ES8316声卡驱动(从DTS配置到tinymix调试全流程)

RK3568开发板ES8316声卡驱动全流程实战指南 从零开始的声音之旅 当你第一次拿到RK3568开发板&#xff0c;想要实现音频功能时&#xff0c;ES8316这颗高性能低功耗的音频编解码芯片可能会成为你的首选。但在嵌入式Linux环境下&#xff0c;从硬件连接到软件驱动&#xff0c;再到最…...

Qt QUdpSocket组播发送失败?别慌,这3个坑我帮你踩过了(附Windows/Linux代码)

Qt QUdpSocket组播发送失败的3个实战排查点与跨平台解决方案 第一次在Qt项目中使用QUdpSocket实现组播通信时&#xff0c;那种"代码明明没报错但数据就是发不出去"的焦虑感我至今记忆犹新。组播技术本应简化一对多通信的场景&#xff0c;但当你在Windows开发机上测试…...

Noisereduce的PyTorch实现:将降噪算法集成到神经网络中的完整教程

Noisereduce的PyTorch实现&#xff1a;将降噪算法集成到神经网络中的完整教程 【免费下载链接】noisereduce Noise reduction in python using spectral gating (speech, bioacoustics, audio, time-domain signals) 项目地址: https://gitcode.com/gh_mirrors/no/noisereduc…...

魔,法变,声器,低延迟高保真设计,让语音聊天与直播互动更具趣味性与辨识度

获取连接&#xff1a; 魔法变声器https://pan.quark.cn/s/77bfbefc8233 魔,法变,声器是一款专为移动端语音交互设计的实时音频处理工具。 它针对游戏开黑与社交场景进行了低延迟优化&#xff0c;能在不占用过多系统资源的前提下&#xff0c;将原始人声精准转换为目标音色&…...

ARM嵌入式项目存储选型指南:从eMMC到SD卡,如何平衡性能、可靠性与成本

1. 项目概述&#xff1a;为什么存储选型是ARM嵌入式项目的“命门”&#xff1f;干了十几年嵌入式开发&#xff0c;从早期的ARM7、ARM9到现在的Cortex-A系列&#xff0c;经手的项目少说也有上百个。我发现一个很有意思的现象&#xff1a;很多工程师在选型时&#xff0c;CPU主频、…...

bili2text终极指南:一键将B站视频转换为高质量文字稿的免费工具

bili2text终极指南&#xff1a;一键将B站视频转换为高质量文字稿的免费工具 【免费下载链接】bili2text Bilibili视频转文字&#xff0c;一步到位&#xff0c;输入链接即可使用 项目地址: https://gitcode.com/gh_mirrors/bi/bili2text 你是否曾经为了整理B站视频中的精…...