[fix] 合併ICA的變更:將項目格式修改為SDK格式,添加ICC圖標

This commit is contained in:
Dubi906w 2024-05-11 01:35:32 +08:00
parent c229e2503d
commit d033ebda58
21 changed files with 162 additions and 312 deletions

View File

@ -0,0 +1,53 @@
using System.Reflection;
using System.Runtime.InteropServices;
using System.Windows;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("InkCanvasForClass")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Dubi906w")]
[assembly: AssemblyProduct("InkCanvasForClass")]
[assembly: AssemblyCopyright("Copyright © HARKOTEK Studio 2024")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
//In order to begin building localizable applications, set
//<UICulture>CultureYouAreCodingWith</UICulture> in your .csproj file
//inside a <PropertyGroup>. For example, if you are using US english
//in your source files, set the <UICulture> to en-US. Then uncomment
//the NeutralResourceLanguage attribute below. Update the "en-US" in
//the line below to match the UICulture setting in the project file.
//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
[assembly: ThemeInfo(
ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
//(used if a resource is not found in the page,
// or application resource dictionaries)
ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
//(used if a resource is not found in the page,
// app, or any theme specific resource dictionaries)
)]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("5.0.2.0")]
[assembly: AssemblyFileVersion("5.0.2.0")]

View File

@ -42,14 +42,14 @@ namespace Ink_Canvas.Helpers
NotifyUndoRedoState(); NotifyUndoRedoState();
} }
public void CommitStrokeRotateHistory(StrokeCollection strokeToBeReplaced, StrokeCollection generatedStroke) public void CommitStrokeManipulationHistory(StrokeCollection strokeToBeReplaced, StrokeCollection generatedStroke)
{ {
if (_currentIndex + 1 < _currentStrokeHistory.Count) if (_currentIndex + 1 < _currentStrokeHistory.Count)
{ {
_currentStrokeHistory.RemoveRange(_currentIndex + 1, (_currentStrokeHistory.Count - 1) - _currentIndex); _currentStrokeHistory.RemoveRange(_currentIndex + 1, (_currentStrokeHistory.Count - 1) - _currentIndex);
} }
_currentStrokeHistory.Add(new TimeMachineHistory(generatedStroke, _currentStrokeHistory.Add(new TimeMachineHistory(generatedStroke,
TimeMachineHistoryType.Rotate, TimeMachineHistoryType.Manipulation,
false, false,
strokeToBeReplaced)); strokeToBeReplaced));
_currentIndex = _currentStrokeHistory.Count - 1; _currentIndex = _currentStrokeHistory.Count - 1;
@ -143,6 +143,6 @@ namespace Ink_Canvas.Helpers
UserInput, UserInput,
ShapeRecognition, ShapeRecognition,
Clear, Clear,
Rotate Manipulation
} }
} }

View File

