Avalonia如何更改全局背景色

news2024/12/24 16:53:53

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">
		<StackPanel
			 VerticalAlignment="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>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1085158.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MyCat实战

概念介绍 在 MyCat 的整体结构中&#xff0c;分为两个部分&#xff1a;上面的逻辑结构、下面的物理结构。 在 MyCat 的逻辑结构主要负责逻辑库、逻辑表、分片规则、分片节点等逻辑结构的处理&#xff0c;而具体的数据存储还是在物理结构&#xff0c;也就是数据库服务器中存储的…

云原生之使用Docker部署开源建站工具Halo-V2.10版本

云原生之使用Docker部署开源建站工具Halo-V2.10版本 一、Halo-V2.10介绍1.1 Halo简介1.2 Halo特点 二、本次实践规划2.1 本地环境规划2.2 本次实践介绍 三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本 四、下载Halo镜像五、部署Halo5.1…

以数据为中心 的AI v.s. 以模型为中心的AI

原文&#xff1a;Data-Centric AI vs. Model-Centric AI Introduction to Data-Centric AI 当你学习关于机器学习相关的课程时&#xff0c;通常是给你一个清洁好的数据,你的任务是利用这个数据集训练出一个最好的模型。所有在机器学习课程教的技巧都是为了这个目标&#xff1…

RT-Thread SMP介绍与移植(学习)

RT-Thread SMP介绍与移植 SMP&#xff1a;对称多处理&#xff08;Symmetrical Multi-Processing&#xff09;简称SMP&#xff0c;是指在一个计算机上汇集了一组处理器&#xff08;多CPU&#xff09;&#xff0c;各CPU之间共享内存子系统以及总线结构。 RT-Thread自4.0.0版本开…

Burstormer论文阅读笔记

这是CVPR2023的一篇连拍图像修复和增强的论文&#xff0c;一作是阿联酋的默罕默德 本 扎耶得人工智能大学&#xff0c;二作是旷视科技。这些作者和CVPR2022的一篇BIPNet&#xff0c;同样是做连拍图像修复和增强的&#xff0c;是同一批。也就是说同一个方向&#xff0c;22年中了…

基于SpringBoot的精准扶贫管理系统

目录 前言 一、技术栈 二、系统功能介绍 用户信息管理 贫困户信息管理 新闻类型管理 志愿者招聘管理 志愿者招聘 留言反馈管理 贫困户 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息…

【笔记】【信息论与编码】第三章 离散信源

本文是笔者在学习《信息论与编码》课程中所做的笔记&#xff0c;供个人学习记忆使用。 第三章 离散信源 文章目录 一、离散信源概念离散无记忆信源K重符号序列离散信源 二、离散信源的熵单符号离散无记忆信源熵K重符号序列离散无记忆信源熵K重符号序列离散有记忆信源熵马尔可夫…

如何在Docker部署Drupal并结合内网穿透实现远程访问

文章目录 前言1. Docker安装Drupal2. 本地局域网访问3 . Linux 安装cpolar4. 配置Drupal公网访问地址5. 公网远程访问Drupal6. 固定Drupal 公网地址 前言 Dupal是一个强大的CMS&#xff0c;适用于各种不同的网站项目&#xff0c;从小型个人博客到大型企业级门户网站。它的学习…

NZ系列工具NZ05:VBA不打开工作簿获取其内容

我的教程一共九套及VBA汉英手册一部&#xff0c;分为初级、中级、高级三大部分。是对VBA的系统讲解&#xff0c;从简单的入门&#xff0c;到数据库&#xff0c;到字典&#xff0c;到高级的网抓及类的应用。大家在学习的过程中可能会存在困惑&#xff0c;这么多知识点该如何组织…

Linux 测试端口是否放行

Linux 测试端口是否放行 1、准备2、在 CentOS 7 上放行端口&#xff0c;你可以使用以下方法&#xff1a;4、错误解决&#xff1a;[rootlocalhost backup]# netcat -l -p 11111 netcat: cannot use -p and -l 装了netcat不能用5、能用telnet去测试吗6、效果&#xff1a; 1、准备…

