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博客

相关推荐
呱呱巨基13 分钟前
Linux 第一个系统程序 进度条
linux·c++·笔记·学习
好奇龙猫31 分钟前
【人工智能学习-AI入试相关题目练习-第十七次】
人工智能·学习
我材不敲代码43 分钟前
机器学习入门02——新手学习的第一个回归算法:线性回归
学习·机器学习·回归
●VON44 分钟前
React Native for OpenHarmony:构建高性能、高体验的 TextInput 输入表单
javascript·学习·react native·react.js·von
LateFrames44 分钟前
“蚯蚓涌动” 的屏保: DirectX 12 + ComputeSharp + Win32
windows·ui·gpu算力
●VON1 小时前
React Native for OpenHarmony:ActivityIndicator 动画实现详解
javascript·学习·react native·react.js·性能优化·openharmony
-Springer-1 小时前
STM32 学习 —— 个人学习笔记1(STM32简介)
笔记·stm32·学习
崇山峻岭之间1 小时前
Matlab学习记录40
开发语言·学习·matlab
LYS_06182 小时前
寒假学习(12)(HAL库3+模数电12)
学习
lxl13072 小时前
学习C++(7)初始化列表+隐式类型转换
学习