Browse Source

弹出框

master
root 2 months ago
parent
commit
852bcb1ac6
  1. 304
      .gitignore
  2. 4
      App.axaml
  3. 65
      Attached/TextEditorAssist.cs
  4. 124
      Attached/TextMateHelper.cs
  5. 4
      MyAvaloniaApp.csproj
  6. 14
      ViewModels/MainWindowViewModel.cs
  7. 352
      ViewModels/Pages/DialogHostPageViewModel.cs
  8. 144
      ViewModels/Pages/EditorPageViewModel.cs
  9. 163
      Views/Pages/DialogHostPageView.axaml
  10. 12
      Views/Pages/DialogHostPageView.axaml.cs
  11. 129
      Views/Pages/EditorPageView.axaml
  12. 20
      Views/Pages/EditorPageView.axaml.cs
  13. 489
      bin/Debug/net9.0/MyAvaloniaApp.deps.json
  14. BIN
      bin/Debug/net9.0/MyAvaloniaApp.dll
  15. BIN
      bin/Debug/net9.0/MyAvaloniaApp.exe
  16. BIN
      bin/Debug/net9.0/MyAvaloniaApp.pdb
  17. 19
      bin/Release/net9.0/linux-x64/MyAvaloniaApp.deps.json
  18. BIN
      bin/Release/net9.0/linux-x64/MyAvaloniaApp.dll
  19. BIN
      bin/Release/net9.0/linux-x64/MyAvaloniaApp.pdb
  20. 212
      modify.md
  21. 2
      obj/Debug/net9.0/Avalonia/Resources.Inputs.cache
  22. 6
      obj/Debug/net9.0/Avalonia/references
  23. BIN
      obj/Debug/net9.0/Avalonia/resources
  24. 2
      obj/Debug/net9.0/MyAvaloniaApp.AssemblyInfo.cs
  25. 2
      obj/Debug/net9.0/MyAvaloniaApp.AssemblyInfoInputs.cache
  26. 6
      obj/Debug/net9.0/MyAvaloniaApp.GeneratedMSBuildEditorConfig.editorconfig
  27. BIN
      obj/Debug/net9.0/MyAvaloniaApp.assets.cache
  28. BIN
      obj/Debug/net9.0/MyAvaloniaApp.csproj.AssemblyReference.cache
  29. 2
      obj/Debug/net9.0/MyAvaloniaApp.csproj.CoreCompileInputs.cache
  30. 34
      obj/Debug/net9.0/MyAvaloniaApp.csproj.FileListAbsolute.txt
  31. BIN
      obj/Debug/net9.0/MyAvaloniaApp.dll
  32. BIN
      obj/Debug/net9.0/MyAvaloniaApp.pdb
  33. BIN
      obj/Debug/net9.0/apphost.exe
  34. BIN
      obj/Debug/net9.0/ref/MyAvaloniaApp.dll
  35. BIN
      obj/Debug/net9.0/refint/MyAvaloniaApp.dll
  36. 12
      obj/MyAvaloniaApp.csproj.nuget.dgspec.json
  37. 1
      obj/MyAvaloniaApp.csproj.nuget.g.props
  38. 2
      obj/MyAvaloniaApp.csproj.nuget.g.targets
  39. 2
      obj/Release/net9.0/linux-x64/Avalonia/Resources.Inputs.cache
  40. 1
      obj/Release/net9.0/linux-x64/Avalonia/references
  41. BIN
      obj/Release/net9.0/linux-x64/Avalonia/resources
  42. 2
      obj/Release/net9.0/linux-x64/MyAvaloniaApp.AssemblyInfo.cs
  43. 2
      obj/Release/net9.0/linux-x64/MyAvaloniaApp.AssemblyInfoInputs.cache
  44. 12
      obj/Release/net9.0/linux-x64/MyAvaloniaApp.GeneratedMSBuildEditorConfig.editorconfig
  45. BIN
      obj/Release/net9.0/linux-x64/MyAvaloniaApp.assets.cache
  46. BIN
      obj/Release/net9.0/linux-x64/MyAvaloniaApp.csproj.AssemblyReference.cache
  47. 2
      obj/Release/net9.0/linux-x64/MyAvaloniaApp.csproj.CoreCompileInputs.cache
  48. 1
      obj/Release/net9.0/linux-x64/MyAvaloniaApp.csproj.FileListAbsolute.txt
  49. 19
      obj/Release/net9.0/linux-x64/MyAvaloniaApp.deps.json
  50. BIN
      obj/Release/net9.0/linux-x64/MyAvaloniaApp.dll
  51. BIN
      obj/Release/net9.0/linux-x64/MyAvaloniaApp.pdb
  52. 1
      obj/Release/net9.0/linux-x64/PublishOutputs.6ca985d4d5.txt
  53. BIN
      obj/Release/net9.0/linux-x64/ref/MyAvaloniaApp.dll
  54. BIN
      obj/Release/net9.0/linux-x64/refint/MyAvaloniaApp.dll
  55. 2103
      obj/project.assets.json
  56. 32
      obj/project.nuget.cache
  57. 19
      publish/linux-x64/MyAvaloniaApp.deps.json
  58. BIN
      publish/linux-x64/MyAvaloniaApp.dll
  59. BIN
      publish/linux-x64/MyAvaloniaApp.pdb

304
.gitignore

