├── .github
└── FUNDING.yml
├── .gitignore
├── .idea
└── .idea.Xamlade
│ └── .idea
│ └── workspace.xml
├── .vscode
└── launch.json
├── App.axaml
├── App.axaml.cs
├── Avalonia.AXAML.LanguageServer.Log20231031.txt
├── Avalonia.GIF
├── Avalonia.Gif.deps.json
├── Avalonia.Gif.dll
├── Avalonia.Gif.pdb
└── publish
│ ├── Avalonia.Base.dll
│ ├── Avalonia.Controls.dll
│ ├── Avalonia.DesignerSupport.dll
│ ├── Avalonia.Dialogs.dll
│ ├── Avalonia.Gif.deps.json
│ ├── Avalonia.Gif.dll
│ ├── Avalonia.Gif.pdb
│ ├── Avalonia.Markup.Xaml.dll
│ ├── Avalonia.Markup.dll
│ ├── Avalonia.Metal.dll
│ ├── Avalonia.MicroCom.dll
│ ├── Avalonia.OpenGL.dll
│ ├── Avalonia.Remote.Protocol.dll
│ ├── Avalonia.dll
│ └── MicroCom.Runtime.dll
├── ComboboxStyle.axaml
├── Extensions
├── Attributes
│ └── ReflectionCall.cs
├── Color
│ ├── MyColorButton.cs
│ └── MyColorPickerWindow.cs
├── Constants.cs
├── GlobalKeyListener.cs
├── History.cs
├── Statistics.cs
├── Types
│ ├── State.cs
│ ├── jCoordinates.cs
│ └── jSize.cs
└── Utils.cs
├── FunctionalAreas
├── ElementGenerator.cs
├── HierarchyControl.cs
├── PropertiesControl.cs
├── Workspace.cs
└── WorkspaceManager.cs
├── IgnTypeConverter.cs
├── IgnoredTypeConverter.cs
├── LICENSE
├── LinkWorkers
├── Beholder.cs
└── BeholderTimeAnalisys.cs
├── Notes.txt
├── ProgramWindow
├── MainWindow.axaml
├── MainWindow.axaml.cs
├── Names.cs
└── Program.cs
├── README.md
├── RES
└── loading.gif
├── Reflection
├── JTypeInfo.cs
├── Reflector.cs
└── TypeCast.cs
├── SettingsWorkers
├── FilesystemService
│ └── JSONBus.cs
├── SettingsModule.cs
└── SettingsTypes
│ ├── JControlDefaults.cs
│ └── Settings.cs
├── TestWindow.axaml
├── TestWindow.axaml.cs
├── XAMLWorkers
├── Broadcast.cs
├── ImportXAML.cs
├── TestWindow.cs
└── XAMLGenerator.cs
├── Xamlade.csproj
├── Xamlade.png
├── Xamlade.sln
├── Xamlade.sln.DotSettings.user
├── Xamlade2.png
├── Xamlade2.png~
├── app.manifest
├── assets
├── Icon.png
├── Icon.png.kra
├── Icon.png1.kra
├── Icon.png~
├── Icon1.png
├── Icon1.png~
├── Xamlade.png
├── Xamlade_logo.png
├── Xamlade_logo1.png
├── Xamlade_logo_2.png
├── Xamlade_logo_2.png.kra
├── Xamlade_logo_2.png1.kra
├── Xamlade_logo_2.png~
├── Xamlade_logo_21.png
├── Xamlade_logo_21.png~
├── debug.png
├── debug.png.kra
├── debug.png1.kra
├── debug.png~
├── debug1.png
├── debug1.png~
├── dexamlize.png
├── dexamlize.png.kra
├── dexamlize.png1.kra
├── dexamlize.png~
├── dexamlize1.png
├── dexamlize1.png~
├── import-export.png
├── import-export1.png
├── redo.png
├── redo.png~
├── redo1.png
├── redo1.png~
├── remove.png
├── remove.png.kra
├── remove.png1.kra
├── remove.png~
├── remove1.png
├── remove1.png~
├── run.png
├── run.png.kra
├── run.png1.kra
├── run.png~
├── run1.png
├── run1.png~
├── settings.png
├── settings.png.kra
├── settings.png1.kra
├── settings.png~
├── settings1.png
├── settings1.png~
├── shelved.patch
├── undo.png
├── undo.png~
├── undo1.png
├── undo1.png~
├── xamlize.png
├── xamlize.png.kra
├── xamlize.png1.kra
├── xamlize.png~
├── xamlize1.png
└── xamlize1.png~
├── bin
└── Debug
│ └── net9.0
│ ├── XamladeDemo
│ ├── .idea
│ │ └── .idea.XamladeDemo
│ │ │ └── .idea
│ │ │ ├── .gitignore
│ │ │ ├── avalonia.xml
│ │ │ ├── indexLayout.xml
│ │ │ └── vcs.xml
│ ├── App.axaml
│ ├── App.axaml.cs
│ ├── App.axaml1
│ ├── Avalonia.AXAML.LanguageServer.Log20240721.txt
│ ├── Avalonia.AXAML.LanguageServer.Log20240731.txt
│ ├── Avalonia.AXAML.LanguageServer.Log20240907.txt
│ ├── BUILD.sh
│ ├── MainWindow.axaml
│ ├── MainWindow.axaml.cs
│ ├── MainWindow.axaml1
│ ├── Program.cs
│ ├── README.md
│ ├── RUN.sh
│ ├── XamladeDemo.csproj
│ ├── XamladeDemo.sln
│ ├── app.manifest
│ ├── assets
│ │ ├── -4sG5ytVcL4.jpg
│ │ ├── Icon.png
│ │ ├── Icon.png.kra
│ │ ├── Icon.png1.kra
│ │ ├── Icon.png~
│ │ ├── Icon1.png
│ │ ├── Icon1.png~
│ │ ├── Xamlade.png
│ │ ├── Xamlade_logo.png
│ │ ├── Xamlade_logo1.png
│ │ ├── Xamlade_logo_2.png
│ │ ├── Xamlade_logo_2.png.kra
│ │ ├── Xamlade_logo_2.png1.kra
│ │ ├── Xamlade_logo_2.png~
│ │ ├── Xamlade_logo_21.png
│ │ ├── Xamlade_logo_21.png~
│ │ ├── debug.png
│ │ ├── debug.png.kra
│ │ ├── debug.png1.kra
│ │ ├── debug.png~
│ │ ├── debug1.png
│ │ ├── debug1.png~
│ │ ├── dexamlize.png
│ │ ├── dexamlize.png.kra
│ │ ├── dexamlize.png1.kra
│ │ ├── dexamlize.png~
│ │ ├── dexamlize1.png
│ │ ├── dexamlize1.png~
│ │ ├── fuck.jpg
│ │ ├── import-export.png
│ │ ├── import-export1.png
│ │ ├── photo_2021-12-13_00-44-53.jpg
│ │ ├── redo.png
│ │ ├── redo.png~
│ │ ├── redo1.png
│ │ ├── redo1.png~
│ │ ├── remove.png
│ │ ├── remove.png.kra
│ │ ├── remove.png1.kra
│ │ ├── remove.png~
│ │ ├── remove1.png
│ │ ├── remove1.png~
│ │ ├── run.png
│ │ ├── run.png.kra
│ │ ├── run.png1.kra
│ │ ├── run.png~
│ │ ├── run1.png
│ │ ├── run1.png~
│ │ ├── settings.png
│ │ ├── settings.png.kra
│ │ ├── settings.png1.kra
│ │ ├── settings.png~
│ │ ├── settings1.png
│ │ ├── settings1.png~
│ │ ├── shelved.patch
│ │ ├── undo.png
│ │ ├── undo.png~
│ │ ├── undo1.png
│ │ ├── undo1.png~
│ │ ├── xamlize.png
│ │ ├── xamlize.png.kra
│ │ ├── xamlize.png1.kra
│ │ ├── xamlize.png~
│ │ ├── xamlize1.png
│ │ ├── xamlize1.png~
│ │ ├── Снимок экрана_2023-11-11_04-09-11.png
│ │ └── Снимок экрана_2024-04-17_00-51-19.png
│ └── global.json
│ └── assets
│ ├── -4sG5ytVcL4.jpg
│ ├── Icon.png
│ ├── Icon.png.kra
│ ├── Icon.png1.kra
│ ├── Icon.png~
│ ├── Icon1.png
│ ├── Icon1.png~
│ ├── Xamlade.png
│ ├── Xamlade_logo.png
│ ├── Xamlade_logo1.png
│ ├── Xamlade_logo_2.png
│ ├── Xamlade_logo_2.png.kra
│ ├── Xamlade_logo_2.png1.kra
│ ├── Xamlade_logo_2.png~
│ ├── Xamlade_logo_21.png
│ ├── Xamlade_logo_21.png~
│ ├── debug.png
│ ├── debug.png.kra
│ ├── debug.png1.kra
│ ├── debug.png~
│ ├── debug1.png
│ ├── debug1.png~
│ ├── dexamlize.png
│ ├── dexamlize.png.kra
│ ├── dexamlize.png1.kra
│ ├── dexamlize.png~
│ ├── dexamlize1.png
│ ├── dexamlize1.png~
│ ├── import-export.png
│ ├── import-export1.png
│ ├── redo.png
│ ├── redo.png~
│ ├── redo1.png
│ ├── redo1.png~
│ ├── remove.png
│ ├── remove.png.kra
│ ├── remove.png1.kra
│ ├── remove.png~
│ ├── remove1.png
│ ├── remove1.png~
│ ├── run.png
│ ├── run.png.kra
│ ├── run.png1.kra
│ ├── run.png~
│ ├── run1.png
│ ├── run1.png~
│ ├── settings.png
│ ├── settings.png.kra
│ ├── settings.png1.kra
│ ├── settings.png~
│ ├── settings1.png
│ ├── settings1.png~
│ ├── shelved.patch
│ ├── undo.png
│ ├── undo.png~
│ ├── undo1.png
│ ├── undo1.png~
│ ├── xamlize.png
│ ├── xamlize.png.kra
│ ├── xamlize.png1.kra
│ ├── xamlize.png~
│ ├── xamlize1.png
│ ├── xamlize1.png~
│ └── Снимок экрана_2024-04-17_00-51-19.png
├── global.json
├── googleca45d2d676594602.html
├── jClasses
├── Containers
│ ├── jBorder.cs
│ ├── jCanvas.cs
│ ├── jComboBox.cs
│ ├── jComboBoxItem.cs
│ ├── jDockPanel.cs
│ ├── jGrid.cs
│ ├── jMenu.cs
│ ├── jMenuItem.cs
│ └── jStackPanel.cs
├── Elements
│ ├── jButton.cs
│ ├── jCheckBox.cs
│ ├── jImage.cs
│ ├── jProgressBar.cs
│ ├── jRadioButton.cs
│ ├── jSlider.cs
│ ├── jTextBlock.cs
│ ├── jTextBox.cs
│ └── jToggleButton.cs
├── Enums
│ └── jElementType.cs
├── Interfaces
│ ├── JBroadcastHandler.cs
│ ├── JChildContainer.cs
│ ├── JControl.cs
│ ├── JProperties.cs
│ └── JSelectable.cs
├── JBaseStatic.cs
├── Managers
│ └── JCopy.cs
└── ScottPlot
│ └── jAvaplot.cs
├── mClasses
├── Interfaces
│ └── MControl.cs
├── mBorder.cs
├── mColumnDefinition.cs
├── mGenButton.cs
├── mRowDefinition.cs
└── mTreeViewItem.cs
└── qodana.yaml
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 |
3 | btc: '1D8a6raKEGb7koaszYNys3bzecfWVHc4tT'
4 | ton: 'UQDhp6tiqGEFjN4lwWxkjIMYtpsBdrN-76ijICsWdK44pHoy'
5 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | obj/
2 | /packages/
3 | riderModule.iml
4 | /_ReSharper.Caches/
--------------------------------------------------------------------------------
/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | {
2 | // Используйте IntelliSense, чтобы узнать о возможных атрибутах.
3 | // Наведите указатель мыши, чтобы просмотреть описания существующих атрибутов.
4 | // Для получения дополнительной информации посетите: https://go.microsoft.com/fwlink/?linkid=830387
5 | "version": "0.2.0",
6 | "configurations": []
7 | }
--------------------------------------------------------------------------------
/App.axaml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/App.axaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.IO;
3 | using Avalonia;
4 | using Avalonia.Controls.ApplicationLifetimes;
5 | using Avalonia.Markup.Xaml;
6 |
7 | namespace Xamlade;
8 |
9 | public class App : Application
10 | {
11 |
12 | public override void Initialize()
13 | {
14 | AvaloniaXamlLoader.Load(this);
15 | }
16 |
17 |
18 | public override void OnFrameworkInitializationCompleted()
19 | {
20 | if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
21 | {
22 | desktop.MainWindow = new ProgramWindow.MainWindow();
23 | }
24 |
25 | base.OnFrameworkInitializationCompleted();
26 | }
27 | }
--------------------------------------------------------------------------------
/Avalonia.GIF/Avalonia.Gif.deps.json:
--------------------------------------------------------------------------------
1 | {
2 | "runtimeTarget": {
3 | "name": ".NETCoreApp,Version=v8.0",
4 | "signature": ""
5 | },
6 | "compilationOptions": {},
7 | "targets": {
8 | ".NETCoreApp,Version=v8.0": {
9 | "Avalonia.Gif/1.0.0": {
10 | "dependencies": {
11 | "Avalonia": "11.0.5"
12 | },
13 | "runtime": {
14 | "Avalonia.Gif.dll": {}
15 | }
16 | },
17 | "Avalonia/11.0.5": {
18 | "dependencies": {
19 | "Avalonia.BuildServices": "0.0.29",
20 | "Avalonia.Remote.Protocol": "11.0.5",
21 | "MicroCom.Runtime": "0.11.0",
22 | "System.ComponentModel.Annotations": "4.5.0"
23 | },
24 | "runtime": {
25 | "lib/net6.0/Avalonia.Base.dll": {
26 | "assemblyVersion": "11.0.5.0",
27 | "fileVersion": "11.0.5.0"
28 | },
29 | "lib/net6.0/Avalonia.Controls.dll": {
30 | "assemblyVersion": "11.0.5.0",
31 | "fileVersion": "11.0.5.0"
32 | },
33 | "lib/net6.0/Avalonia.DesignerSupport.dll": {
34 | "assemblyVersion": "0.7.0.0",
35 | "fileVersion": "0.7.0.0"
36 | },
37 | "lib/net6.0/Avalonia.Dialogs.dll": {
38 | "assemblyVersion": "11.0.5.0",
39 | "fileVersion": "11.0.5.0"
40 | },
41 | "lib/net6.0/Avalonia.Markup.Xaml.dll": {
42 | "assemblyVersion": "11.0.5.0",
43 | "fileVersion": "11.0.5.0"
44 | },
45 | "lib/net6.0/Avalonia.Markup.dll": {
46 | "assemblyVersion": "11.0.5.0",
47 | "fileVersion": "11.0.5.0"
48 | },
49 | "lib/net6.0/Avalonia.Metal.dll": {
50 | "assemblyVersion": "11.0.5.0",
51 | "fileVersion": "11.0.5.0"
52 | },
53 | "lib/net6.0/Avalonia.MicroCom.dll": {
54 | "assemblyVersion": "11.0.5.0",
55 | "fileVersion": "11.0.5.0"
56 | },
57 | "lib/net6.0/Avalonia.OpenGL.dll": {
58 | "assemblyVersion": "11.0.5.0",
59 | "fileVersion": "11.0.5.0"
60 | },
61 | "lib/net6.0/Avalonia.dll": {
62 | "assemblyVersion": "11.0.5.0",
63 | "fileVersion": "11.0.5.0"
64 | }
65 | }
66 | },
67 | "Avalonia.BuildServices/0.0.29": {},
68 | "Avalonia.Remote.Protocol/11.0.5": {
69 | "runtime": {
70 | "lib/net6.0/Avalonia.Remote.Protocol.dll": {
71 | "assemblyVersion": "11.0.5.0",
72 | "fileVersion": "11.0.5.0"
73 | }
74 | }
75 | },
76 | "MicroCom.Runtime/0.11.0": {
77 | "runtime": {
78 | "lib/net5.0/MicroCom.Runtime.dll": {
79 | "assemblyVersion": "0.11.0.0",
80 | "fileVersion": "0.11.0.0"
81 | }
82 | }
83 | },
84 | "System.ComponentModel.Annotations/4.5.0": {}
85 | }
86 | },
87 | "libraries": {
88 | "Avalonia.Gif/1.0.0": {
89 | "type": "project",
90 | "serviceable": false,
91 | "sha512": ""
92 | },
93 | "Avalonia/11.0.5": {
94 | "type": "package",
95 | "serviceable": true,
96 | "sha512": "sha512-twUjGl6gxQeyxO7wG6v+ntvAN2IeNXDr2oS6a7h5LRXy83ITbcuA0gYUqm/aeLVe0cviGSVWE9x5BVkDjZfXpQ==",
97 | "path": "avalonia/11.0.5",
98 | "hashPath": "avalonia.11.0.5.nupkg.sha512"
99 | },
100 | "Avalonia.BuildServices/0.0.29": {
101 | "type": "package",
102 | "serviceable": true,
103 | "sha512": "sha512-U4eJLQdoDNHXtEba7MZUCwrBErBTxFp6sUewXBOdAhU0Kwzwaa/EKFcYm8kpcysjzKtfB4S0S9n0uxKZFz/ikw==",
104 | "path": "avalonia.buildservices/0.0.29",
105 | "hashPath": "avalonia.buildservices.0.0.29.nupkg.sha512"
106 | },
107 | "Avalonia.Remote.Protocol/11.0.5": {
108 | "type": "package",
109 | "serviceable": true,
110 | "sha512": "sha512-UDK2jNGWaMHOP4lENIeUp7WsNAv65PuR5Yjo6EksDgN+BfS99+O9QDskrroyCnaMredOYvyposyj5Bgur8vO1w==",
111 | "path": "avalonia.remote.protocol/11.0.5",
112 | "hashPath": "avalonia.remote.protocol.11.0.5.nupkg.sha512"
113 | },
114 | "MicroCom.Runtime/0.11.0": {
115 | "type": "package",
116 | "serviceable": true,
117 | "sha512": "sha512-MEnrZ3UIiH40hjzMDsxrTyi8dtqB5ziv3iBeeU4bXsL/7NLSal9F1lZKpK+tfBRnUoDSdtcW3KufE4yhATOMCA==",
118 | "path": "microcom.runtime/0.11.0",
119 | "hashPath": "microcom.runtime.0.11.0.nupkg.sha512"
120 | },
121 | "System.ComponentModel.Annotations/4.5.0": {
122 | "type": "package",
123 | "serviceable": true,
124 | "sha512": "sha512-UxYQ3FGUOtzJ7LfSdnYSFd7+oEv6M8NgUatatIN2HxNtDdlcvFAf+VIq4Of9cDMJEJC0aSRv/x898RYhB4Yppg==",
125 | "path": "system.componentmodel.annotations/4.5.0",
126 | "hashPath": "system.componentmodel.annotations.4.5.0.nupkg.sha512"
127 | }
128 | }
129 | }
--------------------------------------------------------------------------------
/Avalonia.GIF/Avalonia.Gif.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ComradeAkei/Xamlade/72c7efa87116e0d57245a2616b7b0fcff7f5672e/Avalonia.GIF/Avalonia.Gif.dll
--------------------------------------------------------------------------------
/Avalonia.GIF/Avalonia.Gif.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ComradeAkei/Xamlade/72c7efa87116e0d57245a2616b7b0fcff7f5672e/Avalonia.GIF/Avalonia.Gif.pdb
--------------------------------------------------------------------------------
/Avalonia.GIF/publish/Avalonia.Base.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ComradeAkei/Xamlade/72c7efa87116e0d57245a2616b7b0fcff7f5672e/Avalonia.GIF/publish/Avalonia.Base.dll
--------------------------------------------------------------------------------
/Avalonia.GIF/publish/Avalonia.Controls.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ComradeAkei/Xamlade/72c7efa87116e0d57245a2616b7b0fcff7f5672e/Avalonia.GIF/publish/Avalonia.Controls.dll
--------------------------------------------------------------------------------
/Avalonia.GIF/publish/Avalonia.DesignerSupport.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ComradeAkei/Xamlade/72c7efa87116e0d57245a2616b7b0fcff7f5672e/Avalonia.GIF/publish/Avalonia.DesignerSupport.dll
--------------------------------------------------------------------------------
/Avalonia.GIF/publish/Avalonia.Dialogs.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ComradeAkei/Xamlade/72c7efa87116e0d57245a2616b7b0fcff7f5672e/Avalonia.GIF/publish/Avalonia.Dialogs.dll
--------------------------------------------------------------------------------
/Avalonia.GIF/publish/Avalonia.Gif.deps.json:
--------------------------------------------------------------------------------
1 | {
2 | "runtimeTarget": {
3 | "name": ".NETCoreApp,Version=v8.0",
4 | "signature": ""
5 | },
6 | "compilationOptions": {},
7 | "targets": {
8 | ".NETCoreApp,Version=v8.0": {
9 | "Avalonia.Gif/1.0.0": {
10 | "dependencies": {
11 | "Avalonia": "11.0.5"
12 | },
13 | "runtime": {
14 | "Avalonia.Gif.dll": {}
15 | }
16 | },
17 | "Avalonia/11.0.5": {
18 | "dependencies": {
19 | "Avalonia.BuildServices": "0.0.29",
20 | "Avalonia.Remote.Protocol": "11.0.5",
21 | "MicroCom.Runtime": "0.11.0",
22 | "System.ComponentModel.Annotations": "4.5.0"
23 | },
24 | "runtime": {
25 | "lib/net6.0/Avalonia.Base.dll": {
26 | "assemblyVersion": "11.0.5.0",
27 | "fileVersion": "11.0.5.0"
28 | },
29 | "lib/net6.0/Avalonia.Controls.dll": {
30 | "assemblyVersion": "11.0.5.0",
31 | "fileVersion": "11.0.5.0"
32 | },
33 | "lib/net6.0/Avalonia.DesignerSupport.dll": {
34 | "assemblyVersion": "0.7.0.0",
35 | "fileVersion": "0.7.0.0"
36 | },
37 | "lib/net6.0/Avalonia.Dialogs.dll": {
38 | "assemblyVersion": "11.0.5.0",
39 | "fileVersion": "11.0.5.0"
40 | },
41 | "lib/net6.0/Avalonia.Markup.Xaml.dll": {
42 | "assemblyVersion": "11.0.5.0",
43 | "fileVersion": "11.0.5.0"
44 | },
45 | "lib/net6.0/Avalonia.Markup.dll": {
46 | "assemblyVersion": "11.0.5.0",
47 | "fileVersion": "11.0.5.0"
48 | },
49 | "lib/net6.0/Avalonia.Metal.dll": {
50 | "assemblyVersion": "11.0.5.0",
51 | "fileVersion": "11.0.5.0"
52 | },
53 | "lib/net6.0/Avalonia.MicroCom.dll": {
54 | "assemblyVersion": "11.0.5.0",
55 | "fileVersion": "11.0.5.0"
56 | },
57 | "lib/net6.0/Avalonia.OpenGL.dll": {
58 | "assemblyVersion": "11.0.5.0",
59 | "fileVersion": "11.0.5.0"
60 | },
61 | "lib/net6.0/Avalonia.dll": {
62 | "assemblyVersion": "11.0.5.0",
63 | "fileVersion": "11.0.5.0"
64 | }
65 | }
66 | },
67 | "Avalonia.BuildServices/0.0.29": {},
68 | "Avalonia.Remote.Protocol/11.0.5": {
69 | "runtime": {
70 | "lib/net6.0/Avalonia.Remote.Protocol.dll": {
71 | "assemblyVersion": "11.0.5.0",
72 | "fileVersion": "11.0.5.0"
73 | }
74 | }
75 | },
76 | "MicroCom.Runtime/0.11.0": {
77 | "runtime": {
78 | "lib/net5.0/MicroCom.Runtime.dll": {
79 | "assemblyVersion": "0.11.0.0",
80 | "fileVersion": "0.11.0.0"
81 | }
82 | }
83 | },
84 | "System.ComponentModel.Annotations/4.5.0": {}
85 | }
86 | },
87 | "libraries": {
88 | "Avalonia.Gif/1.0.0": {
89 | "type": "project",
90 | "serviceable": false,
91 | "sha512": ""
92 | },
93 | "Avalonia/11.0.5": {
94 | "type": "package",
95 | "serviceable": true,
96 | "sha512": "sha512-twUjGl6gxQeyxO7wG6v+ntvAN2IeNXDr2oS6a7h5LRXy83ITbcuA0gYUqm/aeLVe0cviGSVWE9x5BVkDjZfXpQ==",
97 | "path": "avalonia/11.0.5",
98 | "hashPath": "avalonia.11.0.5.nupkg.sha512"
99 | },
100 | "Avalonia.BuildServices/0.0.29": {
101 | "type": "package",
102 | "serviceable": true,
103 | "sha512": "sha512-U4eJLQdoDNHXtEba7MZUCwrBErBTxFp6sUewXBOdAhU0Kwzwaa/EKFcYm8kpcysjzKtfB4S0S9n0uxKZFz/ikw==",
104 | "path": "avalonia.buildservices/0.0.29",
105 | "hashPath": "avalonia.buildservices.0.0.29.nupkg.sha512"
106 | },
107 | "Avalonia.Remote.Protocol/11.0.5": {
108 | "type": "package",
109 | "serviceable": true,
110 | "sha512": "sha512-UDK2jNGWaMHOP4lENIeUp7WsNAv65PuR5Yjo6EksDgN+BfS99+O9QDskrroyCnaMredOYvyposyj5Bgur8vO1w==",
111 | "path": "avalonia.remote.protocol/11.0.5",
112 | "hashPath": "avalonia.remote.protocol.11.0.5.nupkg.sha512"
113 | },
114 | "MicroCom.Runtime/0.11.0": {
115 | "type": "package",
116 | "serviceable": true,
117 | "sha512": "sha512-MEnrZ3UIiH40hjzMDsxrTyi8dtqB5ziv3iBeeU4bXsL/7NLSal9F1lZKpK+tfBRnUoDSdtcW3KufE4yhATOMCA==",
118 | "path": "microcom.runtime/0.11.0",
119 | "hashPath": "microcom.runtime.0.11.0.nupkg.sha512"
120 | },
121 | "System.ComponentModel.Annotations/4.5.0": {
122 | "type": "package",
123 | "serviceable": true,
124 | "sha512": "sha512-UxYQ3FGUOtzJ7LfSdnYSFd7+oEv6M8NgUatatIN2HxNtDdlcvFAf+VIq4Of9cDMJEJC0aSRv/x898RYhB4Yppg==",
125 | "path": "system.componentmodel.annotations/4.5.0",
126 | "hashPath": "system.componentmodel.annotations.4.5.0.nupkg.sha512"
127 | }
128 | }
129 | }
--------------------------------------------------------------------------------
/Avalonia.GIF/publish/Avalonia.Gif.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ComradeAkei/Xamlade/72c7efa87116e0d57245a2616b7b0fcff7f5672e/Avalonia.GIF/publish/Avalonia.Gif.dll
--------------------------------------------------------------------------------
/Avalonia.GIF/publish/Avalonia.Gif.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ComradeAkei/Xamlade/72c7efa87116e0d57245a2616b7b0fcff7f5672e/Avalonia.GIF/publish/Avalonia.Gif.pdb
--------------------------------------------------------------------------------
/Avalonia.GIF/publish/Avalonia.Markup.Xaml.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ComradeAkei/Xamlade/72c7efa87116e0d57245a2616b7b0fcff7f5672e/Avalonia.GIF/publish/Avalonia.Markup.Xaml.dll
--------------------------------------------------------------------------------
/Avalonia.GIF/publish/Avalonia.Markup.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ComradeAkei/Xamlade/72c7efa87116e0d57245a2616b7b0fcff7f5672e/Avalonia.GIF/publish/Avalonia.Markup.dll
--------------------------------------------------------------------------------
/Avalonia.GIF/publish/Avalonia.Metal.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ComradeAkei/Xamlade/72c7efa87116e0d57245a2616b7b0fcff7f5672e/Avalonia.GIF/publish/Avalonia.Metal.dll
--------------------------------------------------------------------------------
/Avalonia.GIF/publish/Avalonia.MicroCom.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ComradeAkei/Xamlade/72c7efa87116e0d57245a2616b7b0fcff7f5672e/Avalonia.GIF/publish/Avalonia.MicroCom.dll
--------------------------------------------------------------------------------
/Avalonia.GIF/publish/Avalonia.OpenGL.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ComradeAkei/Xamlade/72c7efa87116e0d57245a2616b7b0fcff7f5672e/Avalonia.GIF/publish/Avalonia.OpenGL.dll
--------------------------------------------------------------------------------
/Avalonia.GIF/publish/Avalonia.Remote.Protocol.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ComradeAkei/Xamlade/72c7efa87116e0d57245a2616b7b0fcff7f5672e/Avalonia.GIF/publish/Avalonia.Remote.Protocol.dll
--------------------------------------------------------------------------------
/Avalonia.GIF/publish/Avalonia.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ComradeAkei/Xamlade/72c7efa87116e0d57245a2616b7b0fcff7f5672e/Avalonia.GIF/publish/Avalonia.dll
--------------------------------------------------------------------------------
/Avalonia.GIF/publish/MicroCom.Runtime.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ComradeAkei/Xamlade/72c7efa87116e0d57245a2616b7b0fcff7f5672e/Avalonia.GIF/publish/MicroCom.Runtime.dll
--------------------------------------------------------------------------------
/Extensions/Attributes/ReflectionCall.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Xamlade.Extensions.Atributes;
4 |
5 | [AttributeUsage(AttributeTargets.Field | AttributeTargets.Method | AttributeTargets.Property)]
6 | public class ReflectionCallAttribute : Attribute
7 | {
8 |
9 | }
--------------------------------------------------------------------------------
/Extensions/Color/MyColorButton.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Reflection;
3 | using System.Threading.Tasks;
4 | using Avalonia;
5 | using Avalonia.Controls;
6 | using Avalonia.Controls.Primitives;
7 | using Avalonia.LogicalTree;
8 | using Avalonia.Media;
9 | using AvaloniaColorPicker;
10 | using Xamlade.FunctionalAreas;
11 | using Xamlade.ProgramWindow;
12 |
13 | namespace Xamlade.ColorPicker;
14 |
15 | public class CustomColorButton : ColorButton where T : Window, IColorPickerWindow
16 | {
17 | Type baseType = typeof(ColorButton);
18 |
19 | public CustomColorButton() : base()
20 | {
21 | /*
22 | * Суть в том, чтобы отписать от события смены цвета богомерзкий обработчик с палеткой,
23 | * из-за которого Xamlade падает по непонятным внутренним NullRefferenceException.
24 | */
25 |
26 |
27 | PropertyInfo contentButtonProperty =
28 | baseType.GetProperty("ContentButton", BindingFlags.NonPublic | BindingFlags.Instance);
29 |
30 | var contentButton = contentButtonProperty?.GetValue(this);
31 |
32 | if (contentButton != null)
33 | {
34 | //событие PropertyChanged
35 | EventInfo propertyChangedEvent = contentButton.GetType().GetEvent("PropertyChanged");
36 |
37 |
38 | if (propertyChangedEvent != null)
39 | {
40 | FieldInfo eventField = null;
41 | Type currentType = contentButton.GetType();
42 |
43 | //Target type = AvaloniaColorPicker.ColorButton[Xamlade.ColorPicker.MyColorPickerWindow]
44 | //Глубина рефлексии ебануца со стула
45 | //Ищем поле у базовых классов
46 | while (currentType != null)
47 | {
48 | eventField = currentType.GetField("_propertyChanged",
49 | BindingFlags.NonPublic | BindingFlags.Instance);
50 | //Закатный отряд
51 | if (eventField != null)
52 | break;
53 | currentType = currentType.BaseType;
54 | }
55 |
56 | if (eventField != null)
57 | {
58 | // Получаем делегат
59 | Delegate currentDelegate = (Delegate)eventField.GetValue(contentButton);
60 | // Привет атписчекам!!!
61 | if (currentDelegate != null)
62 | foreach (Delegate del in currentDelegate.GetInvocationList())
63 | propertyChangedEvent.RemoveEventHandler(contentButton, del);
64 | }
65 |
66 | // Подписываем православный обработчик
67 | MethodInfo eventHandler = typeof(CustomColorButton).GetMethod("CustomContentButton_PropertyChanged",
68 | BindingFlags.NonPublic | BindingFlags.Instance);
69 | Delegate handler = Delegate.CreateDelegate(propertyChangedEvent.EventHandlerType, this, eventHandler);
70 | propertyChangedEvent.AddEventHandler(contentButton, handler);
71 | }
72 | }
73 | }
74 |
75 | private async void CustomContentButton_PropertyChanged(object sender, AvaloniaPropertyChangedEventArgs e)
76 | {
77 | if (e.Property == ToggleButton.IsCheckedProperty)
78 | if ((e.NewValue as bool?).Value)
79 | // Нахуй палетку!!
80 | ShowColorPickerDialog();
81 | }
82 |
83 | private async Task ShowColorPickerDialog()
84 | {
85 | // Ищем приватный метод CreateColourPickerWindow
86 | MethodInfo createColourPickerWindowMethod =
87 | baseType.GetMethod("CreateColourPickerWindow", BindingFlags.NonPublic | BindingFlags.Static);
88 | object[] parameters = { new Color?(this.Color) };
89 | T colourPickerWindow = (T)createColourPickerWindowMethod?.Invoke(this, parameters);
90 |
91 | await colourPickerWindow.ShowDialog