Avalonia学习(二十一)-自定义界面演示

今天开始继续Avalonia练习。

本节:自定义界面

在网上看见一个博客,根据需要演示一下。

前台代码

XML 复制代码
<Window xmlns="https://github.com/avaloniaui"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:vm="using:WindowStyleAvalonia.ViewModels"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
        x:Class="WindowStyleAvalonia.Views.MainWindow"
        x:DataType="vm:MainWindowViewModel"
        Icon="/Assets/avalonia-logo.ico"
        Title="WindowStyleAvalonia">

    <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>
  <Window.Styles>
    <Style Selector="Window">
      <Setter Property="ExtendClientAreaToDecorationsHint" Value="True"></Setter>
      <Setter Property="ExtendClientAreaChromeHints" Value="NoChrome"></Setter>
      <Setter Property="ExtendClientAreaTitleBarHeightHint" Value="-1"></Setter>
      <Setter Property="SystemDecorations" Value="None"></Setter>
      <Setter Property="CanResize" Value="False"></Setter>
      <Setter Property="Background">
        <Setter.Value>
          <SolidColorBrush Color="White" Opacity="0"></SolidColorBrush>
        </Setter.Value>
      </Setter>
      
    </Style>
  </Window.Styles>
  
</Window>

后台代码

cs 复制代码
using Avalonia.Controls;
using Avalonia.Input;
using System;

namespace WindowStyleAvalonia.Views
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            this.PointerPressed += MainWindow_PointerPressed;
        }

        private void MainWindow_PointerPressed(object? sender, PointerPressedEventArgs e)
        {
            if (e.Pointer.Type == PointerType.Mouse)
            {

                this.BeginMoveDrag(e);
            }
        }
    }
}

运行效果

另外推荐一个博文:

Avalonia 实现跨平台的视频聊天、屏幕分享(源码,支持Win、银河麒麟、统信UOS)-CSDN博客

相关推荐
悟乙己2 小时前
AFAC2026 赛题四金融长文本 Agent竞赛学习笔记:赛题解析(一)
笔记·学习·金融
霍霍的袁2 小时前
【C++】哈希表实现指南:从原理到开放定址法、链地址法的实现
c++·学习·哈希算法·散列表·visual studio
WarPigs2 小时前
UI路径配置SO>字典json工作流
ui·unity
PC2005-cloud2 小时前
MySQL学习笔记:GTID 主从复制,从原理到实践,告别传统 Binlog+Position 的痛点
笔记·学习·mysql
stevenzqzq2 小时前
mvi理解2-ui状态和业务状态
ui
starsky762383 小时前
Agent学习——上下文工程(二)
学习
Dark_Fairy4 小时前
CMeKG_tools 知识图谱项目速成教程(13课共24H)
学习
悟乙己4 小时前
AFAC2026 赛题四金融长文本 Agent竞赛学习笔记:关联技术(二)
笔记·学习·金融
我送炭你添花5 小时前
ASA原理与电子维修实战:前言 一路修来,一路学习
运维·网络·学习
代码山河6 小时前
第一个Java程序:Hello World从零编写与运行
java·学习·架构·教程·面向对象·项目