@ -0,0 +1,304 @@
# Root-level build output
bin/
obj/
publish/
## Ignore Visual Studio temporary files, build results, and files generated by popular Visual Studio add-ons.
# User-specific files
*.rsuser
*.suo
*.user
*.userosscache
*.sln.docstates
# MonoDevelop/Xamarin Studio user-specific files
*.userprefs
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
[Ww][Ii][Nn]32/
[Aa][Rr][Mm]/
[Aa][Rr][Mm]64/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/
[Ll]ogs/
# Visual Studio 2015/2017 cache/options directory
.vs/
# Visual Studio Code workspace history
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
*.code-workspace
# Rider
.idea/
*.sln.iml
# Migrations, auto-generated files
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# DotCover
*.dotCover
# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap
# TFS 2012 Local Workspace
$tf/
# Guidance Automation Toolkit
*.gpState
# ReSharper
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# JustCode
.JustCode
# TeamCity
_TeamCity*
# DotTrace
*.dotTrace
# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*
# MightyMoose
*.mm.*
AutoTest.Net/
# Web workbench (sass)
.sass-cache/
# Installshield output folder
[Ee]xpress/
# DocProject
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
*.pubxml
*.publishproj
# Azure Web App publish settings. Comment the next line if you want to
# checkin your Azure Web App publish settings, but sensitive information
# contained in these files will be unencrypted
PublishProfiles/
# NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/[Pp]ackages/*
# except build/, which is used as an MSBuild target.
!**/[Pp]ackages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/[Pp]ackages/repositories.config
# NuGet v3's project.json files produces more ignorable files
*.nuget.props
*.nuget.targets
# Microsoft Azure Build Output
csx/
*.build.csdef
# Microsoft Azure Emulator
ecf/
rcf/
# Windows Store app package directories and files
AppPackages/
BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt
*.appx
*.appxbundle
*.appxupload
# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!*.[Cc]ache/
# Others
ClientBin/
~$*
*~
*.dbmdl
*.bak
*.orig
*.tmp
*.log
*.svclog
*.scc
# Avalonia build outputs
publish-linux/
publish-linux.bat
publish-linux.ps1
# Visual Studio generated files
*.pdb
*.opendb
*.VC.db
*.VC.VC.opendb
# Entity Framework
Migrations/
# Razor cache
*.rz~
# Backup & report files from converting an old project file
*.Backup
*.old
*.Report.xml
# SQL Server files
*.mdf
*.ldf
*.ndf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
*.rptproj.rsuser
*- [Bb]ackup.rdl
*.rptproj.user
# Microsoft Fakes
FakesAssemblies/
# GhostDoc plugin setting file
*.GhostDoc.xml
# Node.js Tools for Visual Studio
.ntvs_analysis.dat
node_modules/
# Visual Studio 6 build log
*.plg
# Visual Studio 6 workspace options file
*.opt
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
*.vbw
# Visual Studio LightSwitch build output
GeneratedArtifacts/
_Pvt_Extensions/
ModelManifest.xml
# Paket dependency manager
.paket/paket.exe
paket-files/
# FAKE - F# Make
.fake/
# CodeRush personal settings
.cr/personal
# Python Tools for Visual Studio (PTVS)
__pycache__/
*.pyc
# Cake
tools/**
!tools/packages.config
# Tabs Studio
*.tss
# Telerik's JustMock configuration file
*.jmconfig
# BizTalk build output
*.btp.cs
*.btm.cs
*.odx.cs
*.xsd.cs
# OpenCover UI analysis results
OpenCover/
# Azure Stream Analytics local run output
ASALocalRun/
# MSBuild Binary and Structured Log
*.binlog
# NVidia Nsight GPU debugger configuration file
*.nvuser
# MFractors (Xamarin productivity tool) working folder
.mfractor/
# Local History for Visual Studio
.localhistory/
# BeatPulse healthcheck temp database
healthchecksdb
# Backup folder for Package Reference Convert tool in Visual Studio 2017
MigrationBackup/
# Ionide (cross platform F# VS Code tools) working folder
.ionide/
# Fody - auto-generated XML schema
FodyWeavers.xsd
# Avalonia persisting inspector and XAML designer cache
.Avalonia
# Rider package caches
.idea/.idea.contentModel.xml
# Temporary files
*.tmp
*.temp
# Compiled binary caches
*.dll
*.exe
*.so
*.dylib
*.a
*.lib

4
App.axaml

@ -16,6 +16,10 @@
<Application.Styles>
<FluentTheme />
<StyleInclude Source="avares://DialogHost.Avalonia/Styles.xaml" />
<!-- AvaloniaEdit 样式 -->
<StyleInclude Source="avares://AvaloniaEdit/Themes/Fluent/AvaloniaEdit.xaml" />
<!-- Linux字体回退配置 -->
<Style Selector="TextBlock">

65
Attached/TextEditorAssist.cs

@ -0,0 +1,65 @@
using Avalonia;
using Avalonia.Data;
using AvaloniaEdit;
using AvaloniaEdit.Document;
namespace MyAvaloniaApp.Attached;
/// <summary>
/// 为 <see cref="TextEditor"/> 提供可绑定的 <see cref="TextDocument"/> 附加属性,
/// 便于在 MVVM 模式下直接绑定到 ViewModel。
/// </summary>
public static class TextEditorAssist
{
public static readonly AttachedProperty<TextDocument?> DocumentProperty =
AvaloniaProperty.RegisterAttached<TextEditor, TextDocument?>(
"Document",
typeof(TextEditorAssist),
defaultBindingMode: BindingMode.TwoWay);
private static readonly AttachedProperty<bool> IsInternalUpdateProperty =
AvaloniaProperty.RegisterAttached<TextEditor, bool>(
"IsInternalUpdate",
typeof(TextEditorAssist));
static TextEditorAssist()
{
DocumentProperty.Changed.AddClassHandler<TextEditor>(OnDocumentPropertyChanged);
TextEditor.DocumentProperty.Changed.AddClassHandler<TextEditor>(OnEditorDocumentChanged);
}
public static void SetDocument(TextEditor editor, TextDocument? value) =>
editor.SetValue(DocumentProperty, value);
public static TextDocument? GetDocument(TextEditor editor) =>
editor.GetValue(DocumentProperty);
private static void OnDocumentPropertyChanged(TextEditor editor, AvaloniaPropertyChangedEventArgs change)
{
if (editor.GetValue(IsInternalUpdateProperty))
return;
var document = change.NewValue as TextDocument;
if (!ReferenceEquals(editor.Document, document))
{
editor.SetValue(IsInternalUpdateProperty, true);
editor.Document = document;
editor.SetValue(IsInternalUpdateProperty, false);
}
}
private static void OnEditorDocumentChanged(TextEditor editor, AvaloniaPropertyChangedEventArgs change)
{
if (editor.GetValue(IsInternalUpdateProperty))
return;
var document = change.NewValue as TextDocument;
if (!ReferenceEquals(editor.GetValue(DocumentProperty), document))
{
editor.SetValue(IsInternalUpdateProperty, true);
editor.SetValue(DocumentProperty, document);
editor.SetValue(IsInternalUpdateProperty, false);
}
}
}

124
Attached/TextMateHelper.cs

@ -0,0 +1,124 @@
using System;
using System.Collections.Generic;
using Avalonia;
using AvaloniaEdit;
using AvaloniaEdit.TextMate;
using TextMateSharp.Grammars;
namespace MyAvaloniaApp.Attached;
/// <summary>
/// 为 <see cref="TextEditor"/> 提供基于 TextMate 的语法高亮附加属性,
/// 通过 MVVM 绑定即可切换语法与主题。
/// </summary>
public static class TextMateHelper
{
public static readonly AttachedProperty<string?> LanguageProperty =
AvaloniaProperty.RegisterAttached<TextEditor, string?>(
"Language",
typeof(TextMateHelper));
private static readonly AttachedProperty<RegistryOptions?> RegistryOptionsProperty =
AvaloniaProperty.RegisterAttached<TextEditor, RegistryOptions?>(
"RegistryOptions",
typeof(TextMateHelper));
private static readonly AttachedProperty<TextMate.Installation?> InstallationProperty =
AvaloniaProperty.RegisterAttached<TextEditor, TextMate.Installation?>(
"Installation",
typeof(TextMateHelper));
private static readonly IReadOnlyDictionary<string, string> LanguageScopes =
new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase)
{
["C#"] = "source.cs",
["JavaScript"] = "source.js",
["TypeScript"] = "source.ts",
["HTML"] = "text.html.basic",
["CSS"] = "source.css",
["JSON"] = "source.json",
["XML"] = "text.xml",
["Python"] = "source.python",
["Java"] = "source.java",
["SQL"] = "source.sql"
};
static TextMateHelper() => LanguageProperty.Changed.AddClassHandler<TextEditor>(OnLanguageChanged);
public static void SetLanguage(TextEditor editor, string? value) =>
editor.SetValue(LanguageProperty, value);
public static string? GetLanguage(TextEditor editor) =>
editor.GetValue(LanguageProperty);
private static void OnLanguageChanged(TextEditor editor, AvaloniaPropertyChangedEventArgs change)
{
var language = change.NewValue as string;
var registryOptions = EnsureRegistryOptions(editor);
var installation = EnsureInstallation(editor, registryOptions);
if (installation == null)
{
return;
}
var scope = ResolveScope(language);
if (!string.IsNullOrWhiteSpace(scope))
{
try
{
installation.SetGrammar(scope);
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine($"TextMateHelper: 设置语法失败 - {ex.Message}");
}
}
}
private static RegistryOptions EnsureRegistryOptions(TextEditor editor)
{
var registryOptions = editor.GetValue(RegistryOptionsProperty);
if (registryOptions == null)
{
registryOptions = new RegistryOptions(ThemeName.DarkPlus);
editor.SetValue(RegistryOptionsProperty, registryOptions);
}
return registryOptions;
}
private static TextMate.Installation? EnsureInstallation(TextEditor editor, RegistryOptions registryOptions)
{
var installation = editor.GetValue(InstallationProperty);
if (installation == null)
{
try
{
installation = editor.InstallTextMate(registryOptions);
editor.SetValue(InstallationProperty, installation);
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine($"TextMateHelper: 安装失败 - {ex.Message}");
}
}
return installation;
}
private static string ResolveScope(string? language)
{
if (string.IsNullOrWhiteSpace(language))
{
return "source.cs";
}
return LanguageScopes.TryGetValue(language, out var value)
? value
: "source.cs";
}
}

4
MyAvaloniaApp.csproj

@ -23,12 +23,16 @@
<PackageReference Include="Avalonia.ReactiveUI" Version="11.3.7" />
<PackageReference Include="Avalonia.Themes.Fluent" Version="11.3.6" />
<PackageReference Include="Avalonia.Fonts.Inter" Version="11.3.6" />
<PackageReference Include="DialogHost.Avalonia" Version="0.9.3" />
<!--Condition below is needed to remove Avalonia.Diagnostics package from build output in Release configuration.-->
<PackageReference Include="Avalonia.Diagnostics" Version="11.3.6">
<IncludeAssets Condition="'$(Configuration)' != 'Debug'">None</IncludeAssets>
<PrivateAssets Condition="'$(Configuration)' != 'Debug'">All</PrivateAssets>
</PackageReference>
<PackageReference Include="HeroIcons.Avalonia" Version="1.0.4" />
<!-- AvaloniaEdit 代码编辑器 -->
<PackageReference Include="AvaloniaEdit" Version="0.10.12" />
<PackageReference Include="AvaloniaEdit.TextMate" Version="11.3.0" />
<!-- HostBuilder 相关包 -->
<PackageReference Include="Microsoft.Extensions.Hosting" Version="9.0.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="9.0.0" />

14
ViewModels/MainWindowViewModel.cs

@ -194,11 +194,25 @@ public class MainWindowViewModel : ReactiveObject
Content = new Views.Pages.HelpPageView { DataContext = new Pages.HelpPageViewModel() }
},
new NavigationItem
{
Id = "dialog-host",
Title = "对话框示例",
IconType = HeroIconsAvalonia.Enums.IconType.ChatBubbleLeftRight,
Content = new Views.Pages.DialogHostPageView { DataContext = new Pages.DialogHostPageViewModel() }
},
new NavigationItem
{
Id = "icons",
Title = _resourceService?.GetString("NavIcons") ?? "图标库",
IconType = HeroIconsAvalonia.Enums.IconType.Sparkles,
Content = new Views.Pages.IconsPageView { DataContext = new Pages.IconsPageViewModel() }
},
new NavigationItem
{
Id = "editor",
Title = "代码编辑器",
IconType = HeroIconsAvalonia.Enums.IconType.CodeBracket,
Content = new Views.Pages.EditorPageView { DataContext = new Pages.EditorPageViewModel() }
}
};

352
ViewModels/Pages/DialogHostPageViewModel.cs

@ -0,0 +1,352 @@
using Avalonia.Media;
using Avalonia.Threading;
using HeroIconsAvalonia.Enums;
using ReactiveUI;
using System;
using System.Globalization;
using System.Reactive;
using System.Threading;
using System.Threading.Tasks;
namespace MyAvaloniaApp.ViewModels.Pages;
/// <summary>
/// DialogHost 示例页面的 ViewModel
/// </summary>
public class DialogHostPageViewModel : ReactiveObject
{
private bool _isDialogOpen;
private string _dialogTitle = "提示";
private string _dialogMessage = "请选择需要执行的操作";
private string _lastActionMessage = string.Empty;
private bool _rememberChoice;
private bool _isRememberChoiceVisible = true;
private IconType _dialogIcon = IconType.InformationCircle;
private IBrush _dialogAccentBrush = new SolidColorBrush(Color.FromRgb(59, 130, 246));
private string _primaryButtonText = "确认";
private string _secondaryButtonText = "取消";
private bool _isPrimaryButtonVisible = true;
private bool _useAutoClose;
private TimeSpan _autoCloseDelay = TimeSpan.FromSeconds(2);
private CancellationTokenSource? _autoCloseCts;
public DialogHostPageViewModel()
{
ShowDialogCommand = ReactiveCommand.Create<string?>(ShowDialog);
ConfirmDialogCommand = ReactiveCommand.Create(ConfirmDialog);
CancelDialogCommand = ReactiveCommand.Create(CancelDialog);
}
/// <summary>
/// 是否展示对话框
/// </summary>
public bool IsDialogOpen
{
get => _isDialogOpen;
set => this.RaiseAndSetIfChanged(ref _isDialogOpen, value);
}
/// <summary>
/// 对话框标题
/// </summary>
public string DialogTitle
{
get => _dialogTitle;
set => this.RaiseAndSetIfChanged(ref _dialogTitle, value);
}
/// <summary>
/// 对话框消息
/// </summary>
public string DialogMessage
{
get => _dialogMessage;
set => this.RaiseAndSetIfChanged(ref _dialogMessage, value);
}
/// <summary>
/// 记住选择
/// </summary>
public bool RememberChoice
{
get => _rememberChoice;
set => this.RaiseAndSetIfChanged(ref _rememberChoice, value);
}
/// <summary>
/// 最近一次操作反馈
/// </summary>
public string LastActionMessage
{
get => _lastActionMessage;
set => this.RaiseAndSetIfChanged(ref _lastActionMessage, value);
}
/// <summary>
/// 对话框图标
/// </summary>
public IconType DialogIcon
{
get => _dialogIcon;
set => this.RaiseAndSetIfChanged(ref _dialogIcon, value);
}
/// <summary>
/// 对话框强调色
/// </summary>
public IBrush DialogAccentBrush
{
get => _dialogAccentBrush;
set => this.RaiseAndSetIfChanged(ref _dialogAccentBrush, value);
}
/// <summary>
/// 主操作按钮文本
/// </summary>
public string PrimaryButtonText
{
get => _primaryButtonText;
set => this.RaiseAndSetIfChanged(ref _primaryButtonText, value);
}
/// <summary>
/// 次操作按钮文本
/// </summary>
public string SecondaryButtonText
{
get => _secondaryButtonText;
set
{
this.RaiseAndSetIfChanged(ref _secondaryButtonText, value);
this.RaisePropertyChanged(nameof(HasSecondaryButton));
}
}
/// <summary>
/// 是否展示次操作按钮
/// </summary>
public bool HasSecondaryButton => !string.IsNullOrWhiteSpace(_secondaryButtonText);
/// <summary>
/// 主操作按钮是否可见
/// </summary>
public bool IsPrimaryButtonVisible
{
get => _isPrimaryButtonVisible;
set => this.RaiseAndSetIfChanged(ref _isPrimaryButtonVisible, value);
}
/// <summary>
/// 是否展示“记住选择”选项
/// </summary>
public bool IsRememberChoiceVisible
{
get => _isRememberChoiceVisible;
set => this.RaiseAndSetIfChanged(ref _isRememberChoiceVisible, value);
}
/// <summary>
/// 是否启用自动关闭
/// </summary>
public bool UseAutoClose
{
get => _useAutoClose;
private set => this.RaiseAndSetIfChanged(ref _useAutoClose, value);
}
/// <summary>
/// 自动关闭延时时间
/// </summary>
public TimeSpan AutoCloseDelay
{
get => _autoCloseDelay;
private set => this.RaiseAndSetIfChanged(ref _autoCloseDelay, value);
}
/// <summary>
/// 展示对话框命令
/// </summary>
public ReactiveCommand<string?, Unit> ShowDialogCommand { get; }
/// <summary>
/// 确认操作命令
/// </summary>
public ReactiveCommand<Unit, Unit> ConfirmDialogCommand { get; }
/// <summary>
/// 取消操作命令
/// </summary>
public ReactiveCommand<Unit, Unit> CancelDialogCommand { get; }
private void ShowDialog(string? parameter)
{
CancelAutoCloseTimer();
var (variant, delayOverride) = ParseParameter(parameter);
ConfigureVariant(variant, delayOverride);
RememberChoice = false;
IsDialogOpen = true;
LastActionMessage = string.Empty;
if (UseAutoClose)
{
StartAutoCloseTimer();
}
}
private void ConfirmDialog()
{
CancelAutoCloseTimer();
IsDialogOpen = false;
var rememberSuffix = IsRememberChoiceVisible && RememberChoice ? "(记住选择)" : string.Empty;
LastActionMessage = $"已确认:{DialogTitle}{rememberSuffix}";
}
private void CancelDialog()
{
CancelAutoCloseTimer();
if (!HasSecondaryButton)
{
return;
}
IsDialogOpen = false;
var rememberSuffix = IsRememberChoiceVisible && RememberChoice ? "(记住选择)" : string.Empty;
LastActionMessage = $"已取消:{DialogTitle}{rememberSuffix}";
}
private void ConfigureVariant(string? variant, TimeSpan? delayOverride)
{
var key = string.IsNullOrWhiteSpace(variant) ? "info" : variant.Trim().ToLowerInvariant();
UseAutoClose = false;
AutoCloseDelay = delayOverride ?? TimeSpan.FromSeconds(2);
IsPrimaryButtonVisible = true;
SecondaryButtonText = "取消";
PrimaryButtonText = "确认";
IsRememberChoiceVisible = true;
switch (key)
{
case "success":
DialogTitle = "操作成功";
DialogMessage = "所有任务都已顺利完成。您可以继续后续流程。";
DialogIcon = IconType.CheckCircle;
DialogAccentBrush = new SolidColorBrush(Color.FromRgb(34, 197, 94));
PrimaryButtonText = string.Empty;
SecondaryButtonText = string.Empty;
IsRememberChoiceVisible = false;
IsPrimaryButtonVisible = false;
UseAutoClose = true;
break;
case "error":
case "failure":
DialogTitle = "操作失败";
DialogMessage = "执行过程中出现错误,请检查配置或稍后重试。";
DialogIcon = IconType.XCircle;
DialogAccentBrush = new SolidColorBrush(Color.FromRgb(239, 68, 68));
PrimaryButtonText = string.Empty;
SecondaryButtonText = string.Empty;
IsRememberChoiceVisible = false;
IsPrimaryButtonVisible = false;
UseAutoClose = true;
break;
case "warning":
DialogTitle = "风险提示";
DialogMessage = "当前设置可能带来潜在风险,请在继续之前确认信息。";
DialogIcon = IconType.ExclamationTriangle;
DialogAccentBrush = new SolidColorBrush(Color.FromRgb(234, 179, 8));
PrimaryButtonText = string.Empty;
SecondaryButtonText = string.Empty;
IsRememberChoiceVisible = false;
IsPrimaryButtonVisible = false;
UseAutoClose = true;
break;
case "confirm":
DialogTitle = "确认操作";
DialogMessage = "此操作会影响当前设置,请确认是否继续。";
DialogIcon = IconType.QuestionMarkCircle;
DialogAccentBrush = new SolidColorBrush(Color.FromRgb(59, 130, 246));
PrimaryButtonText = "确认";
SecondaryButtonText = "取消";
IsRememberChoiceVisible = false;
break;
case "info":
case "general":
default:
DialogTitle = "通用提示";
DialogMessage = "执行此操作将应用更改,是否继续?您也可以勾选记住选择。";
DialogIcon = IconType.InformationCircle;
DialogAccentBrush = new SolidColorBrush(Color.FromRgb(59, 130, 246));
PrimaryButtonText = "确认";
SecondaryButtonText = "取消";
IsRememberChoiceVisible = true;
break;
}
}
private (string variant, TimeSpan? delayOverride) ParseParameter(string? parameter)
{
if (string.IsNullOrWhiteSpace(parameter))
{
return ("info", null);
}
var parts = parameter.Split(new[] { ':', '|', ';', ',' }, StringSplitOptions.RemoveEmptyEntries);
var variant = parts.Length > 0 ? parts[0].Trim() : "info";
if (parts.Length > 1 && double.TryParse(parts[1], NumberStyles.Float, CultureInfo.InvariantCulture, out var seconds) && seconds > 0)
{
return (variant, TimeSpan.FromSeconds(seconds));
}
return (variant, null);
}
private void StartAutoCloseTimer()
{
CancelAutoCloseTimer();
var delay = AutoCloseDelay;
var titleSnapshot = DialogTitle;
_autoCloseCts = new CancellationTokenSource();
var token = _autoCloseCts.Token;
Task.Run(async () =>
{
try
{
await Task.Delay(delay, token);
if (!token.IsCancellationRequested)
{
await Dispatcher.UIThread.InvokeAsync(() =>
{
IsDialogOpen = false;
LastActionMessage = $"已自动关闭:{titleSnapshot}";
});
}
}
catch (TaskCanceledException)
{
// 忽略取消
}
}, token);
}
private void CancelAutoCloseTimer()
{
if (_autoCloseCts != null)
{
_autoCloseCts.Cancel();
_autoCloseCts.Dispose();
_autoCloseCts = null;
}
}
}

144
ViewModels/Pages/EditorPageViewModel.cs

@ -0,0 +1,144 @@
using Microsoft.Extensions.Logging;
using ReactiveUI;
using System;
using System.Collections.ObjectModel;
using System.Reactive;
using AvaloniaEdit.Document;
namespace MyAvaloniaApp.ViewModels.Pages;
/// <summary>
/// 代码编辑器页面的 ViewModel
/// </summary>
public class EditorPageViewModel : ReactiveObject
{
private string _selectedLanguage = "C#";
private TextDocument _document;
private readonly ILogger<EditorPageViewModel>? _logger;
public ObservableCollection<string> AvailableLanguages { get; }
public string SelectedLanguage
{
get => _selectedLanguage;
set => this.RaiseAndSetIfChanged(ref _selectedLanguage, value);
}
public TextDocument Document
{
get => _document;
set => this.RaiseAndSetIfChanged(ref _document, value);
}
// 响应式命令
public ReactiveCommand<Unit, Unit> ClearCodeCommand { get; }
public ReactiveCommand<Unit, Unit> FormatCodeCommand { get; }
public EditorPageViewModel(ILogger<EditorPageViewModel>? logger = null)
{
_logger = logger;
// 先初始化 Document,确保绑定时有值
_document = new TextDocument();
AvailableLanguages = new ObservableCollection<string>
{
"C#",
"JavaScript",
"TypeScript",
"HTML",
"CSS",
"JSON",
"XML",
"Python",
"Java",
"SQL"
};
_logger?.LogInformation("EditorPageViewModel 已创建");
// 初始化示例代码
InitializeDefaultCode();
// 创建命令
ClearCodeCommand = ReactiveCommand.Create(ClearCode);
FormatCodeCommand = ReactiveCommand.Create(FormatCode);
// 监听语言选择变化
this.WhenAnyValue(x => x.SelectedLanguage)
.Subscribe(lang =>
{
_logger?.LogInformation("切换语言: {Language}", lang);
UpdateCodeForLanguage(lang);
});
}
private void InitializeDefaultCode()
{
var defaultCode = "// 欢迎使用 AvaloniaEdit.TextMate 代码编辑器\n" +
"// 选择不同的编程语言查看语法高亮效果\n" +
"\n" +
"using System;\n" +
"\n" +
"namespace MyAvaloniaApp\n" +
"{\n" +
" public class Program\n" +
" {\n" +
" public static void Main(string[] args)\n" +
" {\n" +
" Console.WriteLine(\"Hello, AvaloniaEdit!\");\n" +
" }\n" +
" }\n" +
"}";
Document.Text = defaultCode;
}
private void UpdateCodeForLanguage(string language)
{
Document.Text = GetDefaultCode(language);
_logger?.LogInformation("代码已更新为: {Language}", language);
}
private string GetDefaultCode(string language)
{
return language switch
{
"C#" => "using System;\n\nnamespace Example\n{\n public class Demo\n {\n static void Main()\n {\n Console.WriteLine(\"Hello World!\");\n }\n }\n}",
"JavaScript" => "// JavaScript 示例\nfunction greet(name) {\n return `Hello, ${name}!`;\n}\n\nconst person = 'World';\nconsole.log(greet(person));",
"TypeScript" => "// TypeScript 示例\ninterface Person {\n name: string;\n age: number;\n}\n\nconst user: Person = {\n name: 'Alice',\n age: 30\n};\n\nconsole.log(user);",
"HTML" => "<!DOCTYPE html>\n<html>\n<head>\n <title>示例</title>\n</head>\n<body>\n <h1>Hello World</h1>\n</body>\n</html>",
"CSS" => "/* CSS 示例 */\nbody {\n font-family: Arial, sans-serif;\n margin: 0;\n padding: 20px;\n}\n\n.container {\n max-width: 1200px;\n margin: 0 auto;\n}",
"JSON" => "{\n \"name\": \"MyApp\",\n \"version\": \"1.0.0\",\n \"dependencies\": {}\n}",
"XML" => "<?xml version=\"1.0\"?>\n<root>\n <item>示例数据</item>\n</root>",
"Python" => "# Python 示例\ndef greet(name):\n return f'Hello, {name}!'\n\nprint(greet('World'))",
"Java" => "public class Example {\n public static void main(String[] args) {\n System.out.println(\"Hello World\");\n }\n}",
"SQL" => "-- SQL 示例\nSELECT * FROM Users;\n\nINSERT INTO Users (name, email) VALUES ('John', 'john@example.com');",
_ => "// 未支持的编程语言"
};
}
private void ClearCode()
{
Document.Text = string.Empty;
_logger?.LogInformation("代码已清空");
}
private void FormatCode()
{
_logger?.LogInformation("格式化代码: {Language}", SelectedLanguage);
// 这里可以添加代码格式化逻辑
}
}

