mirror of
https://github.com/BlossomiShymae/Needlework.Net.git
synced 2025-12-06 18:20:47 +01:00
WIP
This commit is contained in:
39
Needlework.Net.Desktop/Views/AboutView.axaml
Normal file
39
Needlework.Net.Desktop/Views/AboutView.axaml
Normal file
@@ -0,0 +1,39 @@
|
||||
<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:suki="clr-namespace:SukiUI.Controls;assembly=SukiUI"
|
||||
xmlns:theme="clr-namespace:SukiUI.Theme;assembly=SukiUI"
|
||||
xmlns:vm="using:Needlework.Net.Desktop.ViewModels"
|
||||
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
||||
x:Class="Needlework.Net.Desktop.Views.AboutView"
|
||||
x:DataType="vm:AboutViewModel">
|
||||
<ScrollViewer>
|
||||
<WrapPanel Margin="8"
|
||||
theme:WrapPanelExtensions.AnimatedScroll="true"
|
||||
Orientation="Horizontal">
|
||||
<suki:GlassCard Margin="8">
|
||||
<Image Source="/Assets/about.png"
|
||||
RenderOptions.BitmapInterpolationMode="MediumQuality"
|
||||
Width="200"
|
||||
Height="200"/>
|
||||
</suki:GlassCard>
|
||||
<StackPanel>
|
||||
<suki:GlassCard Width="400" Margin="8">
|
||||
<StackPanel>
|
||||
<TextBlock Classes="h3">Blossomi Shymae</TextBlock>
|
||||
</StackPanel>
|
||||
</suki:GlassCard>
|
||||
<suki:GlassCard Width="400" Margin="8">
|
||||
<suki:GroupBox Header="About">
|
||||
<TextBlock TextWrapping="Wrap">
|
||||
Needlework.Net is the sister project of Needlework. Like Needlework, this project is inspired by
|
||||
LCU Explorer. This tool was made to help others with LCU development. Feel free to ask any questions
|
||||
or help contribute to the project! 💜
|
||||
</TextBlock>
|
||||
</suki:GroupBox>
|
||||
</suki:GlassCard>
|
||||
</StackPanel>
|
||||
</WrapPanel>
|
||||
</ScrollViewer>
|
||||
</UserControl>
|
||||
11
Needlework.Net.Desktop/Views/AboutView.axaml.cs
Normal file
11
Needlework.Net.Desktop/Views/AboutView.axaml.cs
Normal file
@@ -0,0 +1,11 @@
|
||||
using Avalonia.Controls;
|
||||
|
||||
namespace Needlework.Net.Desktop.Views;
|
||||
|
||||
public partial class AboutView : UserControl
|
||||
{
|
||||
public AboutView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
65
Needlework.Net.Desktop/Views/ConsoleView.axaml
Normal file
65
Needlework.Net.Desktop/Views/ConsoleView.axaml
Normal file
@@ -0,0 +1,65 @@
|
||||
<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:suki="clr-namespace:SukiUI.Controls;assembly=SukiUI"
|
||||
xmlns:avaloniaEdit="https://github.com/avaloniaui/avaloniaedit"
|
||||
xmlns:theme="clr-namespace:SukiUI.Theme;assembly=SukiUI"
|
||||
xmlns:vm="using:Needlework.Net.Desktop.ViewModels"
|
||||
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
||||
x:Class="Needlework.Net.Desktop.Views.ConsoleView"
|
||||
x:DataType="vm:ConsoleViewModel">
|
||||
<Grid Margin="16" RowDefinitions="auto,*" ColumnDefinitions="*,*">
|
||||
<Grid Grid.Row="0"
|
||||
Grid.Column="0"
|
||||
Grid.ColumnSpan="2">
|
||||
<suki:GlassCard Margin="0 0 0 16">
|
||||
<suki:GroupBox Header="Console">
|
||||
<Grid RowDefinitions="auto,auto" ColumnDefinitions="auto,*">
|
||||
<ComboBox ItemsSource="{Binding RequestMethods}" SelectedItem="{Binding RequestMethodSelected}"
|
||||
Grid.Row="0" Grid.Column="0"/>
|
||||
<TextBox Text="{Binding RequestPath}"
|
||||
Grid.Row="0" Grid.Column="1"
|
||||
Watermark="E.g. /lol-summoner/v1/current-summoner"/>
|
||||
<TextBox Text="{Binding RequestBody}" Height="200" AcceptsReturn="True" TextWrapping="Wrap"
|
||||
Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2"/>
|
||||
</Grid>
|
||||
</suki:GroupBox>
|
||||
</suki:GlassCard>
|
||||
<Button Classes="Flat Rounded"
|
||||
Margin="0 0 0 0"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Bottom"
|
||||
FontWeight="DemiBold"
|
||||
Command="{Binding SendRequestCommand}">
|
||||
Send
|
||||
</Button>
|
||||
</Grid>
|
||||
<StackPanel
|
||||
Margin="0 0 8 0"
|
||||
Grid.Row="1"
|
||||
Grid.Column="0">
|
||||
<suki:GlassCard Margin="0 4">
|
||||
<TextBlock Text="{Binding ResponsePath}"/>
|
||||
</suki:GlassCard>
|
||||
<suki:GlassCard Margin="0 4">
|
||||
<TextBlock Text="{Binding ResponseStatus}"/>
|
||||
</suki:GlassCard>
|
||||
<suki:GlassCard Margin="0 4">
|
||||
<TextBlock Text="{Binding ResponseAuthentication}" />
|
||||
</suki:GlassCard>
|
||||
</StackPanel>
|
||||
<suki:GlassCard
|
||||
Margin="0 8"
|
||||
Grid.Row="1"
|
||||
Grid.Column="1">
|
||||
<avaloniaEdit:TextEditor Name="ResponseEditor"
|
||||
Text=""
|
||||
FontFamily="Cascadia Code,Consolas,Menlo,Monospace"
|
||||
HorizontalScrollBarVisibility="Auto"
|
||||
VerticalScrollBarVisibility="Visible"
|
||||
FontWeight="Light"
|
||||
FontSize="14"/>
|
||||
</suki:GlassCard>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
56
Needlework.Net.Desktop/Views/ConsoleView.axaml.cs
Normal file
56
Needlework.Net.Desktop/Views/ConsoleView.axaml.cs
Normal file
@@ -0,0 +1,56 @@
|
||||
using Avalonia;
|
||||
using Avalonia.Controls;
|
||||
using Avalonia.Controls.Primitives;
|
||||
using Avalonia.Styling;
|
||||
using AvaloniaEdit;
|
||||
using AvaloniaEdit.Highlighting;
|
||||
using AvaloniaEdit.Indentation.CSharp;
|
||||
using AvaloniaEdit.TextMate;
|
||||
using Needlework.Net.Desktop.ViewModels;
|
||||
using SukiUI;
|
||||
using System.Text.Json;
|
||||
using TextMateSharp.Grammars;
|
||||
|
||||
namespace Needlework.Net.Desktop.Views;
|
||||
|
||||
public partial class ConsoleView : UserControl
|
||||
{
|
||||
private TextEditor? _responseEditor;
|
||||
|
||||
public ConsoleView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
protected override void OnApplyTemplate(TemplateAppliedEventArgs e)
|
||||
{
|
||||
base.OnApplyTemplate(e);
|
||||
|
||||
_responseEditor = this.FindControl<TextEditor>("ResponseEditor");
|
||||
_responseEditor!.TextArea.IndentationStrategy = new CSharpIndentationStrategy(_responseEditor.Options);
|
||||
_responseEditor!.TextArea.RightClickMovesCaret = true;
|
||||
_responseEditor!.SyntaxHighlighting = HighlightingManager.Instance.GetDefinition("JavaScript");
|
||||
|
||||
((ConsoleViewModel)DataContext!)!.ResponseBodyUpdated += ConsoleView_ResponseBodyUpdated;
|
||||
|
||||
OnBaseThemeChanged(Application.Current!.ActualThemeVariant);
|
||||
SukiTheme.GetInstance().OnBaseThemeChanged += OnBaseThemeChanged;
|
||||
}
|
||||
|
||||
private void ConsoleView_ResponseBodyUpdated(object? sender, TextUpdatedEventArgs e)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(e.Text))
|
||||
_responseEditor!.Text = JsonSerializer.Serialize(JsonSerializer.Deserialize<object>(e.Text), App.JsonSerializerOptions);
|
||||
else _responseEditor!.Text = e.Text;
|
||||
}
|
||||
|
||||
private void OnBaseThemeChanged(ThemeVariant currentTheme)
|
||||
{
|
||||
var registryOptions = new RegistryOptions(
|
||||
currentTheme == ThemeVariant.Dark ? ThemeName.DarkPlus : ThemeName.LightPlus);
|
||||
|
||||
var textMateInstallation = _responseEditor.InstallTextMate(registryOptions);
|
||||
textMateInstallation.SetGrammar(registryOptions.GetScopeByLanguageId(registryOptions
|
||||
.GetLanguageByExtension(".json").Id));
|
||||
}
|
||||
}
|
||||
19
Needlework.Net.Desktop/Views/EndpointView.axaml
Normal file
19
Needlework.Net.Desktop/Views/EndpointView.axaml
Normal file
@@ -0,0 +1,19 @@
|
||||
<Window 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:suki="clr-namespace:SukiUI.Controls;assembly=SukiUI"
|
||||
xmlns:vm="using:Needlework.Net.Desktop.ViewModels"
|
||||
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
||||
x:Class="Needlework.Net.Desktop.Views.EndpointView"
|
||||
x:DataType="vm:EndpointViewModel"
|
||||
Title="{Binding Title}"
|
||||
Width="1280"
|
||||
Height="720">
|
||||
<Grid Margin="8" RowDefinitions="auto,*" ColumnDefinitions="*">
|
||||
<TextBlock Classes="h3" Grid.Row="0" Grid.Column="0" Text="{Binding Endpoint}"/>
|
||||
<ScrollViewer Grid.Row="1" Grid.Column="0">
|
||||
|
||||
</ScrollViewer>
|
||||
</Grid>
|
||||
</Window>
|
||||
11
Needlework.Net.Desktop/Views/EndpointView.axaml.cs
Normal file
11
Needlework.Net.Desktop/Views/EndpointView.axaml.cs
Normal file
@@ -0,0 +1,11 @@
|
||||
using SukiUI.Controls;
|
||||
|
||||
namespace Needlework.Net.Desktop.Views;
|
||||
|
||||
public partial class EndpointView : SukiWindow
|
||||
{
|
||||
public EndpointView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
27
Needlework.Net.Desktop/Views/EndpointsView.axaml
Normal file
27
Needlework.Net.Desktop/Views/EndpointsView.axaml
Normal file
@@ -0,0 +1,27 @@
|
||||
<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:suki="clr-namespace:SukiUI.Controls;assembly=SukiUI"
|
||||
xmlns:theme="clr-namespace:SukiUI.Theme;assembly=SukiUI"
|
||||
xmlns:vm="using:Needlework.Net.Desktop.ViewModels"
|
||||
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
||||
x:Class="Needlework.Net.Desktop.Views.EndpointsView"
|
||||
x:DataType="vm:EndpointsViewModel">
|
||||
<!-- TOP LEVEL -->
|
||||
<suki:BusyArea IsBusy="{Binding IsBusy}" BusyText="Loading...">
|
||||
<Grid Margin="16" RowDefinitions="auto,auto,*" ColumnDefinitions="*">
|
||||
<TextBlock Classes="h3" Margin="0 4" Grid.Row="0" Grid.Column="0">Endpoints</TextBlock>
|
||||
<TextBox Watermark="Search" Margin="0 4" Text="{Binding Search}" Grid.Row="1" Grid.Column="0"/>
|
||||
<ScrollViewer Grid.Row="2" Grid.Column="0">
|
||||
<ListBox ItemsSource="{Binding Query}" SelectedItem="{Binding SelectedQuery}">
|
||||
<ListBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding}" Foreground="White" />
|
||||
</DataTemplate>
|
||||
</ListBox.ItemTemplate>
|
||||
</ListBox>
|
||||
</ScrollViewer>
|
||||
</Grid>
|
||||
</suki:BusyArea>
|
||||
</UserControl>
|
||||
12
Needlework.Net.Desktop/Views/EndpointsView.axaml.cs
Normal file
12
Needlework.Net.Desktop/Views/EndpointsView.axaml.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
using Avalonia.Controls;
|
||||
|
||||
namespace Needlework.Net.Desktop.Views
|
||||
{
|
||||
public partial class EndpointsView : UserControl
|
||||
{
|
||||
public EndpointsView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
75
Needlework.Net.Desktop/Views/HomeView.axaml
Normal file
75
Needlework.Net.Desktop/Views/HomeView.axaml
Normal file
@@ -0,0 +1,75 @@
|
||||
<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:suki="clr-namespace:SukiUI.Controls;assembly=SukiUI"
|
||||
xmlns:theme="clr-namespace:SukiUI.Theme;assembly=SukiUI"
|
||||
xmlns:vm="using:Needlework.Net.Desktop.ViewModels"
|
||||
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
||||
x:Class="Needlework.Net.Desktop.Views.HomeView"
|
||||
x:DataType="vm:HomeViewModel">
|
||||
<!-- TOP LEVEL -->
|
||||
<ScrollViewer>
|
||||
<WrapPanel Margin="8"
|
||||
theme:WrapPanelExtensions.AnimatedScroll="true"
|
||||
Orientation="Horizontal">
|
||||
<!-- WELCOME -->
|
||||
<StackPanel>
|
||||
<suki:GlassCard Margin="8">
|
||||
<StackPanel>
|
||||
<TextBlock Classes="h3">Welcome to Needlework.Net</TextBlock>
|
||||
<TextBlock>Get started with LCU development by clicking on the endpoints tab in the left panel.</TextBlock>
|
||||
</StackPanel>
|
||||
</suki:GlassCard>
|
||||
<suki:GlassCard Margin="8" Classes="Accent">
|
||||
<TextBlock TextWrapping="Wrap">THE PROGRAM IS PROVIDED “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGMENT, OR OF FITNESS FOR A PARTICULAR PURPOSE. LICENSOR DOES NOT WARRANT THAT THE FUNCTIONS CONTAINED IN THE PROGRAM WILL MEET YOUR REQUIREMENTS OR THAT OPERATION WILL BE UNINTERRUPTED OR ERROR FREE. LICENSOR MAKES NO WARRANTIES RESPECTING ANY HARM THAT MAY BE CAUSED BY MALICIOUS USE OF THIS SOFTWARE. LICENSOR FURTHER EXPRESSLY DISCLAIMS ANY WARRANTY OR REPRESENTATION TO AUTHORIZED USERS OR TO ANY THIRD PARTY.</TextBlock>
|
||||
</suki:GlassCard>
|
||||
</StackPanel>
|
||||
<!-- STATUS -->
|
||||
<StackPanel>
|
||||
<suki:GlassCard Margin="8" Width="250">
|
||||
<suki:GroupBox Header="Status">
|
||||
<TextBlock FontSize="24" FontWeight="Bold" Margin="0 4" Foreground="{Binding StatusForeground}" Text="{Binding StatusText}" />
|
||||
</suki:GroupBox>
|
||||
</suki:GlassCard>
|
||||
<suki:GlassCard Margin="8" Width="250">
|
||||
<suki:GroupBox Header="Address">
|
||||
<TextBlock Text="{Binding StatusAddress}"/>
|
||||
</suki:GroupBox>
|
||||
</suki:GlassCard>
|
||||
</StackPanel>
|
||||
<!-- LEGAL -->
|
||||
<suki:GlassCard Margin="8" Width="300">
|
||||
<suki:GroupBox Header="Disclaimer">
|
||||
<TextBlock TextWrapping="Wrap">Needlework.Net isn't endorsed by Riot Games and doesn't reflect the views or opinions of Riot Games or anyone officially involved in producing or managing Riot Games properties. Riot Games, and all associated properties are trademarks or registered trademarks of Riot Games, Inc.</TextBlock>
|
||||
</suki:GroupBox>
|
||||
</suki:GlassCard>
|
||||
<!-- FOOTER -->
|
||||
<StackPanel>
|
||||
<suki:GlassCard Margin="8" Width="400">
|
||||
<StackPanel>
|
||||
<TextBlock>© 2024 - Blossomi Shymae</TextBlock>
|
||||
<TextBlock>MIT License</TextBlock>
|
||||
</StackPanel>
|
||||
</suki:GlassCard>
|
||||
<suki:GlassCard Margin="8" Width="400">
|
||||
<suki:GroupBox Header="Resources">
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
|
||||
<StackPanel.Styles>
|
||||
<Style Selector="Button">
|
||||
<Setter Property="Command" Value="{Binding OpenUrlCommand}"/>
|
||||
</Style>
|
||||
</StackPanel.Styles>
|
||||
<Button CommandParameter="https://hextechdocs.dev/tag/lcu/" Margin="0 0 16 0">
|
||||
Hextech Docs
|
||||
</Button>
|
||||
<Button CommandParameter="https://hextechdocs.dev/getting-started-with-the-lcu-api/">
|
||||
Getting Started
|
||||
</Button>
|
||||
</StackPanel>
|
||||
</suki:GroupBox>
|
||||
</suki:GlassCard>
|
||||
</StackPanel>
|
||||
</WrapPanel>
|
||||
</ScrollViewer>
|
||||
</UserControl>
|
||||
12
Needlework.Net.Desktop/Views/HomeView.axaml.cs
Normal file
12
Needlework.Net.Desktop/Views/HomeView.axaml.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
using Avalonia.Controls;
|
||||
|
||||
namespace Needlework.Net.Desktop.Views
|
||||
{
|
||||
public partial class HomeView : UserControl
|
||||
{
|
||||
public HomeView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
57
Needlework.Net.Desktop/Views/MainWindow.axaml
Normal file
57
Needlework.Net.Desktop/Views/MainWindow.axaml
Normal file
@@ -0,0 +1,57 @@
|
||||
<Window 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:suki="clr-namespace:SukiUI.Controls;assembly=SukiUI"
|
||||
xmlns:materialIcons="clr-namespace:Material.Icons.Avalonia;assembly=Material.Icons.Avalonia"
|
||||
xmlns:i="https://github.com/projektanker/icons.avalonia"
|
||||
xmlns:vm="using:Needlework.Net.Desktop.ViewModels"
|
||||
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
||||
x:Class="Needlework.Net.Desktop.Views.MainWindow"
|
||||
x:DataType="vm:MainWindowViewModel"
|
||||
Title="Needlework.Net"
|
||||
Width="1280"
|
||||
Height="720">
|
||||
<!-- TOP LEVEL -->
|
||||
<suki:SukiSideMenu ItemsSource="{Binding Pages}">
|
||||
<!-- ITEMS -->
|
||||
<suki:SukiSideMenu.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<suki:SukiSideMenuItem Header="{Binding DisplayName}">
|
||||
<suki:SukiSideMenuItem.Icon>
|
||||
<materialIcons:MaterialIcon Kind="{Binding Icon}" />
|
||||
</suki:SukiSideMenuItem.Icon>
|
||||
</suki:SukiSideMenuItem>
|
||||
</DataTemplate>
|
||||
</suki:SukiSideMenu.ItemTemplate>
|
||||
<!-- FOOTER -->
|
||||
<suki:SukiSideMenu.FooterContent>
|
||||
<StackPanel HorizontalAlignment="Center" Orientation="Horizontal">
|
||||
<StackPanel.Styles>
|
||||
<Style Selector="Button.Basic">
|
||||
<Setter Property="Command" Value="{Binding OpenUrlCommand}" />
|
||||
</Style>
|
||||
<Style Selector="materialIcons|MaterialIcon">
|
||||
<Setter Property="Width" Value="25" />
|
||||
<Setter Property="Height" Value="25" />
|
||||
</Style>
|
||||
<Style Selector="i|Icon">
|
||||
<Setter Property="FontSize" Value="25" />
|
||||
</Style>
|
||||
</StackPanel.Styles>
|
||||
<Button Classes="Flat"
|
||||
Content="{Binding Version}" />
|
||||
<Button Classes="Basic"
|
||||
CommandParameter="https://github.com/BlossomiShymae/Needlework.Net"
|
||||
ToolTip.Tip="Open on GitHub.">
|
||||
<materialIcons:MaterialIcon Kind="Github" />
|
||||
</Button>
|
||||
<Button Classes="Basic"
|
||||
CommandParameter="https://discord.gg/chEvEX5J4E"
|
||||
ToolTip.Tip="Open Discord server.">
|
||||
<i:Icon Value="fa-brand fa-discord" />
|
||||
</Button>
|
||||
</StackPanel>
|
||||
</suki:SukiSideMenu.FooterContent>
|
||||
</suki:SukiSideMenu>
|
||||
</Window>
|
||||
12
Needlework.Net.Desktop/Views/MainWindow.axaml.cs
Normal file
12
Needlework.Net.Desktop/Views/MainWindow.axaml.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
using Avalonia.Controls;
|
||||
using SukiUI.Controls;
|
||||
|
||||
namespace Needlework.Net.Desktop.Views;
|
||||
|
||||
public partial class MainWindow : SukiWindow
|
||||
{
|
||||
public MainWindow()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
20
Needlework.Net.Desktop/Views/PluginView.axaml
Normal file
20
Needlework.Net.Desktop/Views/PluginView.axaml
Normal file
@@ -0,0 +1,20 @@
|
||||
<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:suki="clr-namespace:SukiUI.Controls;assembly=SukiUI"
|
||||
xmlns:vm="using:Needlework.Net.Desktop.ViewModels"
|
||||
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
||||
x:Class="Needlework.Net.Desktop.Views.PluginView"
|
||||
x:DataType="vm:PluginViewModel">
|
||||
<!-- TOP LEVEL -->
|
||||
<ScrollViewer>
|
||||
<StackPanel Margin="8">
|
||||
<suki:GlassCard>
|
||||
<StackPanel>
|
||||
|
||||
</StackPanel>
|
||||
</suki:GlassCard>
|
||||
</StackPanel>
|
||||
</ScrollViewer>
|
||||
</UserControl>
|
||||
12
Needlework.Net.Desktop/Views/PluginView.axaml.cs
Normal file
12
Needlework.Net.Desktop/Views/PluginView.axaml.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
using Avalonia.Controls;
|
||||
|
||||
namespace Needlework.Net.Desktop.Views
|
||||
{
|
||||
public partial class PluginView : UserControl
|
||||
{
|
||||
public PluginView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user