简易计算器的实现:使用C语言进行基础算术运算

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

S/4 HANA 大白话 - 财务会计-4 应付、应收账款

Business Partner 业务伙伴 业务伙伴现在包括供应商伙伴和客户伙伴。 只要不是个搞空壳玩泡沫的公司&#xff0c;你基本都得有从供应商那里拿原材料或者购买零部件&#xff0c;然后进行生产&#xff0c;再售卖给客户。你得和银行打交道&#xff0c;同时也得有员工。所有这些关…

【python自动化神器pyautogui使用步骤】

python自动化神器pyautogui使用步骤 这篇文章主要给大家介绍了关于python自动化神器pyautogui使用步骤的相关资料,在Python当中不仅代码简单,而且有着非常丰富的模块,pyautogui就可以称之为自动化操作的"神器",需要的朋友可以参考下 文章目录 python自动化神器pyauto…

关于SpringBoot2.x集成SpringSecurity+JJWT(0.7.0-->0.11.5)生成Token登录鉴权的问题

项目场景&#xff1a; 问题&#xff1a;遵循版本稳定的前提下&#xff0c;搭建权限认证框架&#xff0c;基于SpringBoot2.xSpringSecurity向上依赖jjwt0.7.0构建用户认证鉴权&#xff0c;起因是某L觉得jjwt0.7.0版本&#xff0c;官方已经放弃维护&#xff0c;且从maven仓库对0…

C++11发展史

文章目录 1.ChatGpt怎么说?2.C官方文档3.C11的诞生4.C11的意义 1.ChatGpt怎么说? C11是C编程语言的一个重要版本&#xff0c;也被称为C0x。它于2011年发布&#xff0c;并引入了许多新的特性和改进&#xff0c;使得C编程更加现代化和强大。 下面是C11的一些主要特性和发展历…

IDEA报Error:java:无效的源发行版13解决方式

出现问题原因&#xff1a;原本项目是spingboot2.0版本开发的&#xff0c;IDEA启动正常&#xff0c;后期新项目使用spingboot3.0&#xff0c;通过原来的IDEA版本及JDK1.8启动报上述错误&#xff0c;以下为版本文件 解决方式&#xff1a; 项目背景&#xff1a;项目已经上线&…

C++算法:图中的最短环

题目 现有一个含 n 个顶点的 双向 图&#xff0c;每个顶点按从 0 到 n - 1 标记。图中的边由二维整数数组 edges 表示&#xff0c;其中 edges[i] [ui, vi] 表示顶点 ui 和 vi 之间存在一条边。每对顶点最多通过一条边连接&#xff0c;并且不存在与自身相连的顶点。 返回图中 …

【Python中单引号、双引号和三引号具体的用法及注意点】

Python中单引号、双引号和三引号具体的用法及注意点 这篇文章主要给大家介绍了关于Python中单引号、双引号和三引号具体的用法及注意点的相关资料,Python中单引号、双引号、三引号中使用常常困惑,想弄明白这三者相同点和不同点,需要的朋友可以参考下 文章目录 Python中单引号、…

Zabbix监控系统详解1 :zabbix服务部署、自定义监控项、自动发现与自动注册

文章目录 1. Zabbix 概述1.1 简介1.2 zabbix的功能组件1.2.1 Zabbix Server1.2.2 数据库1.2.3 Web 界面1.2.4 Zabbix Agent1.2.5 Zabbix Proxy1.2.6 Java Gateway 1.3 工作原理1.4 常用端口号1.5 zabbix中预设的键值1.6 自定义监控项相关流程1.7 邮件报警配置思路1.8 Zabbix自动…

气膜建筑的可持续性:能源效益与环境影响

气膜建筑作为现代建筑技术的一种创新形式&#xff0c;不仅为城市景观增添了未来感&#xff0c;同时也在建筑领域引发了可持续性发展的讨论。本文将探讨气膜建筑在可持续性方面的关键议题&#xff0c;特别聚焦于其能源效益和环境影响&#xff0c;以期为未来气膜建筑设计和规划提…