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.02 小时前
书籍推荐-《对抗机器学习:攻击面、防御机制与人工智能中的学习理论》
人工智能·深度学习·学习·机器学习·ai·语言模型·大模型
✎ ﹏梦醒͜ღ҉繁华落℘2 小时前
WPF学习(四)
学习·wpf
✎ ﹏梦醒͜ღ҉繁华落℘3 小时前
WPF学习(动画)
学习·wpf
循环过三天3 小时前
3-1 PID算法改进(积分部分)
笔记·stm32·单片机·学习·算法·pid
生如夏花℡4 小时前
HarmonyOS学习记录3
学习·ubuntu·harmonyos
之歆4 小时前
Python-封装和解构-set及操作-字典及操作-解析式生成器-内建函数迭代器-学习笔记
笔记·python·学习
幽络源小助理4 小时前
SpringBoot基于JavaWeb的城乡居民基本医疗信息管理系统
java·spring boot·学习
虾球xz5 小时前
CppCon 2018 学习:EFFECTIVE REPLACEMENT OF DYNAMIC POLYMORPHISM WITH std::variant
开发语言·c++·学习
Chef_Chen5 小时前
从0开始学习R语言--Day38--辛普森多样性指数
学习
Allen_LVyingbo5 小时前
Python常用医疗AI库以及案例解析(2025年版、上)
开发语言·人工智能·python·学习·健康医疗