Avalonia开发Markdown编辑器

avalonia,开发,markdown,编辑器 · 浏览次数 : 166

小编点评

**界面布局** ```xmal ``` **编辑框和Markdown展示** ```xmal <md:MarkdownScrollViewer Grid.Row="1" Grid.Column="1" Name="abc" Markdown="{Binding Text}" ``` **保存和打开** ```xmal <Button Classes="small" Margin="0,0,20,0" >打开 <Button Classes="small" Margin="0,0,20,0" >保存 ``` **成果阅读** ```xmal ``` **总结** 这个 Markdown 编辑器的 UI 使用 Grid 和 MarkdownScrollViewer 来实现功能,包括文件打开、保存和阅读。

正文

Avalonia开发Markdown编辑器

今天熟悉Avalonia UI,做一个Markdown的文本编辑器。

代码我上传了Github,地址:

https://github.com/raokun/AvaloniaMarkdown.git

1.创建Avalonia MVVM项目

我使用开发工具的是visual studio 2022 preview ,上一篇博客已经写过了SDK的安装和基础项目的创建,需要了解的可以跳转查看:

创建Avalonia 模板项目-基础

image-20230629213020322

2.添加用于Markdown渲染的nuget包

由于Avalonia UI 本身不带Markdown的展示,我们使用nuget包 Markdown.Avalonia

在csproj中添加包

<PackageReference Include="Markdown.Avalonia" Version="11.0.0-d1" />
<PackageReference Include="ColorTextBlock.Avalonia" Version="11.0.0-d1" />

image-20230629213506420

3.界面功能设计

我们修改MainWindow 实现功能

  • 左边输入框,使用TextBox
  • 右边添加Markdown.Avalonia控件
  • 打开文件按钮-打开文件,提取文件内容
  • 保存-如果是新文件,选择保存路径-如果是已打开的文件,保存现有文件。

1.编写界面布局

image-20230629223400095

<Grid>
	<Grid.ColumnDefinitions>
		<ColumnDefinition Width="10*"/>
		<ColumnDefinition Width="10*"/>
	</Grid.ColumnDefinitions>
	<Grid.RowDefinitions>
		<RowDefinition Height="1*"/>
		<RowDefinition Height="10*"/>
	</Grid.RowDefinitions>
</Grid>

2.编辑框和Markdown展示代码

<TextBox Grid.Row="1"
    Grid.Column="0"
    VerticalAlignment="Stretch"
    AcceptsReturn="True"
    Text="{Binding Text}"
    TextWrapping="Wrap"
    />
    <md:MarkdownScrollViewer Grid.Row="1"
        Grid.Column="1" Name="abc" Markdown="{Binding Text}"/>

3.保存和打开

<StackPanel Grid.Column="0" Orientation="Horizontal" HorizontalAlignment="Center">
    <Button Classes="small" Margin="0,0,20,0">打开</Button>
    <Button Classes="small" Margin="0,0,20,0">保存</Button>
</StackPanel>

4.成果

image-20230629223736054

阅读如遇样式问题,请前往个人博客浏览: https://www.raokun.top
拥抱ChatGPT:https://ai.terramours.site
开源项目地址:https://github.com/firstsaofan/TerraMours

与Avalonia开发Markdown编辑器相似的内容:

Avalonia开发Markdown编辑器

# Avalonia开发Markdown编辑器 今天熟悉Avalonia UI,做一个Markdown的文本编辑器。 代码我上传了Github,地址: [https://github.com/raokun/AvaloniaMarkdown.git](https://github.com/raokun

Avalonia开发(一)环境搭建

一、介绍 开源 GitHub:https://github.com/AvaloniaUI/Avalonia/ 多平台支持,包括Windows、mac OS、Linux、iOS、Android、Samsung Tizen(很快支持)、WebAssembly IDE支持,Visual Studio扩展支

Avalonia开发(二)项目结构解析

一、前言 在Avalonia开发(一)环境搭建 文章中介绍了Avalonia的介绍、开发环境的搭建、项目创建,以及项目FirstAvaloniaApp项目结构的介绍。本篇文章将介绍各平台的项目介绍。 二、Desktop项目结构 FirstAvaloniaApp.Desktop项目中默认生成的只有两个

在虚拟机VMware上安装OpenKylin开源操作系统

# 在虚拟机(VMware)上安装OpenKylin开源操作系统 今天我们一下学习下开放麒麟系统的安装。也是我的开源项目在OpenKylin上运行的实践。 希望通过该项目了解和学习Avalonia开发的朋友可以在我的github上拉取代码,同时希望大家多多点点star。 https://github

基于Avalonia 11.0.0+ReactiveUI 的跨平台项目开发1-通用框架

# 基于Avalonia 11.0.0+ReactiveUI 的跨平台项目开发1-通用框架 ### Avalonia简介: Avalonia是.NET的一个跨平台UI框架,提供了一个灵活的样式系统,支持广泛的操作系统,如Windows、Linux、macOS,并对Android、iOS和WebAss

基于Avalonia 11.0.0+ReactiveUI 的跨平台项目开发2-功能开发

# 基于Avalonia 11.0.0+ReactiveUI 的跨平台项目开发2-功能开发 ![image-20230718225201652](https://www.raokun.top/upload/2023/07/image-20230718225201652.png) **项目简介**:目

Avalonia 实现动态托盘

先下载一个gif图片,这里提供一个gif图片示例 在线GIF图片帧拆分工具 - UU在线工具 (uutool.cn) 使用这个网站将gif切成单张图片 创建一个Avalonia MVVM的项目,将图片copy进去 在项目文件中添加一下代码:

avalonia自定义弹窗

对于使用avalonia的时候某些功能需要到一些提示,比如异常或者成功都需要对用户进行提示,所以需要单独实现弹窗功能,并且可以自定义内部组件,这一期将手动实现一个简单的小弹窗,并且很容易自定义 创建项目 实现我们需要创建一个avaloniaMVVM的项目模板 并且取名PopoverExample 然

Avalonia 实现平滑拖动指定控件

Avalonia 实现平滑拖动指定控件 1.创建一个UserControl控件,并且添加以下代码 using System; using Avalonia; using Avalonia.Controls; using Avalonia.Input; using Avalonia.Markup.Xa

Avalonia使用默认弹窗

Avalonia使用默认弹窗 在Avalonia中使用官方默认弹窗WindowNotificationManager Views\MainWindow.axaml相关代码