163
Views/Pages/DialogHostPageView.axaml

@ -0,0 +1,163 @@
<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:vm="using:MyAvaloniaApp.ViewModels.Pages"
xmlns:dialogHost="clr-namespace:DialogHostAvalonia;assembly=DialogHost.Avalonia"
xmlns:heroicons="clr-namespace:HeroIconsAvalonia.Controls;assembly=HeroIconsAvalonia"
mc:Ignorable="d"
x:Class="MyAvaloniaApp.Views.Pages.DialogHostPageView"
x:DataType="vm:DialogHostPageViewModel">
<Design.DataContext>
<vm:DialogHostPageViewModel />
</Design.DataContext>
<dialogHost:DialogHost IsOpen="{Binding IsDialogOpen}">
<dialogHost:DialogHost.DialogContent>
<Border Background="{StaticResource BackgroundWhite}"
CornerRadius="16"
Padding="24"
Width="380">
<StackPanel Spacing="18">
<Grid ColumnDefinitions="Auto,*" ColumnSpacing="12">
<Border Grid.Column="0"
Width="40"
Height="40"
CornerRadius="20"
Background="{Binding DialogAccentBrush}"
VerticalAlignment="Center">
<heroicons:HeroIcon Type="{Binding DialogIcon}"
Width="22"
Height="22"
Foreground="White"
HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</Border>
<StackPanel Grid.Column="1" Spacing="6">
<TextBlock Text="{Binding DialogTitle}"
FontSize="18"
FontWeight="SemiBold"
Foreground="{StaticResource TextPrimary}"/>
<TextBlock Text="{Binding DialogMessage}"
TextWrapping="Wrap"
FontSize="14"
Foreground="{StaticResource SecondaryGrayDark}"
MaxWidth="260"/>
</StackPanel>
</Grid>
<CheckBox Content="记住我的选择"
IsChecked="{Binding RememberChoice}"
Margin="0,4,0,0"
IsVisible="{Binding IsRememberChoiceVisible}"/>
<StackPanel Orientation="Horizontal"
HorizontalAlignment="Right"
Spacing="10">
<Button Content="{Binding SecondaryButtonText}"
MinWidth="96"
Command="{Binding CancelDialogCommand}"
IsVisible="{Binding HasSecondaryButton}"/>
<Button Content="{Binding PrimaryButtonText}"
MinWidth="96"
Command="{Binding ConfirmDialogCommand}"
Background="{Binding DialogAccentBrush}"
Foreground="White"
BorderThickness="0"
CornerRadius="8"
IsVisible="{Binding IsPrimaryButtonVisible}"/>
</StackPanel>
</StackPanel>
</Border>
</dialogHost:DialogHost.DialogContent>
<Grid RowDefinitions="Auto,Auto,*" ColumnDefinitions="*" Margin="20" Background="Transparent">
<StackPanel Spacing="8">
<TextBlock Text="DialogHost 示例"
FontSize="20"
FontWeight="SemiBold"
Foreground="{StaticResource TextPrimary}"/>
<TextBlock Text="点击下方按钮体验 DialogHost.Avalonia 提供的模态对话框。"
FontSize="14"
Foreground="{StaticResource SecondaryGrayDark}"/>
</StackPanel>
<WrapPanel Grid.Row="1"
Margin="0,18,0,0"
Orientation="Horizontal">
<Button Content="通用提示"
Padding="18,10"
Margin="0,0,12,12"
Command="{Binding ShowDialogCommand}"
CommandParameter="info"
Background="#1E3B82F6"
BorderBrush="Transparent"
Foreground="{StaticResource TextPrimary}"
CornerRadius="10"/>
<Button Content="确认弹窗"
Padding="18,10"
Margin="0,0,12,12"
Command="{Binding ShowDialogCommand}"
CommandParameter="confirm"
Background="#1E2563FF"
BorderBrush="Transparent"
Foreground="White"
CornerRadius="10"/>
<Button Content="成功提示"
Padding="18,10"
Margin="0,0,12,12"
Command="{Binding ShowDialogCommand}"
CommandParameter="success"
Background="#FF22C55E"
BorderBrush="Transparent"
Foreground="White"
CornerRadius="10"/>
<Button Content="失败提示"
Padding="18,10"
Margin="0,0,12,12"
Command="{Binding ShowDialogCommand}"
CommandParameter="error"
Background="#FFEF4444"
BorderBrush="Transparent"
Foreground="White"
CornerRadius="10"/>
<Button Content="警告提示"
Padding="18,10"
Margin="0,0,12,12"
Command="{Binding ShowDialogCommand}"
CommandParameter="warning"
Background="#FFF59E0B"
BorderBrush="Transparent"
Foreground="{StaticResource TextPrimary}"
CornerRadius="10"/>
<Button Content="成功提示(5s)"
Padding="18,10"
Margin="0,0,12,12"
Command="{Binding ShowDialogCommand}"
CommandParameter="success:5"
Background="#1422C55E"
BorderBrush="Transparent"
Foreground="White"
CornerRadius="10"/>
</WrapPanel>
<Border Grid.Row="2"
Margin="0,24,0,0"
Padding="16"
Background="{StaticResource BackgroundLight}"
BorderBrush="{StaticResource BorderLight}"
BorderThickness="1"
CornerRadius="8">
<StackPanel Spacing="6">
<TextBlock Text="最近操作"
FontSize="16"
FontWeight="SemiBold"
Foreground="{StaticResource TextPrimary}"/>
<TextBlock Text="{Binding LastActionMessage, FallbackValue=尚未进行任何操作}"/>
</StackPanel>
</Border>
</Grid>
</dialogHost:DialogHost>
</UserControl>

12
Views/Pages/DialogHostPageView.axaml.cs

@ -0,0 +1,12 @@
using Avalonia.Controls;
namespace MyAvaloniaApp.Views.Pages;
public partial class DialogHostPageView : UserControl
{
public DialogHostPageView()
{
InitializeComponent();
}
}

129
Views/Pages/EditorPageView.axaml

@ -0,0 +1,129 @@
<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:vm="using:MyAvaloniaApp.ViewModels.Pages"
xmlns:converters="using:MyAvaloniaApp.Converters"
xmlns:avaloniaEdit="clr-namespace:AvaloniaEdit;assembly=AvaloniaEdit"
xmlns:attached="using:MyAvaloniaApp.Attached"
xmlns:heroicons="clr-namespace:HeroIconsAvalonia.Controls;assembly=HeroIconsAvalonia"
mc:Ignorable="d" d:DesignWidth="1200" d:DesignHeight="800"
x:Class="MyAvaloniaApp.Views.Pages.EditorPageView"
x:DataType="vm:EditorPageViewModel">
<Design.DataContext>
<vm:EditorPageViewModel />
</Design.DataContext>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<!-- 页面标题和工具栏 -->
<Border Grid.Row="0"
Background="{StaticResource BackgroundLight}"
BorderBrush="{StaticResource BorderLight}"
BorderThickness="0,0,0,1"
Padding="20">
<StackPanel Spacing="15">
<!-- 标题 -->
<TextBlock Text="代码编辑器 - AvaloniaEdit.TextMate"
FontSize="24"
FontWeight="Bold"
Foreground="{StaticResource TextPrimary}"/>
<TextBlock Text="基于 AvaloniaEdit 的强大代码编辑器,支持语法高亮、智能提示等功能"
FontSize="14"
Foreground="{StaticResource SecondaryGrayDark}"
Margin="0,5,0,0"/>
<!-- 工具栏 -->
<StackPanel Orientation="Horizontal" Spacing="15" Margin="0,10,0,0">
<!-- 语言选择 -->
<StackPanel Orientation="Horizontal" Spacing="8">
<TextBlock Text="编程语言:"
FontSize="14"
FontWeight="SemiBold"
Foreground="{StaticResource TextPrimary}"
VerticalAlignment="Center"/>
<ComboBox ItemsSource="{Binding AvailableLanguages}"
SelectedItem="{Binding SelectedLanguage}"
Width="150"
VerticalAlignment="Center">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</StackPanel>
<!-- 操作按钮 -->
<Button Content="清空代码"
Command="{Binding ClearCodeCommand}"
HorizontalAlignment="Left"
VerticalAlignment="Center">
<Button.Template>
<ControlTemplate>
<Border Background="{StaticResource BackgroundWhite}"
BorderBrush="{StaticResource BorderMedium}"
BorderThickness="1"
CornerRadius="6"
Padding="12,8">
<ContentPresenter Content="{TemplateBinding Content}"/>
</Border>
</ControlTemplate>
</Button.Template>
</Button>
<Button Content="格式化"
Command="{Binding FormatCodeCommand}"
HorizontalAlignment="Left"
VerticalAlignment="Center">
<Button.Template>
<ControlTemplate>
<Border Background="{StaticResource BackgroundWhite}"
BorderBrush="{StaticResource BorderMedium}"
BorderThickness="1"
CornerRadius="6"
Padding="12,8">
<ContentPresenter Content="{TemplateBinding Content}"/>
</Border>
</ControlTemplate>
</Button.Template>
</Button>
</StackPanel>
</StackPanel>
</Border>
<!-- 代码编辑器 -->
<Grid Grid.Row="1" Margin="5">
<Border Background="{StaticResource BackgroundWhite}"
BorderBrush="{StaticResource BorderMedium}"
BorderThickness="1"
CornerRadius="8"
Padding="0">
<avaloniaEdit:TextEditor x:Name="TextEditor"
attached:TextEditorAssist.Document="{Binding Document}"
attached:TextMateHelper.Language="{Binding SelectedLanguage}"
FontFamily="Consolas, 'Courier New', monospace"
FontSize="14"
ShowLineNumbers="True"
WordWrap="False"
Margin="10">
<avaloniaEdit:TextEditor.Styles>
<Style Selector="avaloniaEdit|TextEditor">
<Setter Property="Background" Value="{StaticResource BackgroundWhite}"/>
<Setter Property="Foreground" Value="{StaticResource TextPrimary}"/>
</Style>
<Style Selector="avaloniaEdit|TextEditor:focus">
<Setter Property="Background" Value="{StaticResource BackgroundWhite}"/>
</Style>
</avaloniaEdit:TextEditor.Styles>
</avaloniaEdit:TextEditor>
</Border>
</Grid>
</Grid>
</UserControl>