@ -1,23 +1,12 @@
<?xml version="1.0" encoding="utf-8"?> <Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup> <PropertyGroup>
<RuntimeIdentifiers>win;win-x86;win-x64;win-arm64</RuntimeIdentifiers> <RuntimeIdentifiers>win;win-x86;win-x64;win-arm64</RuntimeIdentifiers>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{8D0EDFC7-F974-4571-BC49-6F3A6653FE81}</ProjectGuid>
<OutputType>WinExe</OutputType> <OutputType>WinExe</OutputType>
<RootNamespace>Ink_Canvas</RootNamespace> <RootNamespace>Ink_Canvas</RootNamespace>
<AssemblyName>Ink Canvas Annotation</AssemblyName> <AssemblyName>InkCanvasForClass</AssemblyName>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion> <TargetFramework>net472</TargetFramework>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<WarningLevel>4</WarningLevel>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
<TargetFrameworkProfile />
<IsWebBootstrapper>false</IsWebBootstrapper> <IsWebBootstrapper>false</IsWebBootstrapper>
<PublishUrl>publish\</PublishUrl> <PublishUrl>publish\</PublishUrl>
<Install>true</Install> <Install>true</Install>
@ -33,90 +22,65 @@
<ApplicationVersion>2.0.2.%2a</ApplicationVersion> <ApplicationVersion>2.0.2.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust> <UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>false</BootstrapperEnabled> <BootstrapperEnabled>false</BootstrapperEnabled>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<UseWPF>true</UseWPF>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType> <DebugType>full</DebugType>
<Optimize>false</Optimize> <OutputPath>bin\$(Configuration)\</OutputPath>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType> <DebugType>pdbonly</DebugType>
<Optimize>true</Optimize> <OutputPath>bin\$(Configuration)\</OutputPath>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<ApplicationIcon>Resources\Ink Canvas Annotation.ico</ApplicationIcon> <ApplicationIcon>icc.ico</ApplicationIcon>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
<DebugSymbols>true</DebugSymbols> <OutputPath>bin\$(Platform)\$(Configuration)\</OutputPath>
<OutputPath>bin\x86\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType> <DebugType>full</DebugType>
<PlatformTarget>x86</PlatformTarget>
<LangVersion>7.3</LangVersion> <LangVersion>7.3</LangVersion>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>true</Prefer32Bit> <Prefer32Bit>true</Prefer32Bit>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
<OutputPath>bin\x86\Release\</OutputPath> <OutputPath>bin\$(Platform)\$(Configuration)\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType> <DebugType>pdbonly</DebugType>
<PlatformTarget>x86</PlatformTarget>
<LangVersion>7.3</LangVersion> <LangVersion>7.3</LangVersion>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>true</Prefer32Bit> <Prefer32Bit>true</Prefer32Bit>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<ApplicationManifest>app.manifest</ApplicationManifest> <ApplicationManifest>app.manifest</ApplicationManifest>
<Title>InkCanvasForClass</Title>
<Version>5.0.3</Version>
<Authors>Dubi906w</Authors>
<Product>InkCanvasForClass</Product>
<Copyright>© Copyright HARKOTEK Studio 2024-now</Copyright>
<PackageProjectUrl>https://icc.bliemhax.com</PackageProjectUrl>
<FileVersion>bundled</FileVersion>
<GeneratePackageOnBuild>False</GeneratePackageOnBuild>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|ARM64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|ARM64'">
<DebugSymbols>true</DebugSymbols> <OutputPath>bin\$(Platform)\$(Configuration)\</OutputPath>
<OutputPath>bin\ARM64\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType> <DebugType>full</DebugType>
<PlatformTarget>ARM64</PlatformTarget>
<LangVersion>7.3</LangVersion> <LangVersion>7.3</LangVersion>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>true</Prefer32Bit> <Prefer32Bit>true</Prefer32Bit>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|ARM64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|ARM64'">
<OutputPath>bin\ARM64\Release\</OutputPath> <OutputPath>bin\$(Platform)\$(Configuration)\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType> <DebugType>pdbonly</DebugType>
<PlatformTarget>ARM64</PlatformTarget>
<LangVersion>7.3</LangVersion> <LangVersion>7.3</LangVersion>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>true</Prefer32Bit> <Prefer32Bit>true</Prefer32Bit>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
<DebugSymbols>true</DebugSymbols> <OutputPath>bin\$(Platform)\$(Configuration)\</OutputPath>
<OutputPath>bin\x64\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType> <DebugType>full</DebugType>
<PlatformTarget>x64</PlatformTarget>
<LangVersion>7.3</LangVersion> <LangVersion>7.3</LangVersion>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>true</Prefer32Bit> <Prefer32Bit>true</Prefer32Bit>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
<OutputPath>bin\x64\Release\</OutputPath> <OutputPath>bin\$(Platform)\$(Configuration)\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType> <DebugType>pdbonly</DebugType>
<PlatformTarget>x64</PlatformTarget>
<LangVersion>7.3</LangVersion> <LangVersion>7.3</LangVersion>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>true</Prefer32Bit> <Prefer32Bit>true</Prefer32Bit>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
@ -131,19 +95,11 @@
</Reference> </Reference>
<Reference Include="Microsoft.VisualBasic" /> <Reference Include="Microsoft.VisualBasic" />
<Reference Include="netstandard" /> <Reference Include="netstandard" />
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" /> <Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<Reference Include="Microsoft.CSharp" /> <Reference Include="Microsoft.CSharp" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" /> <Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Net.Http" /> <Reference Include="System.Net.Http" />
<Reference Include="System.Xaml"> <Reference Include="System.Xaml" />
<RequiredTargetFramework>4.0</RequiredTargetFramework>
</Reference>
<Reference Include="UIAutomationClient" /> <Reference Include="UIAutomationClient" />
<Reference Include="UIAutomationTypes" /> <Reference Include="UIAutomationTypes" />
<Reference Include="WindowsBase" /> <Reference Include="WindowsBase" />
@ -152,191 +108,16 @@
<Reference Include="WindowsFormsIntegration" /> <Reference Include="WindowsFormsIntegration" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ApplicationDefinition Include="App.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</ApplicationDefinition>
<Compile Include="Helpers\AutoUpdateHelper.cs" />
<Compile Include="Helpers\DelAutoSavedFiles.cs" />
<Compile Include="Helpers\ForegroundWindowInfo.cs" />
<Compile Include="MainWindow_cs\MW_AutoFold.cs" />
<Compile Include="MainWindow_cs\MW_BoardIcons.cs" />
<Compile Include="MainWindow_cs\MW_FloatingBarIcons.cs" />
<Compile Include="MainWindow_cs\MW_AutoTheme.cs" />
<Compile Include="MainWindow_cs\MW_SelectionGestures.cs" />
<Compile Include="MainWindow_cs\MW_Hotkeys.cs" />
<Compile Include="MainWindow_cs\MW_Notification.cs" />
<Compile Include="MainWindow_cs\MW_BoardControls.cs" />
<Compile Include="MainWindow_cs\MW_AutoStart.cs" />
<Compile Include="MainWindow_cs\MW_TouchEvents.cs" />
<Compile Include="MainWindow_cs\MW_SettingsToLoad.cs" />
<Compile Include="MainWindow_cs\MW_SimulatePressure&amp;InkToShape.cs" />
<Compile Include="MainWindow_cs\MW_Screenshot.cs" />
<Compile Include="MainWindow_cs\MW_Save&amp;OpenStrokes.cs" />
<Compile Include="MainWindow_cs\MW_Settings.cs" />
<Compile Include="MainWindow_cs\MW_PPT.cs" />
<Compile Include="MainWindow_cs\MW_Timer.cs" />
<Compile Include="MainWindow_cs\MW_TimeMachine.cs" />
<Compile Include="MainWindow_cs\MW_ShapeDrawing.cs" />
<Compile Include="Windows\HasNewUpdateWindow.xaml.cs">
<DependentUpon>HasNewUpdateWindow.xaml</DependentUpon>
</Compile>
<Compile Include="Windows\OperatingGuideWindow.xaml.cs">
<DependentUpon>OperatingGuideWindow.xaml</DependentUpon>
</Compile>
<Compile Include="Windows\CycleProcessBar.xaml.cs">
<DependentUpon>CycleProcessBar.xaml</DependentUpon>
</Compile>
<Compile Include="Helpers\AnimationsHelper.cs" />
<Compile Include="Helpers\InkRecognizeHelper.cs" />
<Compile Include="Helpers\LogHelper.cs" />
<Compile Include="Helpers\MultiTouchInput.cs" />
<Compile Include="Helpers\SoftwareLauncher.cs" />
<Compile Include="Helpers\TimeMachine.cs" />
<Compile Include="Helpers\Converters.cs" />
<Compile Include="Helpers\WinTabWindowsChecker.cs" />
<Compile Include="Windows\NamesInputWindow.xaml.cs">
<DependentUpon>NamesInputWindow.xaml</DependentUpon>
</Compile>
<Compile Include="Windows\RandWindow.xaml.cs">
<DependentUpon>RandWindow.xaml</DependentUpon>
</Compile>
<Compile Include="Windows\YesOrNoNotificationWindow.xaml.cs">
<DependentUpon>YesOrNoNotificationWindow.xaml</DependentUpon>
</Compile>
<Compile Include="Resources\Settings.cs" />
<Compile Include="Windows\CountdownTimerWindow.xaml.cs">
<DependentUpon>CountdownTimerWindow.xaml</DependentUpon>
</Compile>
<Page Include="Windows\HasNewUpdateWindow.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Windows\OperatingGuideWindow.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Windows\CycleProcessBar.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="MainWindow.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Compile Include="App.xaml.cs">
<DependentUpon>App.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Compile Include="Helpers\Hotkey.cs" />
<Compile Include="MainWindow.xaml.cs">
<DependentUpon>MainWindow.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Page Include="Windows\NamesInputWindow.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Windows\RandWindow.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Resources\IconImageDictionary.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Resources\DrawShapeImageDictionary.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Resources\SeewoImageDictionary.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Resources\Styles\Dark.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Resources\Styles\Light.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Windows\YesOrNoNotificationWindow.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Windows\CountdownTimerWindow.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
<None Include="app.manifest" /> <None Include="app.manifest" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Include="App.config" /> <PackageReference Include="iNKORE.UI.WPF.Modern" Version="0.9.26.3" />
<PackageReference Include="MdXaml" Version="1.27.0" />
<PackageReference Include="Microsoft.Office.Interop.PowerPoint" Version="15.0.4420.1018" />
<PackageReference Include="MicrosoftOfficeCore" Version="15.0.0" />
</ItemGroup> </ItemGroup>
<!-- When Office is not installed -->
<ItemGroup> <ItemGroup>
<PackageReference Include="iNKORE.UI.WPF.Modern"> <PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<Version>0.9.26.3</Version>
</PackageReference>
<PackageReference Include="MdXaml">
<Version>1.27.0</Version>
</PackageReference>
<PackageReference Include="Microsoft.Office.Interop.PowerPoint">
<Version>15.0.4420.1018</Version>
</PackageReference>
<PackageReference Include="MicrosoftOfficeCore">
<Version>15.0.0</Version>
</PackageReference>
</ItemGroup>
<!-- Ignore COM Reference of Office, use nuget instead -->
<!--<ItemGroup Condition="false">
<COMReference Include="Microsoft.Office.Interop.PowerPoint">
<Guid>{91493440-5A91-11CF-8700-00AA0060263B}</Guid>
<VersionMajor>2</VersionMajor>
<VersionMinor>12</VersionMinor>
<Lcid>0</Lcid>
<WrapperTool>primary</WrapperTool>
<Isolated>False</Isolated>
<EmbedInteropTypes>True</EmbedInteropTypes>
</COMReference>
<COMReference Include="Microsoft.Office.Core">
<Guid>{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}</Guid>
<VersionMajor>2</VersionMajor>
<VersionMinor>8</VersionMinor>
<Lcid>0</Lcid>
<WrapperTool>primary</WrapperTool>
<Isolated>False</Isolated>
<EmbedInteropTypes>True</EmbedInteropTypes>
</COMReference>
</ItemGroup>-->
<ItemGroup>
<PackageReference Include="Newtonsoft.Json">
<Version>13.0.3</Version>
</PackageReference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<COMReference Include="IWshRuntimeLibrary"> <COMReference Include="IWshRuntimeLibrary">
@ -367,21 +148,6 @@
<EmbedInteropTypes>True</EmbedInteropTypes> <EmbedInteropTypes>True</EmbedInteropTypes>
</COMReference> </COMReference>
</ItemGroup> </ItemGroup>
<ItemGroup>
<WCFMetadata Include="Connected Services\" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include=".NETFramework,Version=v4.7.2">
<Visible>False</Visible>
<ProductName>Microsoft .NET Framework 4.7.2 %28x86 和 x64%29</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<ItemGroup> <ItemGroup>
<None Include="Resources\TimerDownNotice.wav" /> <None Include="Resources\TimerDownNotice.wav" />
</ItemGroup> </ItemGroup>
@ -403,9 +169,6 @@
<ItemGroup> <ItemGroup>
<Resource Include="Resources\Icons-png\close-circle.png" /> <Resource Include="Resources\Icons-png\close-circle.png" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<Resource Include="Resources\Ink Canvas Annotation.ico" />
</ItemGroup>
<ItemGroup> <ItemGroup>
<Resource Include="Resources\DeveloperAvatars\ChangSakura.png" /> <Resource Include="Resources\DeveloperAvatars\ChangSakura.png" />
<Resource Include="Resources\DeveloperAvatars\clover-yan.png" /> <Resource Include="Resources\DeveloperAvatars\clover-yan.png" />
@ -636,5 +399,26 @@
<Resource Include="Resources\new-icons\redo.png" /> <Resource Include="Resources\new-icons\redo.png" />
<Resource Include="Resources\new-icons\undo.png" /> <Resource Include="Resources\new-icons\undo.png" />
</ItemGroup> </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <ItemGroup>
<Resource Include="Resources\icc.ico" />
</ItemGroup>
<ItemGroup>
<Resource Include="icc.ico" />
</ItemGroup>
<ItemGroup>
<Compile Remove="AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<Compile Update="Properties\Settings.Designer.cs">
<DesignTimeSharedInput>True</DesignTimeSharedInput>
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<None Update="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
</ItemGroup>
</Project> </Project>

