Split
This commit is contained in:
Родитель
25dfe9a40f
Коммит
4b34cebb29
|
@ -9,7 +9,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TypefaceUtil.OpenType", "sr
|
|||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{FA0D294D-2942-4349-AC60-BB837AA95DAB}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TypefaceUtil.Avalonia", "src\TypefaceUtil.Avalonia\TypefaceUtil.Avalonia.csproj", "{DDCA69DA-405C-4A3B-AF4F-A969FE107D23}"
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TypefaceUtilAvalonia.Base", "src\TypefaceUtilAvalonia.Base\TypefaceUtilAvalonia.Base.csproj", "{DDCA69DA-405C-4A3B-AF4F-A969FE107D23}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnicodeDataGenerator", "src\UnicodeDataGenerator\UnicodeDataGenerator.csproj", "{DF30A956-2615-4B4A-A129-981DE567629F}"
|
||||
EndProject
|
||||
|
@ -68,6 +68,8 @@ EndProjectSection
|
|||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "_build", "build\build\_build.csproj", "{A66A3423-81AE-43B9-AAA6-0FBC44BE5152}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TypefaceUtilAvalonia.Desktop", "src\TypefaceUtilAvalonia.Desktop\TypefaceUtilAvalonia.Desktop.csproj", "{0F1B7AE5-AE2D-4311-86E3-46910F7B3ABD}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
|
@ -98,6 +100,10 @@ Global
|
|||
{A66A3423-81AE-43B9-AAA6-0FBC44BE5152}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{A66A3423-81AE-43B9-AAA6-0FBC44BE5152}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{A66A3423-81AE-43B9-AAA6-0FBC44BE5152}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{0F1B7AE5-AE2D-4311-86E3-46910F7B3ABD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{0F1B7AE5-AE2D-4311-86E3-46910F7B3ABD}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{0F1B7AE5-AE2D-4311-86E3-46910F7B3ABD}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{0F1B7AE5-AE2D-4311-86E3-46910F7B3ABD}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
@ -112,6 +118,7 @@ Global
|
|||
{429210F9-1870-4169-B2E1-FD834DB8BE86} = {13D366ED-5898-462D-B5F6-BCCDBBCD2C5F}
|
||||
{57F2A3FD-99C6-4E6A-9813-B9B5F0FBC11D} = {13D366ED-5898-462D-B5F6-BCCDBBCD2C5F}
|
||||
{A66A3423-81AE-43B9-AAA6-0FBC44BE5152} = {13D366ED-5898-462D-B5F6-BCCDBBCD2C5F}
|
||||
{0F1B7AE5-AE2D-4311-86E3-46910F7B3ABD} = {FA0D294D-2942-4349-AC60-BB837AA95DAB}
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {3D7D93DB-65A8-4680-ADDD-EE67EEC2C975}
|
||||
|
|
|
@ -12,7 +12,7 @@ variables:
|
|||
BuildConfiguration: 'Release'
|
||||
BuildPlatform: 'Any CPU'
|
||||
PublishFramework: 'net6.0'
|
||||
PublishProject: 'TypefaceUtil.Avalonia'
|
||||
PublishProject: 'TypefaceUtilAvalonia.Desktop'
|
||||
PublishRuntime: ''
|
||||
|
||||
jobs:
|
||||
|
|
|
@ -17,9 +17,13 @@ public class App : Application
|
|||
{
|
||||
if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
|
||||
{
|
||||
desktop.MainWindow = new MainWindow { DataContext = new MainWindowViewModel(), };
|
||||
desktop.MainWindow = new MainWindow { DataContext = new MainWindowViewModel() };
|
||||
}
|
||||
else if (ApplicationLifetime is ISingleViewApplicationLifetime single)
|
||||
{
|
||||
single.MainView = new MainView { DataContext = new MainWindowViewModel() };
|
||||
}
|
||||
|
||||
base.OnFrameworkInitializationCompleted();
|
||||
}
|
||||
}
|
||||
}
|
До Ширина: | Высота: | Размер: 172 KiB После Ширина: | Высота: | Размер: 172 KiB |
|
@ -1,10 +1,10 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<OutputType>Library</OutputType>
|
||||
<TargetFramework>netstandard2.0</TargetFramework>
|
||||
<IsPackable>False</IsPackable>
|
||||
<Nullable>enable</Nullable>
|
||||
<ApplicationIcon>Assets\Icon.ico</ApplicationIcon>
|
||||
<RootNamespace>TypefaceUtil.Avalonia</RootNamespace>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
@ -13,17 +13,11 @@
|
|||
|
||||
<PropertyGroup>
|
||||
<Description>An OpenType typeface utilities.</Description>
|
||||
<PackageId>TypefaceUtil.Avalonia</PackageId>
|
||||
<PackageId>TypefaceUtilAvalonia.Base</PackageId>
|
||||
<PackageLicenseExpression>MIT</PackageLicenseExpression>
|
||||
<PackageTags>opentype;ttf;fonts;cmap;unicode;skiasharp;text;converter;png;svg;xaml;avaloniaui;avalonia;typeface;codepoint</PackageTags>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<PublishTrimmed>False</PublishTrimmed>
|
||||
<PublishSingleFile>False</PublishSingleFile>
|
||||
<PublishReadyToRun>True</PublishReadyToRun>
|
||||
</PropertyGroup>
|
||||
|
||||
<Import Project="..\..\build\Base.props" />
|
||||
<Import Project="..\..\build\ReferenceAssemblies.props" />
|
||||
<Import Project="..\..\build\Avalonia.props" />
|
|
@ -105,7 +105,7 @@ public class GlyphViewModel : ViewModelBase
|
|||
{
|
||||
try
|
||||
{
|
||||
if (Application.Current?.Clipboard is { } clipboard)
|
||||
if (Application.Current?.Clipboard is { } clipboard && text is { })
|
||||
{
|
||||
await clipboard.SetTextAsync(text);
|
||||
}
|
|
@ -207,7 +207,7 @@ public class MainWindowViewModel : ViewModelBase
|
|||
var inputFile = InputFile;
|
||||
var fontSize = FontSize;
|
||||
var color = Color ?? "#000000";
|
||||
if (string.IsNullOrEmpty(inputFile))
|
||||
if (string.IsNullOrEmpty(inputFile) || inputFile is null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
@ -234,7 +234,7 @@ public class MainWindowViewModel : ViewModelBase
|
|||
var familyName = FamilyName;
|
||||
var fontSize = FontSize;
|
||||
var color = Color ?? "#000000";
|
||||
if (string.IsNullOrEmpty(familyName))
|
||||
if (string.IsNullOrEmpty(familyName) || familyName is null)
|
||||
{
|
||||
return;
|
||||
}
|
|
@ -1,26 +1,15 @@
|
|||
<Window xmlns="https://github.com/avaloniaui"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:vm="using:TypefaceUtil.Avalonia.ViewModels"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:controls="clr-namespace:Avalonia.Controls.Skia;assembly=Avalonia.Controls.Skia"
|
||||
mc:Ignorable="d" d:DesignWidth="735" d:DesignHeight="438"
|
||||
x:Class="TypefaceUtil.Avalonia.Views.MainWindow"
|
||||
x:Name="MainWindow"
|
||||
MinWidth="735"
|
||||
MinHeight="438"
|
||||
WindowStartupLocation="CenterScreen"
|
||||
Background="{x:Null}"
|
||||
TransparencyLevelHint="AcrylicBlur"
|
||||
ExtendClientAreaToDecorationsHint="True"
|
||||
ExtendClientAreaChromeHints="PreferSystemChrome"
|
||||
UseLayoutRounding="True"
|
||||
Icon="/Assets/Icon.ico"
|
||||
Title="TypefaceUtil">
|
||||
<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:TypefaceUtil.Avalonia.ViewModels"
|
||||
xmlns:controls="clr-namespace:Avalonia.Controls.Skia;assembly=Avalonia.Controls.Skia"
|
||||
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
||||
x:Class="TypefaceUtil.Avalonia.Views.MainView">
|
||||
<Design.DataContext>
|
||||
<vm:MainWindowViewModel/>
|
||||
</Design.DataContext>
|
||||
<Panel Margin="{Binding #MainWindow.OffScreenMargin}">
|
||||
<Panel>
|
||||
<!-- Styles -->
|
||||
<Panel.Styles>
|
||||
<!-- transition -->
|
||||
|
@ -317,4 +306,5 @@
|
|||
</Panel>
|
||||
</Panel>
|
||||
</Panel>
|
||||
</Window>
|
||||
</UserControl>
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
using Avalonia;
|
||||
using Avalonia;
|
||||
using Avalonia.Controls;
|
||||
using Avalonia.Input;
|
||||
using Avalonia.Markup.Xaml;
|
||||
|
@ -6,19 +6,16 @@ using Avalonia.Media;
|
|||
|
||||
namespace TypefaceUtil.Avalonia.Views;
|
||||
|
||||
public partial class MainWindow : Window
|
||||
public class MainView : UserControl
|
||||
{
|
||||
private bool _isDragging = false;
|
||||
private bool _isDragging;
|
||||
private Control? _dragControl;
|
||||
private Point _startPoint;
|
||||
private TranslateTransform? _dragTransform;
|
||||
|
||||
public MainWindow()
|
||||
public MainView()
|
||||
{
|
||||
InitializeComponent();
|
||||
#if DEBUG
|
||||
this.AttachDevTools();
|
||||
#endif
|
||||
}
|
||||
|
||||
private void InitializeComponent()
|
||||
|
@ -60,4 +57,5 @@ public partial class MainWindow : Window
|
|||
_dragTransform.Y = delta.Y;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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:views="clr-namespace:TypefaceUtil.Avalonia.Views"
|
||||
mc:Ignorable="d" d:DesignWidth="735" d:DesignHeight="438"
|
||||
x:Class="TypefaceUtil.Avalonia.Views.MainWindow"
|
||||
x:Name="MainWindow"
|
||||
MinWidth="735" MinHeight="438"
|
||||
WindowStartupLocation="CenterScreen"
|
||||
Background="{x:Null}"
|
||||
TransparencyLevelHint="AcrylicBlur"
|
||||
ExtendClientAreaToDecorationsHint="True"
|
||||
ExtendClientAreaChromeHints="PreferSystemChrome"
|
||||
UseLayoutRounding="True"
|
||||
Icon="/Assets/Icon.ico"
|
||||
Title="TypefaceUtil">
|
||||
<views:MainView Margin="{Binding #MainWindow.OffScreenMargin}"/>
|
||||
</Window>
|
|
@ -0,0 +1,21 @@
|
|||
using Avalonia;
|
||||
using Avalonia.Controls;
|
||||
using Avalonia.Markup.Xaml;
|
||||
|
||||
namespace TypefaceUtil.Avalonia.Views;
|
||||
|
||||
public partial class MainWindow : Window
|
||||
{
|
||||
public MainWindow()
|
||||
{
|
||||
InitializeComponent();
|
||||
#if DEBUG
|
||||
this.AttachDevTools();
|
||||
#endif
|
||||
}
|
||||
|
||||
private void InitializeComponent()
|
||||
{
|
||||
AvaloniaXamlLoader.Load(this);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,38 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<IsPackable>False</IsPackable>
|
||||
<Nullable>enable</Nullable>
|
||||
<ApplicationIcon>..\TypefaceUtilAvalonia.Base\Assets\Icon.ico</ApplicationIcon>
|
||||
<RootNamespace>TypefaceUtil.Avalonia</RootNamespace>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<AvaloniaResource Include="Assets\**" />
|
||||
</ItemGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<PublishTrimmed>False</PublishTrimmed>
|
||||
<PublishSingleFile>False</PublishSingleFile>
|
||||
<PublishReadyToRun>True</PublishReadyToRun>
|
||||
</PropertyGroup>
|
||||
|
||||
<Import Project="..\..\build\Base.props" />
|
||||
<Import Project="..\..\build\ReferenceAssemblies.props" />
|
||||
<Import Project="..\..\build\Avalonia.props" />
|
||||
<Import Project="..\..\build\Avalonia.Desktop.props" />
|
||||
<Import Project="..\..\build\Avalonia.Diagnostics.props" />
|
||||
<Import Project="..\..\build\Avalonia.ReactiveUI.props" />
|
||||
<Import Project="..\..\build\Avalonia.Xaml.Behaviors.props" />
|
||||
<Import Project="..\..\build\Avalonia.Controls.Skia.props" />
|
||||
<Import Project="..\..\build\SkiaSharp.props" />
|
||||
<Import Project="..\..\build\SkiaSharp.Linux.props" />
|
||||
<Import Project="..\..\build\Svg.Skia.props" />
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\TypefaceUtil.OpenType\TypefaceUtil.OpenType.csproj" />
|
||||
<ProjectReference Include="..\TypefaceUtilAvalonia.Base\TypefaceUtilAvalonia.Base.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
Загрузка…
Ссылка в новой задаче