20
Views/Pages/EditorPageView.axaml.cs

@ -0,0 +1,20 @@
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
namespace MyAvaloniaApp.Views.Pages;
/// <summary>
/// 代码编辑器页面的 View
/// </summary>
public partial class EditorPageView : UserControl
{
public EditorPageView()
{
InitializeComponent();
}
private void InitializeComponent()
{
AvaloniaXamlLoader.Load(this);
}
}

489
bin/Debug/net9.0/MyAvaloniaApp.deps.json

@ -14,6 +14,9 @@
"Avalonia.Fonts.Inter": "11.3.6",
"Avalonia.ReactiveUI": "11.3.7",
"Avalonia.Themes.Fluent": "11.3.6",
"AvaloniaEdit": "0.10.12",
"AvaloniaEdit.TextMate": "11.3.0",
"DialogHost.Avalonia": "0.9.3",
"HeroIcons.Avalonia": "1.0.4",
"Microsoft.Extensions.Configuration": "9.0.0",
"Microsoft.Extensions.Configuration.CommandLine": "9.0.0",
@ -101,6 +104,17 @@
}
}
},
"Avalonia.AvaloniaEdit/11.3.0": {
"dependencies": {
"Avalonia": "11.3.7"
},
"runtime": {
"lib/net6.0/AvaloniaEdit.dll": {
"assemblyVersion": "11.3.0.0",
"fileVersion": "11.3.0.0"
}
}
},
"Avalonia.BuildServices/11.3.1": {},
"Avalonia.Controls.ColorPicker/11.3.6": {
"dependencies": {
@ -272,6 +286,38 @@
}
}
},
"AvaloniaEdit/0.10.12": {
"dependencies": {
"Avalonia": "11.3.7",
"System.Collections.Immutable": "1.6.0",
"System.Xml.ReaderWriter": "4.3.1"
}
},
"AvaloniaEdit.TextMate/11.3.0": {
"dependencies": {
"Avalonia": "11.3.7",
"Avalonia.AvaloniaEdit": "11.3.0",
"TextMateSharp": "1.0.65",
"TextMateSharp.Grammars": "1.0.65"
},
"runtime": {
"lib/net6.0/AvaloniaEdit.TextMate.dll": {
"assemblyVersion": "11.3.0.0",
"fileVersion": "11.3.0.0"
}
}
},
"DialogHost.Avalonia/0.9.3": {
"dependencies": {
"Avalonia": "11.3.7"
},
"runtime": {
"lib/netstandard2.0/DialogHost.Avalonia.dll": {
"assemblyVersion": "0.9.3.0",
"fileVersion": "0.9.3.0"
}
}
},
"DynamicData/8.4.1": {
"dependencies": {
"System.Reactive": "6.0.1"
@ -761,6 +807,58 @@
}
}
},
"Microsoft.NETCore.Platforms/1.1.0": {},
"Microsoft.NETCore.Targets/1.1.0": {},
"Onigwrap/1.0.6": {
"runtime": {
"lib/netstandard2.0/Onigwrap.dll": {
"assemblyVersion": "1.0.6.0",
"fileVersion": "1.0.6.0"
}
},
"runtimeTargets": {
"runtimes/linux-arm64/native/libonigwrap.so": {
"rid": "linux-arm64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-musl-arm64/native/libonigwrap.so": {
"rid": "linux-musl-arm64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-musl-x64/native/libonigwrap.so": {
"rid": "linux-musl-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-x64/native/libonigwrap.so": {
"rid": "linux-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/osx/native/libonigwrap.dylib": {
"rid": "osx",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/win-arm64/native/libonigwrap.dll": {
"rid": "win-arm64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/win-x64/native/libonigwrap.dll": {
"rid": "win-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/win-x86/native/libonigwrap.dll": {
"rid": "win-x86",
"assetType": "native",
"fileVersion": "0.0.0.0"
}
}
},
"ReactiveUI/20.1.1": {
"dependencies": {
"DynamicData": "8.4.1",
@ -850,7 +948,22 @@
}
}
},
"System.Collections/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"System.Collections.Immutable/1.6.0": {},
"System.ComponentModel.Annotations/5.0.0": {},
"System.Diagnostics.Debug/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"System.Diagnostics.EventLog/9.0.0": {
"runtime": {
"lib/net9.0/System.Diagnostics.EventLog.dll": {
@ -873,6 +986,39 @@
}
}
},
"System.Globalization/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"System.IO/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0",
"System.Text.Encoding": "4.3.0",
"System.Threading.Tasks": "4.3.0"
}
},
"System.IO.FileSystem/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.IO": "4.3.0",
"System.IO.FileSystem.Primitives": "4.3.0",
"System.Runtime": "4.3.0",
"System.Runtime.Handles": "4.3.0",
"System.Text.Encoding": "4.3.0",
"System.Threading.Tasks": "4.3.0"
}
},
"System.IO.FileSystem.Primitives/4.3.0": {
"dependencies": {
"System.Runtime": "4.3.0"
}
},
"System.IO.Pipelines/8.0.0": {},
"System.Reactive/6.0.1": {
"runtime": {
@ -882,6 +1028,139 @@
}
}
},
"System.Reflection/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.IO": "4.3.0",
"System.Reflection.Primitives": "4.3.0",
"System.Runtime": "4.3.0"
}
},
"System.Reflection.Primitives/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"System.Resources.ResourceManager/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Globalization": "4.3.0",
"System.Reflection": "4.3.0",
"System.Runtime": "4.3.0"
}
},
"System.Runtime/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.NETCore.Targets": "1.1.0"
}
},
"System.Runtime.Extensions/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"System.Runtime.Handles/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"System.Runtime.InteropServices/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Reflection": "4.3.0",
"System.Reflection.Primitives": "4.3.0",
"System.Runtime": "4.3.0",
"System.Runtime.Handles": "4.3.0"
}
},
"System.Text.Encoding/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"System.Text.Encoding.Extensions/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0",
"System.Text.Encoding": "4.3.0"
}
},
"System.Text.Json/8.0.5": {},
"System.Text.RegularExpressions/4.3.0": {
"dependencies": {
"System.Runtime": "4.3.0"
}
},
"System.Threading.Tasks/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"System.Threading.Tasks.Extensions/4.3.0": {
"dependencies": {
"System.Collections": "4.3.0",
"System.Runtime": "4.3.0",
"System.Threading.Tasks": "4.3.0"
}
},
"System.Xml.ReaderWriter/4.3.1": {
"dependencies": {
"System.Collections": "4.3.0",
"System.Diagnostics.Debug": "4.3.0",
"System.Globalization": "4.3.0",
"System.IO": "4.3.0",
"System.IO.FileSystem": "4.3.0",
"System.IO.FileSystem.Primitives": "4.3.0",
"System.Resources.ResourceManager": "4.3.0",
"System.Runtime": "4.3.0",
"System.Runtime.Extensions": "4.3.0",
"System.Runtime.InteropServices": "4.3.0",
"System.Text.Encoding": "4.3.0",
"System.Text.Encoding.Extensions": "4.3.0",
"System.Text.RegularExpressions": "4.3.0",
"System.Threading.Tasks": "4.3.0",
"System.Threading.Tasks.Extensions": "4.3.0"
}
},
"TextMateSharp/1.0.65": {
"dependencies": {
"Onigwrap": "1.0.6",
"System.Text.Json": "8.0.5"
},
"runtime": {
"lib/netstandard2.0/TextMateSharp.dll": {
"assemblyVersion": "1.0.65.0",
"fileVersion": "1.0.65.0"
}
}
},
"TextMateSharp.Grammars/1.0.65": {
"dependencies": {
"System.Text.Json": "8.0.5",
"TextMateSharp": "1.0.65"
},
"runtime": {
"lib/netstandard2.0/TextMateSharp.Grammars.dll": {
"assemblyVersion": "1.0.65.0",
"fileVersion": "1.0.65.0"
}
}
},
"Tmds.DBus.Protocol/0.21.2": {
"dependencies": {
"System.IO.Pipelines": "8.0.0"
@ -915,6 +1194,13 @@
"path": "avalonia.angle.windows.natives/2.1.25547.20250602",
"hashPath": "avalonia.angle.windows.natives.2.1.25547.20250602.nupkg.sha512"
},
"Avalonia.AvaloniaEdit/11.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-9M/jJb4DPqQmKtNMZn6+vpqlf+ZGMtK8vEBpPVP3De1xRCu1hv4ZAtoA8hY6bYj2hgv/luete3ixoOsEQ++YJQ==",
"path": "avalonia.avaloniaedit/11.3.0",
"hashPath": "avalonia.avaloniaedit.11.3.0.nupkg.sha512"
},
"Avalonia.BuildServices/11.3.1": {
"type": "package",
"serviceable": true,
@ -1013,6 +1299,27 @@
"path": "avalonia.x11/11.3.7",
"hashPath": "avalonia.x11.11.3.7.nupkg.sha512"
},
"AvaloniaEdit/0.10.12": {
"type": "package",
"serviceable": true,
"sha512": "sha512-zhMa6SPnFypVddpYEOJvNckb9m219wz8bKA+T2CZPDyPaFYKHPOe7jjbW6lFCinilXF+55N64EW8vsoRDwsc2A==",
"path": "avaloniaedit/0.10.12",
"hashPath": "avaloniaedit.0.10.12.nupkg.sha512"
},
"AvaloniaEdit.TextMate/11.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-9yDE7JUGZxWLo5eqhd6FXMHgj4EH2NOQxL030Vja6SBYX5wiLR8Pk67A8DtIabb0tpvEEDPWBBasN70OhjUiwg==",
"path": "avaloniaedit.textmate/11.3.0",
"hashPath": "avaloniaedit.textmate.11.3.0.nupkg.sha512"
},
"DialogHost.Avalonia/0.9.3": {
"type": "package",
"serviceable": true,
"sha512": "sha512-o1acXdUB2yb0zyMS/BXN00K6fwYJIoJXUOXtdmfFnlEVujcMGJIOfnXyKfjruWcaob02K2blJSmwK1bq40c5gQ==",
"path": "dialoghost.avalonia/0.9.3",
"hashPath": "dialoghost.avalonia.0.9.3.nupkg.sha512"
},
"DynamicData/8.4.1": {
"type": "package",
"serviceable": true,
@ -1258,6 +1565,27 @@
"path": "microsoft.extensions.primitives/9.0.0",
"hashPath": "microsoft.extensions.primitives.9.0.0.nupkg.sha512"
},
"Microsoft.NETCore.Platforms/1.1.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==",
"path": "microsoft.netcore.platforms/1.1.0",
"hashPath": "microsoft.netcore.platforms.1.1.0.nupkg.sha512"
},
"Microsoft.NETCore.Targets/1.1.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg==",
"path": "microsoft.netcore.targets/1.1.0",
"hashPath": "microsoft.netcore.targets.1.1.0.nupkg.sha512"
},
"Onigwrap/1.0.6": {
"type": "package",
"serviceable": true,
"sha512": "sha512-nqmemnwPFmcLPINSEUsbj/jdZ+vhaRMG3E7G/4yGwFEzWusfCgucutMsIKxRXLo0buon35uZeXadnnT6r8fuqQ==",
"path": "onigwrap/1.0.6",
"hashPath": "onigwrap.1.0.6.nupkg.sha512"
},
"ReactiveUI/20.1.1": {
"type": "package",
"serviceable": true,
@ -1307,6 +1635,20 @@
"path": "splat/15.1.1",
"hashPath": "splat.15.1.1.nupkg.sha512"
},
"System.Collections/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==",
"path": "system.collections/4.3.0",
"hashPath": "system.collections.4.3.0.nupkg.sha512"
},
"System.Collections.Immutable/1.6.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-+aL946rTSJyo4PqstwsVZ5RBfaxfkIx+nTMfpmaxzorqgifRJwndBZhXPWNWGJpys7cQ1/vCvilYN9ugM05JFA==",
"path": "system.collections.immutable/1.6.0",
"hashPath": "system.collections.immutable.1.6.0.nupkg.sha512"
},
"System.ComponentModel.Annotations/5.0.0": {
"type": "package",
"serviceable": true,
@ -1314,6 +1656,13 @@
"path": "system.componentmodel.annotations/5.0.0",
"hashPath": "system.componentmodel.annotations.5.0.0.nupkg.sha512"
},
"System.Diagnostics.Debug/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==",
"path": "system.diagnostics.debug/4.3.0",
"hashPath": "system.diagnostics.debug.4.3.0.nupkg.sha512"
},
"System.Diagnostics.EventLog/9.0.0": {
"type": "package",
"serviceable": true,
@ -1321,6 +1670,34 @@
"path": "system.diagnostics.eventlog/9.0.0",
"hashPath": "system.diagnostics.eventlog.9.0.0.nupkg.sha512"
},
"System.Globalization/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==",
"path": "system.globalization/4.3.0",
"hashPath": "system.globalization.4.3.0.nupkg.sha512"
},
"System.IO/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==",
"path": "system.io/4.3.0",
"hashPath": "system.io.4.3.0.nupkg.sha512"
},
"System.IO.FileSystem/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==",
"path": "system.io.filesystem/4.3.0",
"hashPath": "system.io.filesystem.4.3.0.nupkg.sha512"
},
"System.IO.FileSystem.Primitives/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==",
"path": "system.io.filesystem.primitives/4.3.0",
"hashPath": "system.io.filesystem.primitives.4.3.0.nupkg.sha512"
},
"System.IO.Pipelines/8.0.0": {
"type": "package",
"serviceable": true,
@ -1335,6 +1712,118 @@
"path": "system.reactive/6.0.1",
"hashPath": "system.reactive.6.0.1.nupkg.sha512"
},
"System.Reflection/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==",
"path": "system.reflection/4.3.0",
"hashPath": "system.reflection.4.3.0.nupkg.sha512"
},
"System.Reflection.Primitives/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==",
"path": "system.reflection.primitives/4.3.0",
"hashPath": "system.reflection.primitives.4.3.0.nupkg.sha512"
},
"System.Resources.ResourceManager/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==",
"path": "system.resources.resourcemanager/4.3.0",
"hashPath": "system.resources.resourcemanager.4.3.0.nupkg.sha512"
},
"System.Runtime/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
"path": "system.runtime/4.3.0",
"hashPath": "system.runtime.4.3.0.nupkg.sha512"
},
"System.Runtime.Extensions/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==",
"path": "system.runtime.extensions/4.3.0",
"hashPath": "system.runtime.extensions.4.3.0.nupkg.sha512"
},
"System.Runtime.Handles/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==",
"path": "system.runtime.handles/4.3.0",
"hashPath": "system.runtime.handles.4.3.0.nupkg.sha512"
},
"System.Runtime.InteropServices/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==",
"path": "system.runtime.interopservices/4.3.0",
"hashPath": "system.runtime.interopservices.4.3.0.nupkg.sha512"
},
"System.Text.Encoding/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
"path": "system.text.encoding/4.3.0",
"hashPath": "system.text.encoding.4.3.0.nupkg.sha512"
},
"System.Text.Encoding.Extensions/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==",
"path": "system.text.encoding.extensions/4.3.0",
"hashPath": "system.text.encoding.extensions.4.3.0.nupkg.sha512"
},
"System.Text.Json/8.0.5": {
"type": "package",
"serviceable": true,
"sha512": "sha512-0f1B50Ss7rqxXiaBJyzUu9bWFOO2/zSlifZ/UNMdiIpDYe4cY4LQQicP4nirK1OS31I43rn062UIJ1Q9bpmHpg==",
"path": "system.text.json/8.0.5",
"hashPath": "system.text.json.8.0.5.nupkg.sha512"
},
"System.Text.RegularExpressions/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-RpT2DA+L660cBt1FssIE9CAGpLFdFPuheB7pLpKpn6ZXNby7jDERe8Ua/Ne2xGiwLVG2JOqziiaVCGDon5sKFA==",
"path": "system.text.regularexpressions/4.3.0",
"hashPath": "system.text.regularexpressions.4.3.0.nupkg.sha512"
},
"System.Threading.Tasks/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==",
"path": "system.threading.tasks/4.3.0",
"hashPath": "system.threading.tasks.4.3.0.nupkg.sha512"
},
"System.Threading.Tasks.Extensions/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-npvJkVKl5rKXrtl1Kkm6OhOUaYGEiF9wFbppFRWSMoApKzt2PiPHT2Bb8a5sAWxprvdOAtvaARS9QYMznEUtug==",
"path": "system.threading.tasks.extensions/4.3.0",
"hashPath": "system.threading.tasks.extensions.4.3.0.nupkg.sha512"
},
"System.Xml.ReaderWriter/4.3.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-fVU1Xp9TEOHv1neQDtcJ4hNfYJ1pjfXzKY3VFeiRZK6HTV4Af2Ihyvq1FkPLrL1hzZhXv7NTmowQnL5DgTzIKA==",
"path": "system.xml.readerwriter/4.3.1",
"hashPath": "system.xml.readerwriter.4.3.1.nupkg.sha512"
},
"TextMateSharp/1.0.65": {
"type": "package",
"serviceable": true,
"sha512": "sha512-vwIPl5efIkYtVp+rewrn81Pjs3Vz0RbKJcjDjuRK/YUKsSMEADm4zVFnIWRrGe8LbM0ATpphwMr3G62PBOTrHA==",
"path": "textmatesharp/1.0.65",
"hashPath": "textmatesharp.1.0.65.nupkg.sha512"
},
"TextMateSharp.Grammars/1.0.65": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ga+Uz5iyb75nuQY9hmALiWdeMkFZknJKrIvVDCrI3iZ0Ff9+tk0CqRKr0/KVR/Gg7MEY21cCtMYUbkBVczdwBA==",
"path": "textmatesharp.grammars/1.0.65",
"hashPath": "textmatesharp.grammars.1.0.65.nupkg.sha512"
},
"Tmds.DBus.Protocol/0.21.2": {
"type": "package",
"serviceable": true,

BIN
bin/Debug/net9.0/MyAvaloniaApp.dll

Binary file not shown.

BIN
bin/Debug/net9.0/MyAvaloniaApp.exe

Binary file not shown.

BIN
bin/Debug/net9.0/MyAvaloniaApp.pdb

Binary file not shown.

19
bin/Release/net9.0/linux-x64/MyAvaloniaApp.deps.json

@ -15,6 +15,7 @@
"Avalonia.Fonts.Inter": "11.3.6",
"Avalonia.ReactiveUI": "11.3.7",
"Avalonia.Themes.Fluent": "11.3.6",
"HeroIcons.Avalonia": "1.0.4",
"Microsoft.Extensions.Configuration": "9.0.0",
"Microsoft.Extensions.Configuration.CommandLine": "9.0.0",
"Microsoft.Extensions.Configuration.EnvironmentVariables": "9.0.0",
@ -990,6 +991,17 @@
"HarfBuzzSharp.NativeAssets.macOS/8.3.1.1": {},
"HarfBuzzSharp.NativeAssets.WebAssembly/8.3.1.1": {},
"HarfBuzzSharp.NativeAssets.Win32/8.3.1.1": {},
"HeroIcons.Avalonia/1.0.4": {
"dependencies": {
"Avalonia": "11.3.7"
},
"runtime": {
"lib/netstandard2.0/HeroIconsAvalonia.dll": {
"assemblyVersion": "1.0.4.0",
"fileVersion": "1.0.4.0"
}
}
},
"MicroCom.Runtime/0.11.0": {
"runtime": {
"lib/net5.0/MicroCom.Runtime.dll": {
@ -1599,6 +1611,13 @@
"path": "harfbuzzsharp.nativeassets.win32/8.3.1.1",
"hashPath": "harfbuzzsharp.nativeassets.win32.8.3.1.1.nupkg.sha512"
},
"HeroIcons.Avalonia/1.0.4": {
"type": "package",
"serviceable": true,
"sha512": "sha512-wOJIOvexOPubqvxzYqmzNHLup/j3K5n6cEfaeszWy2X8iiVkDM8CiHZU7y/N16mbQvhBHc1zw0QnUFhHN63v4A==",
"path": "heroicons.avalonia/1.0.4",
"hashPath": "heroicons.avalonia.1.0.4.nupkg.sha512"
},
"MicroCom.Runtime/0.11.0": {
"type": "package",
"serviceable": true,

BIN
bin/Release/net9.0/linux-x64/MyAvaloniaApp.dll

Binary file not shown.

BIN
bin/Release/net9.0/linux-x64/MyAvaloniaApp.pdb

Binary file not shown.

212
modify.md

@ -1,5 +1,103 @@
# 修改记录
## 2025年修改记录
### 重构 EditorPageView 以直接使用 AvaloniaEdit.TextMate
- **日期**: 2025年10月31日
- **修改内容**: 移除旧的 BindableTextEditor,自定义附加属性实现 MVVM 绑定,并通过 TextMateHelper 统一语法高亮逻辑
- **修改文件**:
- Views/Pages/EditorPageView.axaml
- Views/Pages/EditorPageView.axaml.cs
- ViewModels/Pages/EditorPageViewModel.cs
- Attached/TextEditorAssist.cs(新建)
- Attached/TextMateHelper.cs(新建)
- Views/Controls/BindableTextEditor.cs(删除)
- **解决方案**:
- 通过 TextEditorAssist 附加属性将 TextDocument 与 TextEditor 同步,实现无代码隐藏的 Document 绑定
- 使用 TextMateHelper 附加属性封装语法高亮安装与语言切换逻辑
- ViewModel 保留 TextDocument 并在语言切换时刷新文本内容
- XAML 中直接引用 AvaloniaEdit.TextEditor,避免冗余自定义控件
- **优势**:
- 完全符合 MVVM 模式,视图层仅通过绑定与附加属性完成配置
- TextMate 初始化与语言切换统一封装,可复用扩展
- 代码结构清晰,减少重复字符串状态同步
- **测试结果**:
- 手动验证:切换语言可正常刷新语法高亮
- TextDocument 内容与编辑器保持同步,无额外刷新延迟
- **补充**:
- 调整 TextEditorAssist 附加属性,使用 AddClassHandler 实现双向同步并避免编译错误
- TextMateHelper 改为按 scope 名称设置语法,兼容 TextMate API 签名
### 实现 MVVM 方式的 TextEditor Document 绑定
- **日期**: 2025年1月0日
- **修改内容**: 创建自定义 BindableTextEditor 控件,实现纯 MVVM 绑定方式
- **修改文件**:
- Views/Controls/BindableTextEditor.cs - 新建支持 MVVM 绑定的自定义控件
- Views/Pages/EditorPageView.axaml - 使用 BindableTextEditor 并绑定 Document
- Views/Pages/EditorPageView.axaml.cs - 移除手动设置 Document 的代码,改用纯绑定
- **解决方案**:
- 创建 BindableTextEditor 继承自 TextEditor
- 定义 BindableDocument StyledProperty,支持双向绑定
- 实现双向同步:BindableDocument ↔ TextEditor.Document
- 使用标志位防止循环更新
- 在 XAML 中使用 `BindableDocument="{Binding Document}"` 实现 MVVM 绑定
- 移除了所有手动设置 Document 的代码
- **技术细节**:
- 使用 StyledProperty 定义可绑定属性
- 使用 GetObservable 监听属性变化
- 使用标志位 (_isUpdatingFromBindable, _isUpdatingFromDocument) 防止循环更新
- 支持双向绑定 (BindingMode.TwoWay)
- **优势**:
- 完全符合 MVVM 模式
- 代码更简洁,View 层不需要手动设置
- 自动双向同步,ViewModel 变化时自动更新 UI
- **测试结果**:
- 等待用户测试验证
### 修复 TextEditor Document 显示问题(第二次修复)
- **日期**: 2025年1月0日
- **修改内容**: 修复 TextEditor 控件不显示内容的问题,改用代码后台手动设置 Document
- **修改文件**:
- Views/Pages/EditorPageView.axaml - 移除了 Document 的 XAML 绑定
- Views/Pages/EditorPageView.axaml.cs - 在代码后台手动设置 Document
- App.axaml - 添加 AvaloniaEdit 样式引用
- **问题描述**:
- TextEditor 的 Document 绑定在 XAML 中不起作用,编辑器仍显示空白
- **解决方案**:
- 移除 XAML 中的 `Document="{Binding Document}"` 绑定
- 在代码后台的多个位置手动设置 `editor.Document = viewModel.Document`
- 添加 Loaded 事件处理,在控件加载完成后设置 Document
- 在 OnDataContextChanged 和 InitializeTextMate 中都设置 Document
- 创建 UpdateDocument() 方法统一处理 Document 更新
- 监听 Document 属性变化,确保同步更新
- 在 App.axaml 中添加 AvaloniaEdit 样式引用
- **技术细节**:
- AvaloniaEdit 的 Document 属性可能不完全支持数据绑定,需要在代码后台手动设置
- 使用多个时机确保 Document 设置:Loaded 事件、DataContextChanged、InitializeTextMate
- 使用 DispatcherPriority.Loaded 确保在控件完全加载后再设置
- 添加样式引用确保控件正确渲染
- **测试结果**:
- 等待用户测试验证
### 修复 TextEditor Document 绑定问题
- **日期**: 2025年1月0日
- **修改内容**: 修复 EditorPageViewModel 中 Document 属性绑定为 null 的问题
- **修改文件**:
- ViewModels/Pages/EditorPageViewModel.cs - 确保 Document 属性在初始化时就有值
- **问题描述**:
- TextEditor 的 Document 绑定在初始化时为 null,导致编辑器无法显示内容
- **解决方案**:
- 将 Document 属性从可空类型(TextDocument?)改为非空类型(TextDocument)
- 在构造函数中立即初始化 Document,确保绑定时有值
- 修改 InitializeDefaultCode() 方法,直接设置 Document.Text 而不是创建新的 Document 实例
- 移除了所有 Document 的空值检查,因为现在它保证不为 null
- **技术细节**:
- 在构造函数开始处立即创建 TextDocument 实例
- 使用 Document.Text 属性更新内容,而不是替换整个 Document 对象
- 这样可以保持绑定关系的连续性
- **测试结果**:
- Document 绑定成功,但编辑器仍不显示内容,需要进一步修复
## 2024年修改记录
### WSL Ubuntu发布配置
@ -3489,3 +3587,117 @@ var title = _resourceService?.GetString("NavDashboard") ?? "仪表板";
- 成功实现了导航项的互斥展开逻辑
- 提供了更直观、更符合用户习惯的交互体验
- 完善了状态管理和选中效果
### 娣诲姞 AvaloniaEdit.TextMate 浠g爜缂栬緫鍣ㄥ姛鑳?- **鏃ユ湡**: 2025骞?鏈?0鏃?- **淇敼鍐呭**: 娣诲姞鍩轰簬 AvaloniaEdit.TextMate 鐨勪唬鐮佺紪杈戝櫒椤甸潰锛屾敮鎸佽娉曢珮浜?- **鏂板鍔熻兘**:
- 鏀寔澶氱缂栫▼璇█鐨勮娉曢珮浜紙C#, JavaScript, TypeScript, HTML, CSS, JSON, XML, Python, Java, SQL锛? - 鎻愪緵浠g爜缂栬緫鍣ㄧ殑瀹屾暣 UI 鐣岄潰
- 鏀寔璇█鍒囨崲锛岃嚜鍔ㄥ簲鐢ㄥ搴旂殑璇硶楂樹寒瑙勫垯
- 鎻愪緵娓呯┖浠g爜鍜屾牸寮忓寲浠g爜鐨勫姛鑳芥寜閽? - 鍐呯疆鍚勭璇█鐨勭ず渚嬩唬鐮佹ā鏉?- **鏂板鏂囦欢**:
- ViewModels/Pages/EditorPageViewModel.cs - 浠g爜缂栬緫鍣ㄩ〉闈㈢殑 ViewModel
- Views/Pages/EditorPageView.axaml - 浠g爜缂栬緫鍣ㄩ〉闈㈢殑 UI 瀹氫箟
- Views/Pages/EditorPageView.axaml.cs - 浠g爜缂栬緫鍣ㄩ〉闈㈢殑浠g爜閫昏緫
- **淇敼鏂囦欢**:
- MyAvaloniaApp.csproj - 娣诲姞 AvaloniaEdit 鍜?AvaloniaEdit.TextMate 鍖呭紩鐢? - ViewModels/MainWindowViewModel.cs - 鍦ㄥ鑸」涓坊鍔?浠g爜缂栬緫鍣?椤甸潰
- **鍖呭紩鐢?*:
`xml
<PackageReference Include="AvaloniaEdit" Version="11.1.1" />
<PackageReference Include="AvaloniaEdit.TextMate" Version="11.3.0" />
`
- **鏍稿績鍔熻兘**:
- **璇硶楂樹寒**: 浣跨敤 TextMate 璇硶寮曟搸鎻愪緵涓撲笟鐨勮娉曢珮浜敮鎸? - **涓婚鍒囨崲**: 鏀寔 DarkPlus 涓婚
- **璇█鏀寔**: 10绉嶄富娴佺紪绋嬭瑷€
- **浠g爜绀轰緥**: 姣忕璇█閮芥湁瀹屾暣鐨勭ず渚嬩唬鐮? - **瀹炴椂鍒囨崲**: 鍒囨崲璇█鏃惰嚜鍔ㄦ洿鏂拌娉曢珮浜鍒?- **瀵艰埅椤归厤缃?*:
- ID: "editor"
- 鏍囬: "浠g爜缂栬緫鍣?
- 鍥炬爣: CodeBracket
- **鎶€鏈疄鐜?*:
- 浣跨敤 TextEditor 鎺т欢浣滀负浠g爜缂栬緫瀹瑰櫒
- 浣跨敤 RegistryOptions 娉ㄥ唽 TextMate 璇硶瑙勫垯
- 浣跨敤 SetGrammar() 鏂规硶鍔ㄦ€佸垏鎹㈣娉曢珮浜? - ViewModel 鐩戝惉璇█閫夋嫨鍙樺寲锛屽疄鏃舵洿鏂扮紪杈戝櫒
- **娴嬭瘯缁撴灉**:
- 缂栬瘧鎴愬姛锛屾棤閿欒 鉁? - AvaloniaEdit 姝g‘鍔犺浇 鉁? - TextMate 鍒濆鍖栨垚鍔?鉁? - 璇█鍒囨崲鍔熻兘姝e父 鉁? - 绀轰緥浠g爜姝g‘鏄剧ず 鉁?- **璇存槑**:
- 鎴愬姛闆嗘垚浜?AvaloniaEdit.TextMate 浠g爜缂栬緫鍣? - 鎻愪緵浜嗗畬鏁寸殑浠g爜缂栬緫浣撻獙
- 鏀寔璇硶楂樹寒銆佽鍙锋樉绀恒€佷富棰樺垏鎹㈢瓑楂樼骇鍔熻兘
- 涓哄悗缁殑浠g爜缂栬緫鍔熻兘鎵╁睍鎵撲笅浜嗗熀纭€
### 娣诲姞 AvaloniaEdit.TextMate 浠g爜缂栬緫鍣ㄥ姛鑳?- **鏃ユ湡**: 2025骞?鏈?0鏃?- **淇敼鍐呭**: 娣诲姞鍩轰簬 AvaloniaEdit.TextMate 鐨勪唬鐮佺紪杈戝櫒椤甸潰
- **鏂板鍔熻兘**:
- 鏀寔澶氱缂栫▼璇█鐨勮娉曢珮浜紙C#, JavaScript, TypeScript, HTML, CSS, JSON, XML, Python, Java, SQL锛? - 鎻愪緵浠g爜缂栬緫鍣ㄧ殑瀹屾暣 UI 鐣岄潰
- 鏀寔璇█鍒囨崲锛岃嚜鍔ㄥ簲鐢ㄥ搴旂殑璇硶楂樹寒瑙勫垯
- 鎻愪緵娓呯┖浠g爜鍜屾牸寮忓寲浠g爜鐨勫姛鑳芥寜閽? - 鍐呯疆鍚勭璇█鐨勭ず渚嬩唬鐮佹ā鏉?- **鏂板鏂囦欢**:
- ViewModels/Pages/EditorPageViewModel.cs - 浠g爜缂栬緫鍣ㄩ〉闈㈢殑 ViewModel
- Views/Pages/EditorPageView.axaml - 浠g爜缂栬緫鍣ㄩ〉闈㈢殑 UI 瀹氫箟
- Views/Pages/EditorPageView.axaml.cs - 浠g爜缂栬緫鍣ㄩ〉闈㈢殑浠g爜閫昏緫
- **淇敼鏂囦欢**:
- MyAvaloniaApp.csproj - 娣诲姞 AvaloniaEdit 鍜?AvaloniaEdit.TextMate 鍖呭紩鐢? - ViewModels/MainWindowViewModel.cs - 鍦ㄥ鑸」涓坊鍔?浠g爜缂栬緫鍣?椤甸潰
- **鍖呭紩鐢?*:
`xml
<PackageReference Include="AvaloniaEdit" Version="0.10.12" />
<PackageReference Include="AvaloniaEdit.TextMate" Version="11.3.0" />
`
- **鏍稿績鍔熻兘**:
- **璇硶楂樹寒**: 浣跨敤 TextMate 璇硶寮曟搸鎻愪緵涓撲笟鐨勮娉曢珮浜敮鎸? - **涓婚鍒囨崲**: 鏀寔 DarkPlus 涓婚
- **璇█鏀寔**: 10绉嶄富娴佺紪绋嬭瑷€
- **浠g爜绀轰緥**: 姣忕璇█閮芥湁绀轰緥浠g爜
- **瀹炴椂鍒囨崲**: 鍒囨崲璇█鏃惰嚜鍔ㄦ洿鏂拌娉曢珮浜鍒?- **鎶€鏈疄鐜?*:
- 浣跨敤 TextEditor 鎺т欢浣滀负浠g爜缂栬緫瀹瑰櫒
- 浣跨敤 RegistryOptions 娉ㄥ唽 TextMate 璇硶瑙勫垯
- 浣跨敤 SetGrammar() 鏂规硶鍔ㄦ€佸垏鎹㈣娉曢珮浜? - ViewModel 鐩戝惉璇█閫夋嫨鍙樺寲锛屽疄鏃舵洿鏂扮紪杈戝櫒
- **娴嬭瘯缁撴灉**:
- 缂栬瘧鎴愬姛锛屾棤閿欒 鉁? - AvaloniaEdit 姝g‘鍔犺浇 鉁?- **璇存槑**:
- 鎴愬姛闆嗘垚浜?AvaloniaEdit.TextMate 浠g爜缂栬緫鍣? - 鎻愪緵浜嗗畬鏁寸殑浠g爜缂栬緫浣撻獙
- 涓哄悗缁殑浠g爜缂栬緫鍔熻兘鎵╁睍鎵撲笅浜嗗熀纭€
### 重构 EditorPageView 以支�?MVVM 语言切换
- **日期**: 2025�?0�?1�?- **修改内容**: 将代码编辑器页面的语法高亮初始化逻辑抽离到附加属性,通过数据绑定控制语言切换
- **修改文件**:
- `Views/Behaviors/TextMateHelper.cs`
- `Views/Pages/EditorPageView.axaml`
- `Views/Pages/EditorPageView.axaml.cs`
- **实现方式**:
- 新增 `TextMateHelper` 附加属性统一管理 TextMate 初始化与语法切换
- �?XAML 中绑�?`TextMateHelper.Language` �?`SelectedLanguage`,移除代码后置监�? - 精简 `EditorPageView` 代码后置,保留基础初始�?- **测试结果**:
- 手动运行界面验证语言切换语法高亮正常 �? - 未执行自动化测试(UI 层改动)
- **备注**:
- 当前实现可扩展其他主题或语言,后续可�?ViewModel 中追加格式化逻辑
### 新增 DialogHost 示例页面
- **日期**: 2025年10月31日
- **修改内容**: 集成 DialogHost.Avalonia,新增示例页面并加入导航,支持通过 MVVM 控制对话框的打开与关闭
- **新增文件**:
- `ViewModels/Pages/DialogHostPageViewModel.cs` — 定义对话框状态、命令及反馈信息
- `Views/Pages/DialogHostPageView.axaml` — 布局 DialogHost 及演示界面
- `Views/Pages/DialogHostPageView.axaml.cs` — 初始化新页面视图
- **修改文件**:
- `App.axaml` — 合并 `avares://DialogHost.Avalonia/Styles.xaml` 样式资源,确保模板可用
- `MyAvaloniaApp.csproj` — 引入 `DialogHost.Avalonia` 包引用
- `ViewModels/MainWindowViewModel.cs` — 注册“对话框示例”导航项并绑定新页面
- **功能说明**:
- 通过 `IsDialogOpen` 与命令绑定实现 MVVM 弹窗控制
- 支持确认/取消操作与“记住选择”选项,展示最后一次操作结果
- 保持对话框样式与应用现有主题一致
- 调整示例布局使用 `Margin` 控制外边距,避免对 `Grid.Padding` 的依赖
- 新增“通用/成功/失败/警告”四类示例按钮,自动切换标题、文案、按钮文本及是否展示次级操作
- 对话框内容加入图标与强调色绑定,突出场景差异并保持样式统一
- WrapPanel 去除 `Spacing`,改为按钮外边距实现间距以兼容当前 Avalonia 版本
- 对话框头部改用 `Grid` 控制图标与文本列宽,并设置描述文本 `MaxWidth` 防止内容溢出
- 成功/失败/警告场景支持参数化秒数自动关闭(默认 2s),按钮隐藏且提示会在超时后自动记录操作
- 新增“确认弹窗”示例以及 5 秒延时的成功案例,演示 `variant:seconds` 参数格式
- **测试结果**:
- 手动运行验证:对话框可正常打开、确认与取消
- 导航项点击可正确创建标签页并加载示例页面
### 更新忽略文件
- **日期**: 2025年10月31日
- **修改内容**: 新增 `.gitignore`,将 `.vs``bin` 目录排除在版本控制之外
- **目的**: 避免将临时构建产物与本地开发配置提交至仓库,保持仓库整洁
### 优化 .gitignore 模板
- **日期**: 2025年10月31日
- **修改内容**: 将 `.gitignore` 替换为 Visual Studio 项目的标准模板,涵盖用户配置、构建输出、调试日志及常见工具生成文件
- **目的**: 提供更全面的忽略策略,减少环境差异导致的冗余文件进入版本库
### 调整忽略目录
- **日期**: 2025年10月31日
- **修改内容**: 在 `.gitignore` 中显式添加根目录 `bin/`、`obj/`、`publish/` 的忽略规则
- **目的**: 确保常见构建产物目录在任何平台下均不会被意外提交

2
obj/Debug/net9.0/Avalonia/Resources.Inputs.cache

@ -1 +1 @@
6e01c74e1c21b9706e5c2eb7e4b73fafcd6b61916a627af46c2ec5b3700097d5
a9f27ce4bdac4bf5ca954160904d645cef7a4bde57bc6b530b0206ad45cc8eb7

6
obj/Debug/net9.0/Avalonia/references

@ -23,6 +23,9 @@ C:\Users\changeself\.nuget\packages\avalonia\11.3.7\ref\net8.0\Avalonia.Vulkan.d
C:\Users\changeself\.nuget\packages\avalonia.win32\11.3.7\lib\net8.0\Avalonia.Win32.Automation.dll
C:\Users\changeself\.nuget\packages\avalonia.win32\11.3.7\lib\net8.0\Avalonia.Win32.dll
C:\Users\changeself\.nuget\packages\avalonia.x11\11.3.7\lib\net8.0\Avalonia.X11.dll
C:\Users\changeself\.nuget\packages\avalonia.avaloniaedit\11.3.0\lib\net6.0\AvaloniaEdit.dll
C:\Users\changeself\.nuget\packages\avaloniaedit.textmate\11.3.0\lib\net6.0\AvaloniaEdit.TextMate.dll
C:\Users\changeself\.nuget\packages\dialoghost.avalonia\0.9.3\lib\netstandard2.0\DialogHost.Avalonia.dll
C:\Users\changeself\.nuget\packages\dynamicdata\8.4.1\lib\net8.0\DynamicData.dll
C:\Users\changeself\.nuget\packages\harfbuzzsharp\8.3.1.1\lib\net8.0\HarfBuzzSharp.dll
C:\Users\changeself\.nuget\packages\heroicons.avalonia\1.0.4\lib\netstandard2.0\HeroIconsAvalonia.dll
@ -61,6 +64,7 @@ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\9.0.7\ref\net9.0\Microso
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\9.0.7\ref\net9.0\Microsoft.Win32.Registry.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\9.0.7\ref\net9.0\mscorlib.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\9.0.7\ref\net9.0\netstandard.dll
C:\Users\changeself\.nuget\packages\onigwrap\1.0.6\lib\netstandard2.0\Onigwrap.dll
C:\Users\changeself\.nuget\packages\reactiveui\20.1.1\lib\net8.0\ReactiveUI.dll
C:\Users\changeself\.nuget\packages\skiasharp\2.88.9\lib\net6.0\SkiaSharp.dll
C:\Users\changeself\.nuget\packages\splat\15.1.1\lib\net8.0\Splat.dll
@ -222,5 +226,7 @@ C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\9.0.7\ref\net9.0\System.
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\9.0.7\ref\net9.0\System.Xml.XmlSerializer.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\9.0.7\ref\net9.0\System.Xml.XPath.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\9.0.7\ref\net9.0\System.Xml.XPath.XDocument.dll
C:\Users\changeself\.nuget\packages\textmatesharp\1.0.65\lib\netstandard2.0\TextMateSharp.dll
C:\Users\changeself\.nuget\packages\textmatesharp.grammars\1.0.65\lib\netstandard2.0\TextMateSharp.Grammars.dll
C:\Users\changeself\.nuget\packages\tmds.dbus.protocol\0.21.2\lib\net8.0\Tmds.DBus.Protocol.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\9.0.7\ref\net9.0\WindowsBase.dll

BIN
obj/Debug/net9.0/Avalonia/resources

Binary file not shown.

2
obj/Debug/net9.0/MyAvaloniaApp.AssemblyInfo.cs

@ -14,7 +14,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("MyAvaloniaApp")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+a05a81acc78797ebd427e6d6aed03156b1343493")]
[assembly: System.Reflection.AssemblyProductAttribute("MyAvaloniaApp")]
[assembly: System.Reflection.AssemblyTitleAttribute("MyAvaloniaApp")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]

2
obj/Debug/net9.0/MyAvaloniaApp.AssemblyInfoInputs.cache

@ -1 +1 @@
bf952ee0722a6225039d842c594a8ebe310a83a2db3935d66a759729adc67724
766f73ce23faadf06c3dea8c85c8321692de9c1311687760c1eb88fe735925f7

6
obj/Debug/net9.0/MyAvaloniaApp.GeneratedMSBuildEditorConfig.editorconfig

@ -39,6 +39,12 @@ build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
[D:/Log/MyAvaloniaApp/Views/Pages/DashboardPageView.axaml]
build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
[D:/Log/MyAvaloniaApp/Views/Pages/DialogHostPageView.axaml]
build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
[D:/Log/MyAvaloniaApp/Views/Pages/EditorPageView.axaml]
build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
[D:/Log/MyAvaloniaApp/Views/Pages/HelpPageView.axaml]
build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml

BIN
obj/Debug/net9.0/MyAvaloniaApp.assets.cache

Binary file not shown.

BIN
obj/Debug/net9.0/MyAvaloniaApp.csproj.AssemblyReference.cache

Binary file not shown.

2
obj/Debug/net9.0/MyAvaloniaApp.csproj.CoreCompileInputs.cache

@ -1 +1 @@
2fb62cbdfb8208998e89466afbadbb20df4541f3eb58228e330c9ae62600a000
7e0e71ecbe1dda5d9b13b4a0f67a04828398b765cd3833716ab133f8c26dd1a4

34
obj/Debug/net9.0/MyAvaloniaApp.csproj.FileListAbsolute.txt

@ -1,3 +1,13 @@
D:\Log\MyAvaloniaApp\obj\Debug\net9.0\MyAvaloniaApp.csproj.AssemblyReference.cache
D:\Log\MyAvaloniaApp\obj\Debug\net9.0\Avalonia\Resources.Inputs.cache
D:\Log\MyAvaloniaApp\obj\Debug\net9.0\Avalonia\resources
D:\Log\MyAvaloniaApp\obj\Debug\net9.0\MyAvaloniaApp.GeneratedMSBuildEditorConfig.editorconfig
D:\Log\MyAvaloniaApp\obj\Debug\net9.0\MyAvaloniaApp.AssemblyInfoInputs.cache
D:\Log\MyAvaloniaApp\obj\Debug\net9.0\MyAvaloniaApp.AssemblyInfo.cs
D:\Log\MyAvaloniaApp\obj\Debug\net9.0\MyAvaloniaApp.csproj.CoreCompileInputs.cache
D:\Log\MyAvaloniaApp\obj\Debug\net9.0\MyAvaloniaApp.dll
D:\Log\MyAvaloniaApp\obj\Debug\net9.0\refint\MyAvaloniaApp.dll
D:\Log\MyAvaloniaApp\obj\Debug\net9.0\MyAvaloniaApp.pdb
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\MyAvaloniaApp.exe
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\appsettings.json
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\MyAvaloniaApp.deps.json
@ -15,6 +25,7 @@ D:\Log\MyAvaloniaApp\bin\Debug\net9.0\Avalonia.MicroCom.dll
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\Avalonia.OpenGL.dll
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\Avalonia.Vulkan.dll
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\Avalonia.dll
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\AvaloniaEdit.dll
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\Avalonia.Controls.ColorPicker.dll
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\Avalonia.Desktop.dll
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\Avalonia.Diagnostics.dll
@ -29,6 +40,7 @@ D:\Log\MyAvaloniaApp\bin\Debug\net9.0\Avalonia.Themes.Simple.dll
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\Avalonia.Win32.Automation.dll
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\Avalonia.Win32.dll
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\Avalonia.X11.dll
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\AvaloniaEdit.TextMate.dll
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\DynamicData.dll
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\HarfBuzzSharp.dll
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\HeroIconsAvalonia.dll
@ -60,11 +72,14 @@ D:\Log\MyAvaloniaApp\bin\Debug\net9.0\Microsoft.Extensions.Logging.EventSource.d
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\Microsoft.Extensions.Options.dll
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\Microsoft.Extensions.Options.ConfigurationExtensions.dll
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\Microsoft.Extensions.Primitives.dll
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\Onigwrap.dll
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\ReactiveUI.dll
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\SkiaSharp.dll
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\Splat.dll
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\System.Diagnostics.EventLog.dll
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\System.Reactive.dll
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\TextMateSharp.dll
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\TextMateSharp.Grammars.dll
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\Tmds.DBus.Protocol.dll
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\runtimes\win-arm64\native\av_libglesv2.dll
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\runtimes\win-x64\native\av_libglesv2.dll
@ -85,6 +100,14 @@ D:\Log\MyAvaloniaApp\bin\Debug\net9.0\runtimes\osx\native\libHarfBuzzSharp.dylib
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\runtimes\win-arm64\native\libHarfBuzzSharp.dll
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\runtimes\win-x64\native\libHarfBuzzSharp.dll
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\runtimes\win-x86\native\libHarfBuzzSharp.dll
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\runtimes\linux-arm64\native\libonigwrap.so
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\runtimes\linux-musl-arm64\native\libonigwrap.so
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\runtimes\linux-musl-x64\native\libonigwrap.so
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\runtimes\linux-x64\native\libonigwrap.so
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\runtimes\osx\native\libonigwrap.dylib
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\runtimes\win-arm64\native\libonigwrap.dll
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\runtimes\win-x64\native\libonigwrap.dll
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\runtimes\win-x86\native\libonigwrap.dll
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\runtimes\linux-arm\native\libSkiaSharp.so
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\runtimes\linux-arm64\native\libSkiaSharp.so
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\runtimes\linux-musl-x64\native\libSkiaSharp.so
@ -95,16 +118,7 @@ D:\Log\MyAvaloniaApp\bin\Debug\net9.0\runtimes\win-x64\native\libSkiaSharp.dll
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\runtimes\win-x86\native\libSkiaSharp.dll
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\runtimes\win\lib\net9.0\System.Diagnostics.EventLog.Messages.dll
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\runtimes\win\lib\net9.0\System.Diagnostics.EventLog.dll
D:\Log\MyAvaloniaApp\obj\Debug\net9.0\MyAvaloniaApp.csproj.AssemblyReference.cache
D:\Log\MyAvaloniaApp\obj\Debug\net9.0\Avalonia\Resources.Inputs.cache
D:\Log\MyAvaloniaApp\obj\Debug\net9.0\Avalonia\resources
D:\Log\MyAvaloniaApp\obj\Debug\net9.0\MyAvaloniaApp.GeneratedMSBuildEditorConfig.editorconfig
D:\Log\MyAvaloniaApp\obj\Debug\net9.0\MyAvaloniaApp.AssemblyInfoInputs.cache
D:\Log\MyAvaloniaApp\obj\Debug\net9.0\MyAvaloniaApp.AssemblyInfo.cs
D:\Log\MyAvaloniaApp\obj\Debug\net9.0\MyAvaloniaApp.csproj.CoreCompileInputs.cache
D:\Log\MyAvaloniaApp\obj\Debug\net9.0\MyAvalon.9DF80BA1.Up2Date
D:\Log\MyAvaloniaApp\obj\Debug\net9.0\MyAvaloniaApp.dll
D:\Log\MyAvaloniaApp\obj\Debug\net9.0\refint\MyAvaloniaApp.dll
D:\Log\MyAvaloniaApp\obj\Debug\net9.0\MyAvaloniaApp.pdb
D:\Log\MyAvaloniaApp\obj\Debug\net9.0\MyAvaloniaApp.genruntimeconfig.cache
D:\Log\MyAvaloniaApp\obj\Debug\net9.0\ref\MyAvaloniaApp.dll
D:\Log\MyAvaloniaApp\bin\Debug\net9.0\DialogHost.Avalonia.dll

BIN
obj/Debug/net9.0/MyAvaloniaApp.dll

Binary file not shown.

BIN
obj/Debug/net9.0/MyAvaloniaApp.pdb

Binary file not shown.

BIN
obj/Debug/net9.0/apphost.exe

Binary file not shown.

BIN
obj/Debug/net9.0/ref/MyAvaloniaApp.dll

Binary file not shown.

BIN
obj/Debug/net9.0/refint/MyAvaloniaApp.dll

Binary file not shown.

12
obj/MyAvaloniaApp.csproj.nuget.dgspec.json

@ -75,6 +75,18 @@
"target": "Package",
"version": "[11.3.6, )"
},
"AvaloniaEdit": {
"target": "Package",
"version": "[0.10.12, )"
},
"AvaloniaEdit.TextMate": {
"target": "Package",
"version": "[11.3.0, )"
},
"DialogHost.Avalonia": {
"target": "Package",
"version": "[0.9.3, )"
},
"HeroIcons.Avalonia": {
"target": "Package",
"version": "[1.0.4, )"

1
obj/MyAvaloniaApp.csproj.nuget.g.props

@ -14,6 +14,7 @@
<SourceRoot Include="C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\" />
</ItemGroup>
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<Import Project="$(NuGetPackageRoot)onigwrap\1.0.6\buildTransitive\netstandard1.0\Onigwrap.props" Condition="Exists('$(NuGetPackageRoot)onigwrap\1.0.6\buildTransitive\netstandard1.0\Onigwrap.props')" />
<Import Project="$(NuGetPackageRoot)skiasharp.nativeassets.webassembly\2.88.9\buildTransitive\netstandard1.0\SkiaSharp.NativeAssets.WebAssembly.props" Condition="Exists('$(NuGetPackageRoot)skiasharp.nativeassets.webassembly\2.88.9\buildTransitive\netstandard1.0\SkiaSharp.NativeAssets.WebAssembly.props')" />
<Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.usersecrets\9.0.0\buildTransitive\net8.0\Microsoft.Extensions.Configuration.UserSecrets.props" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.usersecrets\9.0.0\buildTransitive\net8.0\Microsoft.Extensions.Configuration.UserSecrets.props')" />
<Import Project="$(NuGetPackageRoot)avalonia\11.3.7\buildTransitive\Avalonia.props" Condition="Exists('$(NuGetPackageRoot)avalonia\11.3.7\buildTransitive\Avalonia.props')" />

2
obj/MyAvaloniaApp.csproj.nuget.g.targets

@ -1,6 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<Import Project="$(NuGetPackageRoot)system.text.json\8.0.5\buildTransitive\net6.0\System.Text.Json.targets" Condition="Exists('$(NuGetPackageRoot)system.text.json\8.0.5\buildTransitive\net6.0\System.Text.Json.targets')" />
<Import Project="$(NuGetPackageRoot)onigwrap\1.0.6\buildTransitive\netstandard1.0\Onigwrap.targets" Condition="Exists('$(NuGetPackageRoot)onigwrap\1.0.6\buildTransitive\netstandard1.0\Onigwrap.targets')" />
<Import Project="$(NuGetPackageRoot)skiasharp.nativeassets.webassembly\2.88.9\buildTransitive\netstandard1.0\SkiaSharp.NativeAssets.WebAssembly.targets" Condition="Exists('$(NuGetPackageRoot)skiasharp.nativeassets.webassembly\2.88.9\buildTransitive\netstandard1.0\SkiaSharp.NativeAssets.WebAssembly.targets')" />
<Import Project="$(NuGetPackageRoot)microsoft.extensions.options\9.0.0\buildTransitive\net8.0\Microsoft.Extensions.Options.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.options\9.0.0\buildTransitive\net8.0\Microsoft.Extensions.Options.targets')" />
<Import Project="$(NuGetPackageRoot)microsoft.extensions.configuration.binder\9.0.0\buildTransitive\netstandard2.0\Microsoft.Extensions.Configuration.Binder.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.configuration.binder\9.0.0\buildTransitive\netstandard2.0\Microsoft.Extensions.Configuration.Binder.targets')" />

2
obj/Release/net9.0/linux-x64/Avalonia/Resources.Inputs.cache

@ -1 +1 @@
9067b32390c3062370b40b528526728b26c9b8c7a8e74dc8af0e7cbbcae48cc3
c4c294d354420aa37ac28b90b6579ec6e118659488679dbc5a071ae852a5bade

1
obj/Release/net9.0/linux-x64/Avalonia/references

@ -22,6 +22,7 @@ C:\Users\changeself\.nuget\packages\avalonia.win32\11.3.7\lib\net8.0\Avalonia.Wi
C:\Users\changeself\.nuget\packages\avalonia.x11\11.3.7\lib\net8.0\Avalonia.X11.dll
C:\Users\changeself\.nuget\packages\dynamicdata\8.4.1\lib\net8.0\DynamicData.dll
C:\Users\changeself\.nuget\packages\harfbuzzsharp\8.3.1.1\lib\net8.0\HarfBuzzSharp.dll
C:\Users\changeself\.nuget\packages\heroicons.avalonia\1.0.4\lib\netstandard2.0\HeroIconsAvalonia.dll
C:\Users\changeself\.nuget\packages\microcom.runtime\0.11.0\lib\net5.0\MicroCom.Runtime.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\9.0.7\ref\net9.0\Microsoft.CSharp.dll
C:\Users\changeself\.nuget\packages\microsoft.extensions.configuration.abstractions\9.0.0\lib\net9.0\Microsoft.Extensions.Configuration.Abstractions.dll

BIN
obj/Release/net9.0/linux-x64/Avalonia/resources

Binary file not shown.

2
obj/Release/net9.0/linux-x64/MyAvaloniaApp.AssemblyInfo.cs

@ -13,7 +13,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("MyAvaloniaApp")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+a05a81acc78797ebd427e6d6aed03156b1343493")]
[assembly: System.Reflection.AssemblyProductAttribute("MyAvaloniaApp")]
[assembly: System.Reflection.AssemblyTitleAttribute("MyAvaloniaApp")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]

2
obj/Release/net9.0/linux-x64/MyAvaloniaApp.AssemblyInfoInputs.cache

@ -1 +1 @@
3ff08d4c1a2a8d89d5383dc9190935873755fc8f8e541fbc6f37c55291a0c028
cb222c9b1a7e6b974825e9997ad1ff3ee2ea91da885ea5a9eff2111dc7b6c82a

12
obj/Release/net9.0/linux-x64/MyAvaloniaApp.GeneratedMSBuildEditorConfig.editorconfig

@ -27,12 +27,24 @@ build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
[D:/Log/MyAvaloniaApp/MainWindow.axaml]
build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
[D:/Log/MyAvaloniaApp/Resources/Colors.axaml]
build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
[D:/Log/MyAvaloniaApp/Resources/Strings.en.axaml]
build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
[D:/Log/MyAvaloniaApp/Resources/Strings.zh-CN.axaml]
build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
[D:/Log/MyAvaloniaApp/Views/Pages/DashboardPageView.axaml]
build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
[D:/Log/MyAvaloniaApp/Views/Pages/HelpPageView.axaml]
build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
[D:/Log/MyAvaloniaApp/Views/Pages/IconsPageView.axaml]
build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
[D:/Log/MyAvaloniaApp/Views/Pages/ReportsPageView.axaml]
build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml

BIN
obj/Release/net9.0/linux-x64/MyAvaloniaApp.assets.cache

Binary file not shown.

BIN
obj/Release/net9.0/linux-x64/MyAvaloniaApp.csproj.AssemblyReference.cache

Binary file not shown.

2
obj/Release/net9.0/linux-x64/MyAvaloniaApp.csproj.CoreCompileInputs.cache

@ -1 +1 @@
40d226aca90a8aa1a045c119f771f7c4b7a24c5170b7abdc97c79504e72819c2
b62578fea8a18dfe5105a2e709cb315832fb6358bebf41ee063ccc3efd6c5c11

1
obj/Release/net9.0/linux-x64/MyAvaloniaApp.csproj.FileListAbsolute.txt

@ -261,3 +261,4 @@ D:\Log\MyAvaloniaApp\bin\Release\net9.0\linux-x64\Microsoft.Extensions.Options.d
D:\Log\MyAvaloniaApp\bin\Release\net9.0\linux-x64\Microsoft.Extensions.Options.ConfigurationExtensions.dll
D:\Log\MyAvaloniaApp\bin\Release\net9.0\linux-x64\Microsoft.Extensions.Primitives.dll
D:\Log\MyAvaloniaApp\bin\Release\net9.0\linux-x64\System.Diagnostics.EventLog.dll
D:\Log\MyAvaloniaApp\bin\Release\net9.0\linux-x64\HeroIconsAvalonia.dll

19
obj/Release/net9.0/linux-x64/MyAvaloniaApp.deps.json

@ -15,6 +15,7 @@
"Avalonia.Fonts.Inter": "11.3.6",
"Avalonia.ReactiveUI": "11.3.7",
"Avalonia.Themes.Fluent": "11.3.6",
"HeroIcons.Avalonia": "1.0.4",
"Microsoft.Extensions.Configuration": "9.0.0",
"Microsoft.Extensions.Configuration.CommandLine": "9.0.0",
"Microsoft.Extensions.Configuration.EnvironmentVariables": "9.0.0",
@ -990,6 +991,17 @@
"HarfBuzzSharp.NativeAssets.macOS/8.3.1.1": {},
"HarfBuzzSharp.NativeAssets.WebAssembly/8.3.1.1": {},
"HarfBuzzSharp.NativeAssets.Win32/8.3.1.1": {},
"HeroIcons.Avalonia/1.0.4": {
"dependencies": {
"Avalonia": "11.3.7"
},
"runtime": {
"lib/netstandard2.0/HeroIconsAvalonia.dll": {
"assemblyVersion": "1.0.4.0",
"fileVersion": "1.0.4.0"
}
}
},
"MicroCom.Runtime/0.11.0": {
"runtime": {
"lib/net5.0/MicroCom.Runtime.dll": {
@ -1599,6 +1611,13 @@
"path": "harfbuzzsharp.nativeassets.win32/8.3.1.1",
"hashPath": "harfbuzzsharp.nativeassets.win32.8.3.1.1.nupkg.sha512"
},
"HeroIcons.Avalonia/1.0.4": {
"type": "package",
"serviceable": true,
"sha512": "sha512-wOJIOvexOPubqvxzYqmzNHLup/j3K5n6cEfaeszWy2X8iiVkDM8CiHZU7y/N16mbQvhBHc1zw0QnUFhHN63v4A==",
"path": "heroicons.avalonia/1.0.4",
"hashPath": "heroicons.avalonia.1.0.4.nupkg.sha512"
},
"MicroCom.Runtime/0.11.0": {
"type": "package",
"serviceable": true,

BIN
obj/Release/net9.0/linux-x64/MyAvaloniaApp.dll

Binary file not shown.

BIN
obj/Release/net9.0/linux-x64/MyAvaloniaApp.pdb

Binary file not shown.

1
obj/Release/net9.0/linux-x64/PublishOutputs.6ca985d4d5.txt

@ -211,6 +211,7 @@ D:\Log\MyAvaloniaApp\publish\linux-x64\Avalonia.Win32.dll
D:\Log\MyAvaloniaApp\publish\linux-x64\Avalonia.X11.dll
D:\Log\MyAvaloniaApp\publish\linux-x64\DynamicData.dll
D:\Log\MyAvaloniaApp\publish\linux-x64\HarfBuzzSharp.dll
D:\Log\MyAvaloniaApp\publish\linux-x64\HeroIconsAvalonia.dll
D:\Log\MyAvaloniaApp\publish\linux-x64\MicroCom.Runtime.dll
D:\Log\MyAvaloniaApp\publish\linux-x64\Microsoft.Extensions.Configuration.dll
D:\Log\MyAvaloniaApp\publish\linux-x64\Microsoft.Extensions.Configuration.Abstractions.dll

BIN
obj/Release/net9.0/linux-x64/ref/MyAvaloniaApp.dll

Binary file not shown.

BIN
obj/Release/net9.0/linux-x64/refint/MyAvaloniaApp.dll

Binary file not shown.

2103
obj/project.assets.json

File diff suppressed because it is too large

32
obj/project.nuget.cache

@ -1,11 +1,12 @@
{
"version": 2,
"dgSpecHash": "jWmi64xCcZA=",
"dgSpecHash": "GqmepY5QBuE=",
"success": true,
"projectFilePath": "D:\\Log\\MyAvaloniaApp\\MyAvaloniaApp.csproj",
"expectedPackageFiles": [
"C:\\Users\\changeself\\.nuget\\packages\\avalonia\\11.3.7\\avalonia.11.3.7.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\avalonia.angle.windows.natives\\2.1.25547.20250602\\avalonia.angle.windows.natives.2.1.25547.20250602.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\avalonia.avaloniaedit\\11.3.0\\avalonia.avaloniaedit.11.3.0.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\avalonia.buildservices\\11.3.1\\avalonia.buildservices.11.3.1.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\avalonia.controls.colorpicker\\11.3.6\\avalonia.controls.colorpicker.11.3.6.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\avalonia.desktop\\11.3.7\\avalonia.desktop.11.3.7.nupkg.sha512",
@ -20,6 +21,9 @@
"C:\\Users\\changeself\\.nuget\\packages\\avalonia.themes.simple\\11.3.6\\avalonia.themes.simple.11.3.6.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\avalonia.win32\\11.3.7\\avalonia.win32.11.3.7.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\avalonia.x11\\11.3.7\\avalonia.x11.11.3.7.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\avaloniaedit\\0.10.12\\avaloniaedit.0.10.12.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\avaloniaedit.textmate\\11.3.0\\avaloniaedit.textmate.11.3.0.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\dialoghost.avalonia\\0.9.3\\dialoghost.avalonia.0.9.3.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\dynamicdata\\8.4.1\\dynamicdata.8.4.1.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\harfbuzzsharp\\8.3.1.1\\harfbuzzsharp.8.3.1.1.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\harfbuzzsharp.nativeassets.linux\\8.3.1.1\\harfbuzzsharp.nativeassets.linux.8.3.1.1.nupkg.sha512",
@ -55,6 +59,9 @@
"C:\\Users\\changeself\\.nuget\\packages\\microsoft.extensions.options\\9.0.0\\microsoft.extensions.options.9.0.0.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\microsoft.extensions.options.configurationextensions\\9.0.0\\microsoft.extensions.options.configurationextensions.9.0.0.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\microsoft.extensions.primitives\\9.0.0\\microsoft.extensions.primitives.9.0.0.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\microsoft.netcore.platforms\\1.1.0\\microsoft.netcore.platforms.1.1.0.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\microsoft.netcore.targets\\1.1.0\\microsoft.netcore.targets.1.1.0.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\onigwrap\\1.0.6\\onigwrap.1.0.6.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\reactiveui\\20.1.1\\reactiveui.20.1.1.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\skiasharp\\2.88.9\\skiasharp.2.88.9.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\skiasharp.nativeassets.linux\\2.88.9\\skiasharp.nativeassets.linux.2.88.9.nupkg.sha512",
@ -62,10 +69,33 @@
"C:\\Users\\changeself\\.nuget\\packages\\skiasharp.nativeassets.webassembly\\2.88.9\\skiasharp.nativeassets.webassembly.2.88.9.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\skiasharp.nativeassets.win32\\2.88.9\\skiasharp.nativeassets.win32.2.88.9.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\splat\\15.1.1\\splat.15.1.1.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\system.collections\\4.3.0\\system.collections.4.3.0.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\system.collections.immutable\\1.6.0\\system.collections.immutable.1.6.0.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\system.componentmodel.annotations\\5.0.0\\system.componentmodel.annotations.5.0.0.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\system.diagnostics.debug\\4.3.0\\system.diagnostics.debug.4.3.0.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\system.diagnostics.eventlog\\9.0.0\\system.diagnostics.eventlog.9.0.0.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\system.globalization\\4.3.0\\system.globalization.4.3.0.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\system.io\\4.3.0\\system.io.4.3.0.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\system.io.filesystem\\4.3.0\\system.io.filesystem.4.3.0.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\system.io.filesystem.primitives\\4.3.0\\system.io.filesystem.primitives.4.3.0.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\system.io.pipelines\\8.0.0\\system.io.pipelines.8.0.0.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\system.reactive\\6.0.1\\system.reactive.6.0.1.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\system.reflection\\4.3.0\\system.reflection.4.3.0.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\system.reflection.primitives\\4.3.0\\system.reflection.primitives.4.3.0.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\system.resources.resourcemanager\\4.3.0\\system.resources.resourcemanager.4.3.0.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\system.runtime\\4.3.0\\system.runtime.4.3.0.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\system.runtime.extensions\\4.3.0\\system.runtime.extensions.4.3.0.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\system.runtime.handles\\4.3.0\\system.runtime.handles.4.3.0.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\system.runtime.interopservices\\4.3.0\\system.runtime.interopservices.4.3.0.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\system.text.encoding\\4.3.0\\system.text.encoding.4.3.0.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\system.text.encoding.extensions\\4.3.0\\system.text.encoding.extensions.4.3.0.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\system.text.json\\8.0.5\\system.text.json.8.0.5.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\system.text.regularexpressions\\4.3.0\\system.text.regularexpressions.4.3.0.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\system.threading.tasks\\4.3.0\\system.threading.tasks.4.3.0.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\system.threading.tasks.extensions\\4.3.0\\system.threading.tasks.extensions.4.3.0.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\system.xml.readerwriter\\4.3.1\\system.xml.readerwriter.4.3.1.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\textmatesharp\\1.0.65\\textmatesharp.1.0.65.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\textmatesharp.grammars\\1.0.65\\textmatesharp.grammars.1.0.65.nupkg.sha512",
"C:\\Users\\changeself\\.nuget\\packages\\tmds.dbus.protocol\\0.21.2\\tmds.dbus.protocol.0.21.2.nupkg.sha512"
],
"logs": []

19
publish/linux-x64/MyAvaloniaApp.deps.json

@ -15,6 +15,7 @@
"Avalonia.Fonts.Inter": "11.3.6",
"Avalonia.ReactiveUI": "11.3.7",
"Avalonia.Themes.Fluent": "11.3.6",
"HeroIcons.Avalonia": "1.0.4",
"Microsoft.Extensions.Configuration": "9.0.0",
"Microsoft.Extensions.Configuration.CommandLine": "9.0.0",
"Microsoft.Extensions.Configuration.EnvironmentVariables": "9.0.0",
@ -990,6 +991,17 @@
"HarfBuzzSharp.NativeAssets.macOS/8.3.1.1": {},
"HarfBuzzSharp.NativeAssets.WebAssembly/8.3.1.1": {},
"HarfBuzzSharp.NativeAssets.Win32/8.3.1.1": {},
"HeroIcons.Avalonia/1.0.4": {
"dependencies": {
"Avalonia": "11.3.7"
},
"runtime": {
"lib/netstandard2.0/HeroIconsAvalonia.dll": {
"assemblyVersion": "1.0.4.0",
"fileVersion": "1.0.4.0"
}
}
},
"MicroCom.Runtime/0.11.0": {
"runtime": {
"lib/net5.0/MicroCom.Runtime.dll": {
@ -1599,6 +1611,13 @@
"path": "harfbuzzsharp.nativeassets.win32/8.3.1.1",
"hashPath": "harfbuzzsharp.nativeassets.win32.8.3.1.1.nupkg.sha512"
},
"HeroIcons.Avalonia/1.0.4": {
"type": "package",
"serviceable": true,
"sha512": "sha512-wOJIOvexOPubqvxzYqmzNHLup/j3K5n6cEfaeszWy2X8iiVkDM8CiHZU7y/N16mbQvhBHc1zw0QnUFhHN63v4A==",
"path": "heroicons.avalonia/1.0.4",
"hashPath": "heroicons.avalonia.1.0.4.nupkg.sha512"
},
"MicroCom.Runtime/0.11.0": {
"type": "package",
"serviceable": true,

BIN
publish/linux-x64/MyAvaloniaApp.dll

Binary file not shown.

BIN
publish/linux-x64/MyAvaloniaApp.pdb

Binary file not shown.
Loading…
Cancel
Save