View File

@ -1,14 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectView>ProjectFiles</ProjectView>
<PublishUrlHistory>publish\</PublishUrlHistory>
<InstallUrlHistory />
<SupportUrlHistory />
<UpdateUrlHistory />
<BootstrapperUrlHistory />
<ErrorReportUrlHistory />
<FallbackCulture>zh-CN</FallbackCulture>
<VerifyUploadedFiles>false</VerifyUploadedFiles>
</PropertyGroup>
</Project>

View File

@ -112,6 +112,7 @@
MouseMove="inkCanvas_MouseMove" MouseMove="inkCanvas_MouseMove"
MouseUp="inkCanvas_MouseUp" MouseUp="inkCanvas_MouseUp"
ManipulationStarting="inkCanvas_ManipulationStarting" ManipulationStarting="inkCanvas_ManipulationStarting"
ManipulationStarted="inkCanvas_ManipulationStarted"
SelectionChanged="inkCanvas_SelectionChanged" SelectionChanged="inkCanvas_SelectionChanged"
StrokeCollected="inkCanvas_StrokeCollected"/> StrokeCollected="inkCanvas_StrokeCollected"/>
<Grid Visibility="{Binding ElementName=inkCanvas, Path=Visibility}"> <Grid Visibility="{Binding ElementName=inkCanvas, Path=Visibility}">

View File

@ -75,7 +75,7 @@ namespace Ink_Canvas {
inkCanvas.Strokes.Remove(strokes); inkCanvas.Strokes.Remove(strokes);
} }
} }
} else if (item.CommitType == TimeMachineHistoryType.Rotate) { } else if (item.CommitType == TimeMachineHistoryType.Manipulation) {
if (item.StrokeHasBeenCleared) { if (item.StrokeHasBeenCleared) {
foreach (var strokes in item.CurrentStroke) { foreach (var strokes in item.CurrentStroke) {
@ -162,7 +162,7 @@ namespace Ink_Canvas {
inkCanvas.Strokes.Remove(strokes); inkCanvas.Strokes.Remove(strokes);
} }
} }
} else if (item.CommitType == TimeMachineHistoryType.Rotate) { } else if (item.CommitType == TimeMachineHistoryType.Manipulation) {
if (item.StrokeHasBeenCleared) { if (item.StrokeHasBeenCleared) {
foreach (var strokes in item.CurrentStroke) { foreach (var strokes in item.CurrentStroke) {

View File

@ -974,7 +974,7 @@ namespace Ink_Canvas {
inkCanvas.Strokes.Remove(strokes); inkCanvas.Strokes.Remove(strokes);
} }
} }
} else if (item.CommitType == TimeMachineHistoryType.Rotate) { } else if (item.CommitType == TimeMachineHistoryType.Manipulation) {
if (item.StrokeHasBeenCleared) { if (item.StrokeHasBeenCleared) {
foreach (var strokes in item.CurrentStroke) { foreach (var strokes in item.CurrentStroke) {
@ -1066,7 +1066,7 @@ namespace Ink_Canvas {
inkCanvas.Strokes.Remove(strokes); inkCanvas.Strokes.Remove(strokes);
} }
} }
} else if (item.CommitType == TimeMachineHistoryType.Rotate) { } else if (item.CommitType == TimeMachineHistoryType.Manipulation) {
if (item.StrokeHasBeenCleared) { if (item.StrokeHasBeenCleared) {
foreach (var strokes in item.CurrentStroke) { foreach (var strokes in item.CurrentStroke) {

View File

@ -1,6 +1,6 @@
using Ink_Canvas.Helpers; using Ink_Canvas.Helpers;
using Microsoft.Office.Interop.PowerPoint; using Microsoft.Office.Interop.PowerPoint;
using iNKORE.UI.WPF.Modern; using iNKORE.UI.WPF.Helpers;
using System; using System;
using System.Diagnostics; using System.Diagnostics;
using System.IO; using System.IO;
@ -16,7 +16,7 @@ using System.Windows.Threading;
using Application = System.Windows.Application; using Application = System.Windows.Application;
using File = System.IO.File; using File = System.IO.File;
using MessageBox = System.Windows.MessageBox; using MessageBox = System.Windows.MessageBox;
using iNKORE.UI.WPF.Helpers; using iNKORE.UI.WPF.Modern;
namespace Ink_Canvas { namespace Ink_Canvas {
public partial class MainWindow : Window { public partial class MainWindow : Window {

View File

@ -121,7 +121,7 @@ namespace Ink_Canvas {
foreach (Stroke stroke in resultStrokes) { foreach (Stroke stroke in resultStrokes) {
stroke.Transform(m, false); stroke.Transform(m, false);
} }
_currentCommitType = CommitReason.Rotate; _currentCommitType = CommitReason.Manipulation;
inkCanvas.Strokes.Replace(targetStrokes, resultStrokes); inkCanvas.Strokes.Replace(targetStrokes, resultStrokes);
_currentCommitType = CommitReason.UserInput; _currentCommitType = CommitReason.UserInput;
isProgramChangeStrokeSelection = true; isProgramChangeStrokeSelection = true;
@ -151,7 +151,7 @@ namespace Ink_Canvas {
foreach (Stroke stroke in resultStrokes) { foreach (Stroke stroke in resultStrokes) {
stroke.Transform(m, false); stroke.Transform(m, false);
} }
_currentCommitType = CommitReason.Rotate; _currentCommitType = CommitReason.Manipulation;
inkCanvas.Strokes.Replace(targetStrokes, resultStrokes); inkCanvas.Strokes.Replace(targetStrokes, resultStrokes);
_currentCommitType = CommitReason.UserInput; _currentCommitType = CommitReason.UserInput;
isProgramChangeStrokeSelection = true; isProgramChangeStrokeSelection = true;
@ -179,7 +179,7 @@ namespace Ink_Canvas {
foreach (Stroke stroke in resultStrokes) { foreach (Stroke stroke in resultStrokes) {
stroke.Transform(m, false); stroke.Transform(m, false);
} }
_currentCommitType = CommitReason.Rotate; _currentCommitType = CommitReason.Manipulation;
inkCanvas.Strokes.Replace(targetStrokes, resultStrokes); inkCanvas.Strokes.Replace(targetStrokes, resultStrokes);
_currentCommitType = CommitReason.UserInput; _currentCommitType = CommitReason.UserInput;
isProgramChangeStrokeSelection = true; isProgramChangeStrokeSelection = true;
@ -207,7 +207,7 @@ namespace Ink_Canvas {
foreach (Stroke stroke in resultStrokes) { foreach (Stroke stroke in resultStrokes) {
stroke.Transform(m, false); stroke.Transform(m, false);
} }
_currentCommitType = CommitReason.Rotate; _currentCommitType = CommitReason.Manipulation;
inkCanvas.Strokes.Replace(targetStrokes, resultStrokes); inkCanvas.Strokes.Replace(targetStrokes, resultStrokes);
_currentCommitType = CommitReason.UserInput; _currentCommitType = CommitReason.UserInput;
isProgramChangeStrokeSelection = true; isProgramChangeStrokeSelection = true;

View File

@ -151,6 +151,7 @@ namespace Ink_Canvas {
{ {
ToggleSwitchEnableTimeDisplayInWhiteboardMode.IsOn = false; ToggleSwitchEnableTimeDisplayInWhiteboardMode.IsOn = false;
} }
SystemEvents_UserPreferenceChanged(null, null);
} else { } else {
Settings.Appearance = new Appearance(); Settings.Appearance = new Appearance();
} }

View File

@ -1418,13 +1418,17 @@ namespace Ink_Canvas {
} }
if (_currentCommitType == CommitReason.ShapeDrawing && drawingShapeMode != 9) { if (_currentCommitType == CommitReason.ShapeDrawing && drawingShapeMode != 9) {
_currentCommitType = CommitReason.UserInput; _currentCommitType = CommitReason.UserInput;
StrokeCollection collection; StrokeCollection collection = null;
if (lastTempStrokeCollection != null && lastTempStrokeCollection.Count > 0) { if (lastTempStrokeCollection != null && lastTempStrokeCollection.Count > 0) {
collection = lastTempStrokeCollection; collection = lastTempStrokeCollection;
} else { } else if (lastTempStroke != null)
{
collection = new StrokeCollection() { lastTempStroke }; collection = new StrokeCollection() { lastTempStroke };
} }
timeMachine.CommitStrokeUserInputHistory(collection); if (collection != null)
{
timeMachine.CommitStrokeUserInputHistory(collection);
}
} }
lastTempStroke = null; lastTempStroke = null;
lastTempStrokeCollection = null; lastTempStrokeCollection = null;

View File

@ -11,7 +11,7 @@ namespace Ink_Canvas {
ShapeDrawing, ShapeDrawing,
ShapeRecognition, ShapeRecognition,
ClearingCanvas, ClearingCanvas,
Rotate Manipulation
} }
private CommitReason _currentCommitType = CommitReason.UserInput; private CommitReason _currentCommitType = CommitReason.UserInput;
@ -40,8 +40,9 @@ namespace Ink_Canvas {
} }
if (_currentCommitType == CommitReason.CodeInput || _currentCommitType == CommitReason.ShapeDrawing) return; if (_currentCommitType == CommitReason.CodeInput || _currentCommitType == CommitReason.ShapeDrawing) return;
if (_currentCommitType == CommitReason.Rotate) { if (_currentCommitType == CommitReason.Manipulation)
timeMachine.CommitStrokeRotateHistory(e.Removed, e.Added); {
timeMachine.CommitStrokeManipulationHistory(e.Removed, e.Added);
return; return;
} }
if ((e.Added.Count != 0 || e.Removed.Count != 0) && IsEraseByPoint) { if ((e.Added.Count != 0 || e.Removed.Count != 0) && IsEraseByPoint) {

View File

@ -2,6 +2,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Tasks;
using System.Windows; using System.Windows;
using System.Windows.Controls; using System.Windows.Controls;
using System.Windows.Ink; using System.Windows.Ink;
@ -66,9 +67,10 @@ namespace Ink_Canvas {
TouchDownPointsList[e.StylusDevice.Id] = InkCanvasEditingMode.None; TouchDownPointsList[e.StylusDevice.Id] = InkCanvasEditingMode.None;
} }
private void MainWindow_StylusUp(object sender, StylusEventArgs e) { private async void MainWindow_StylusUp(object sender, StylusEventArgs e) {
try { try {
inkCanvas.Strokes.Add(GetStrokeVisual(e.StylusDevice.Id).Stroke); inkCanvas.Strokes.Add(GetStrokeVisual(e.StylusDevice.Id).Stroke);
await Task.Delay(5); // 避免渲染墨迹完成前预览墨迹被删除导致墨迹闪烁
inkCanvas.Children.Remove(GetVisualCanvas(e.StylusDevice.Id)); inkCanvas.Children.Remove(GetVisualCanvas(e.StylusDevice.Id));
inkCanvas_StrokeCollected(inkCanvas, new InkCanvasStrokeCollectedEventArgs(GetStrokeVisual(e.StylusDevice.Id).Stroke)); inkCanvas_StrokeCollected(inkCanvas, new InkCanvasStrokeCollectedEventArgs(GetStrokeVisual(e.StylusDevice.Id).Stroke));
@ -273,6 +275,24 @@ namespace Ink_Canvas {
} }
} }
private void inkCanvas_ManipulationStarted(object sender, ManipulationStartedEventArgs e)
{
if (isInMultiTouchMode || !Settings.Gesture.IsEnableTwoFingerGesture || inkCanvas.Strokes.Count == 0 || dec.Count() < 2) return;
_currentCommitType = CommitReason.Manipulation;
StrokeCollection strokes = inkCanvas.GetSelectedStrokes();
if (strokes.Count != 0)
{
inkCanvas.Strokes.Replace(strokes, strokes.Clone());
}
else
{
var originalStrokes = inkCanvas.Strokes;
var targetStrokes = originalStrokes.Clone();
originalStrokes.Replace(originalStrokes, targetStrokes);
}
_currentCommitType = CommitReason.UserInput;
}
private void Main_Grid_ManipulationDelta(object sender, ManipulationDeltaEventArgs e) { private void Main_Grid_ManipulationDelta(object sender, ManipulationDeltaEventArgs e) {
if (isInMultiTouchMode || !Settings.Gesture.IsEnableTwoFingerGesture) return; if (isInMultiTouchMode || !Settings.Gesture.IsEnableTwoFingerGesture) return;
if ((dec.Count >= 2 && (Settings.PowerPointSettings.IsEnableTwoFingerGestureInPresentationMode || StackPanelPPTControls.Visibility != Visibility.Visible || StackPanelPPTButtons.Visibility == Visibility.Collapsed)) || isSingleFingerDragMode) { if ((dec.Count >= 2 && (Settings.PowerPointSettings.IsEnableTwoFingerGestureInPresentationMode || StackPanelPPTControls.Visibility != Visibility.Visible || StackPanelPPTButtons.Visibility == Visibility.Collapsed)) || isSingleFingerDragMode) {

View File

@ -5,12 +5,12 @@ using System.Windows;
// General Information about an assembly is controlled through the following // General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information // set of attributes. Change these attribute values to modify the information
// associated with an assembly. // associated with an assembly.
[assembly: AssemblyTitle("Ink Canvas for Class")] [assembly: AssemblyTitle("InkCanvasForClass")]
[assembly: AssemblyDescription("")] [assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")] [assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Dubi906w")] [assembly: AssemblyCompany("HARKOTEK Studio")]
[assembly: AssemblyProduct("Ink Canvas for Class")] [assembly: AssemblyProduct("InkCanvasForClass")]
[assembly: AssemblyCopyright("Copyright © HARKOTEK Studio 2024")] [assembly: AssemblyCopyright("© Copyright HARKOTEK Studio 2024-now")]
[assembly: AssemblyTrademark("")] [assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")] [assembly: AssemblyCulture("")]
@ -49,5 +49,5 @@ using System.Windows;
// You can specify all the values or you can default the Build and Revision Numbers // You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below: // by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")] // [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("5.0.2.0")] [assembly: AssemblyVersion("5.0.3.0")]
[assembly: AssemblyFileVersion("5.0.2.0")] [assembly: AssemblyFileVersion("5.0.3.0")]

View File

@ -1,10 +1,10 @@
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <auto-generated> // <auto-generated>
// This code was generated by a tool. // 此代码由工具生成。
// Runtime Version:4.0.30319.42000 // 运行时版本:4.0.30319.42000
// //
// Changes to this file may cause incorrect behavior and will be lost if // 对此文件的更改可能会导致不正确的行为,并且如果
// the code is regenerated. // 重新生成代码,这些更改将会丢失。
// </auto-generated> // </auto-generated>
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
@ -12,7 +12,7 @@ namespace Ink_Canvas.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.0.0")] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.7.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

View File

@ -1,4 +1,4 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<DrawingImage <DrawingImage
x:Key="SeewoImageSource.PreviousSlideNormal"> x:Key="SeewoImageSource.PreviousSlideNormal">

Binary file not shown.

After

Width:  |  Height:  |  Size: 396 KiB

BIN
Ink Canvas/icc.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 396 KiB