├── .all-contributorsrc ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.yml │ ├── config.yml │ └── feature_request.yml └── workflows │ └── dotnet-desktop.yml ├── .gitignore ├── .idea └── .idea.Ink Canvas │ └── .idea │ ├── .gitignore │ ├── .name │ ├── encodings.xml │ ├── indexLayout.xml │ └── vcs.xml ├── .vs ├── Ink Canvas │ ├── CopilotIndices │ │ └── 17.14.698.11175 │ │ │ ├── CodeChunks.db │ │ │ └── SemanticSymbols.db │ ├── DesignTimeBuild │ │ └── .dtbcache.v2 │ └── v17 │ │ ├── .futdcache.v2 │ │ ├── .suo │ │ ├── DocumentLayout.backup.json │ │ └── DocumentLayout.json ├── ProjectEvaluation │ ├── ink canvas.metadata.v9.bin │ ├── ink canvas.projects.v9.bin │ └── ink canvas.strings.v9.bin ├── VSWorkspaceState.json ├── icc-0610.2.2 │ ├── FileContentIndex │ │ ├── 777fbe68-06ce-4859-8b8d-d763f120f2c0.vsidx │ │ └── 95c8e0b1-8689-4e23-84a6-a09fc53d1455.vsidx │ └── v17 │ │ ├── .wsuo │ │ ├── DocumentLayout.backup.json │ │ ├── DocumentLayout.json │ │ └── workspaceFileList.bin ├── icc-0610.2.3 │ ├── FileContentIndex │ │ ├── 29319a2c-7faa-4ee5-8d24-17c238ca803e.vsidx │ │ ├── 34c6dd5d-6075-49b2-ab2c-4e8d079d036e.vsidx │ │ ├── 7a5efc25-7ca5-4a7f-a0e0-0e8bf3996d0a.vsidx │ │ ├── 9947b71c-9e8d-4a20-80aa-4e44b1609bf2.vsidx │ │ └── e1d7dcd2-b73f-4c9a-b51c-9ba3cb8d4cbb.vsidx │ └── v17 │ │ ├── .wsuo │ │ ├── DocumentLayout.backup.json │ │ ├── DocumentLayout.json │ │ └── workspaceFileList.bin └── slnx.sqlite ├── AutomaticUpdateVersionControl.txt ├── CODE_OF_CONDUCT.md ├── Images └── icc ce.png ├── Ink Canvas.sln ├── Ink Canvas.sln.DotSettings.user ├── Ink Canvas ├── App.config ├── App.xaml ├── App.xaml.cs ├── AssemblyInfo.cs ├── Helpers │ ├── AnimationsHelper.cs │ ├── AutoUpdateHelper.cs │ ├── AvoidFullScreenHelper.cs │ ├── Converters.cs │ ├── DelAutoSavedFiles.cs │ ├── DelayActionHelper.cs │ ├── EdgeGestureUtil.cs │ ├── ForegroundWindowInfo.cs │ ├── FullScreenHelper.Win32.cs │ ├── FullScreenHelper.cs │ ├── Hotkey.cs │ ├── InkRecognizeHelper.cs │ ├── IsOutsideOfScreenHelper.cs │ ├── LogHelper.cs │ ├── MultiTouchInput.cs │ ├── SoftwareLauncher.cs │ ├── StartupCount.cs │ ├── TimeMachine.cs │ └── WinTabWindowsChecker.cs ├── IACore.dll ├── IALoader.dll ├── IAWinFX.dll ├── InkCanvasForClass.csproj ├── InkCanvasForClass.csproj.user ├── InkCanvasForClass_mlbp2gn0_wpftmp.csproj ├── MainWindow.xaml ├── MainWindow.xaml.cs ├── MainWindow_cs │ ├── ConfigHelper.cs │ ├── MW_AutoFold.cs │ ├── MW_AutoStart.cs │ ├── MW_AutoTheme.cs │ ├── MW_BoardControls.cs │ ├── MW_BoardIcons.cs │ ├── MW_Colors.cs │ ├── MW_FloatingBarIcons.cs │ ├── MW_Hotkeys.cs │ ├── MW_Icons.cs │ ├── MW_Notification.cs │ ├── MW_PPT.cs │ ├── MW_PageListView.cs │ ├── MW_Save&OpenStrokes.cs │ ├── MW_Screenshot.cs │ ├── MW_SelectionGestures.cs │ ├── MW_Settings.cs │ ├── MW_SettingsToLoad.cs │ ├── MW_ShapeDrawing.cs │ ├── MW_SimulatePressure&InkToShape.cs │ ├── MW_TimeMachine.cs │ ├── MW_Timer.cs │ ├── MW_TouchEvents.cs │ └── MW_TrayIcon.cs ├── Properties │ ├── AssemblyInfo.cs │ ├── PublishProfiles │ │ ├── FolderProfile.pubxml │ │ └── FolderProfile.pubxml.user │ ├── Resources.Designer.cs │ ├── Resources.resx │ ├── Settings.Designer.cs │ └── Settings.settings ├── Resources │ ├── ChickenSoup.cs │ ├── Cursors │ │ ├── Cursor.cur │ │ └── Pen.cur │ ├── DeveloperAvatars │ │ ├── Alan-CRL.png │ │ ├── CN-Ironegg.jpg │ │ ├── ChangSakura.png │ │ ├── NetheriteBowl.png │ │ ├── NotYoojun.png │ │ ├── RaspberryKan.jpg │ │ ├── STBBRD.png │ │ ├── WXRIW.png │ │ ├── aaaaaaccd.jpg │ │ ├── clover-yan.png │ │ ├── dubi906w.jpg │ │ ├── jiajiaxd.jpg │ │ ├── kengwang.png │ │ ├── wwei.png │ │ └── yuwenhui2020.png │ ├── DrawShapeImageDictionary.xaml │ ├── IconImageDictionary.xaml │ ├── Icons-Fluent │ │ ├── ic_fluent_add_circle_24_regular.png │ │ ├── ic_fluent_arrow_circle_left_24_regular.png │ │ ├── ic_fluent_arrow_circle_right_24_regular.png │ │ ├── ic_fluent_arrow_clockwise_24_regular.png │ │ ├── ic_fluent_arrow_rotate_clockwise_24_regular.png │ │ ├── ic_fluent_book_question_mark_24_regular.png │ │ ├── ic_fluent_calendar_sync_24_regular.png │ │ ├── ic_fluent_camera_24_regular.png │ │ ├── ic_fluent_clock_24_regular.png │ │ ├── ic_fluent_control_button_24_regular.png │ │ ├── ic_fluent_copy_24_regular.png │ │ ├── ic_fluent_copy_add_24_regular.png │ │ ├── ic_fluent_cursorWITHdelete_24_regular.png │ │ ├── ic_fluent_cursor_24_regular.png │ │ ├── ic_fluent_dark_theme_24_regular.png │ │ ├── ic_fluent_delete_24_regular.png │ │ ├── ic_fluent_dismiss_circle_24_regular.png │ │ ├── ic_fluent_drag_24_regular.png │ │ ├── ic_fluent_dual_screen_span_24_regular.png │ │ ├── ic_fluent_edit_24_regular.png │ │ ├── ic_fluent_flip_horizontal_24_regular.png │ │ ├── ic_fluent_flip_vertical_24_regular.png │ │ ├── ic_fluent_folder_open_24_regular.png │ │ ├── ic_fluent_keyboard_24_regular.png │ │ ├── ic_fluent_lasso_24_regular.png │ │ ├── ic_fluent_people_24_regular.png │ │ ├── ic_fluent_people_money_24_regular.png │ │ ├── ic_fluent_person_money_24_regular.png │ │ ├── ic_fluent_power_24_regular.png │ │ ├── ic_fluent_save_24_regular.png │ │ ├── ic_fluent_scale_fit_24_regular.png │ │ ├── ic_fluent_scales_24_regular.png │ │ ├── ic_fluent_settings_24_regular.png │ │ ├── ic_fluent_shapes_24_regular.png │ │ ├── ic_fluent_signature_24_regular.png │ │ ├── ic_fluent_timer_24_regular.png │ │ ├── ic_fluent_weather_moon_24_regular.png │ │ ├── ic_fluent_weather_sunny_24_regular.png │ │ ├── ic_fluent_whiteboard_24_regular.png │ │ └── party.png │ ├── Icons-png │ │ ├── AdmoxBooth.png │ │ ├── AdmoxWhiteboard.png │ │ ├── Desmos.png │ │ ├── Donview.png │ │ ├── EasiCamera.png │ │ ├── EasiNote.png │ │ ├── EasiNote3.png │ │ ├── EasiNote3C.png │ │ ├── EasiNote5C.png │ │ ├── HiteAnnotation.png │ │ ├── HiteBoard.png │ │ ├── HiteCamera.png │ │ ├── HiteLightBoard.png │ │ ├── InkCanvas.png │ │ ├── MaxHubWhiteboard.png │ │ ├── PPTTools.png │ │ ├── Powerpoint.png │ │ ├── Seewo2Annotation.png │ │ ├── SeewoPinco.png │ │ ├── VComYouJiao.png │ │ ├── WPS.png │ │ ├── WenXiang.png │ │ ├── Whiteboard.png │ │ ├── YiYunVisualPresenter.png │ │ ├── YiYunWhiteboard.png │ │ ├── check-box-background.png │ │ ├── close-circle.png │ │ ├── down.png │ │ ├── eraser-line.png │ │ ├── eraser-outline.png │ │ ├── geo-icons │ │ │ ├── arrow.png │ │ │ ├── centered-circle-dashed.png │ │ │ ├── centered-circle.png │ │ │ ├── centered-oval.png │ │ │ ├── centered-square.png │ │ │ ├── cone.png │ │ │ ├── cube.png │ │ │ ├── cylinder.png │ │ │ ├── dashed-line.png │ │ │ ├── dotted-line.png │ │ │ ├── line.png │ │ │ ├── paralle-lines.png │ │ │ └── square.png │ │ ├── ica.png │ │ ├── icc-transparent-dark-small.png │ │ ├── icc-transparent-dark.png │ │ ├── icc-transparent.png │ │ ├── icc.png │ │ ├── idt.png │ │ ├── kuanciya.png │ │ ├── kuandogeyuanliangwo.png │ │ ├── kuandoujiyanhuaji.png │ │ ├── kuanneikuhuaji.png │ │ ├── kuanshounvhuaji.png │ │ ├── menu-back-highlighted.png │ │ ├── menu-back.png │ │ ├── minimize.png │ │ ├── penUpright.png │ │ ├── playCircle.png │ │ ├── pressdown-background.png │ │ ├── redo.png │ │ ├── setting.png │ │ ├── tiebahuaji.png │ │ ├── transparent-grid.png │ │ ├── twoFingelMove-Blue.png │ │ ├── twoFingelMove.png │ │ ├── undo.png │ │ └── up.png │ ├── Icons │ │ ├── DrawShapeIcon.ai │ │ ├── DrawShapeIcon.svg │ │ ├── Flip.ai │ │ ├── Flip.svg │ │ ├── Rotate.ai │ │ ├── Rotate.svg │ │ ├── Rotate45.svg │ │ ├── Rotate90.svg │ │ ├── ShapeArrowLine.ai │ │ ├── ShapeArrowLine.svg │ │ ├── ShapeCircle.ai │ │ ├── ShapeCircle.svg │ │ ├── ShapeCone.ai │ │ ├── ShapeCone.svg │ │ ├── ShapeCoordinate1.ai │ │ ├── ShapeCoordinate1.svg │ │ ├── ShapeCoordinate2.ai │ │ ├── ShapeCoordinate2.svg │ │ ├── ShapeCoordinate3.ai │ │ ├── ShapeCoordinate3.svg │ │ ├── ShapeCoordinate4.ai │ │ ├── ShapeCoordinate4.svg │ │ ├── ShapeCoordinate5.ai │ │ ├── ShapeCoordinate5.svg │ │ ├── ShapeCuboid.ai │ │ ├── ShapeCuboid.svg │ │ ├── ShapeCylinder.ai │ │ ├── ShapeCylinder.svg │ │ ├── ShapeDashedCircle.ai │ │ ├── ShapeDashedCircle.svg │ │ ├── ShapeDashedLine.ai │ │ ├── ShapeDashedLine.svg │ │ ├── ShapeDotLine.ai │ │ ├── ShapeDotLine.svg │ │ ├── ShapeEllipse.ai │ │ ├── ShapeEllipse.svg │ │ ├── ShapeEllipseCenter.ai │ │ ├── ShapeEllipseCenter.svg │ │ ├── ShapeEllipseCenterWithFocalPoint.ai │ │ ├── ShapeEllipseCenterWithFocalPoint.svg │ │ ├── ShapeHyperbola.ai │ │ ├── ShapeHyperbola.svg │ │ ├── ShapeHyperbolaWithFocalPoint.ai │ │ ├── ShapeHyperbolaWithFocalPoint.svg │ │ ├── ShapeLine.ai │ │ ├── ShapeLine.svg │ │ ├── ShapeParabola.ai │ │ ├── ShapeParabola.svg │ │ ├── ShapeParabolaWithFocalPoint.ai │ │ ├── ShapeParabolaWithFocalPoint.svg │ │ ├── ShapeParallelLine.ai │ │ ├── ShapeParallelLine.svg │ │ ├── ShapeRectangle.ai │ │ ├── ShapeRectangle.svg │ │ ├── ShapeRectangleCenter.ai │ │ ├── ShapeRectangleCenter.svg │ │ ├── ShapeTetrahedron.ai │ │ └── ShapeTetrahedron.svg │ ├── PresentationExample │ │ ├── bottombar-dark.png │ │ ├── bottombar-white.png │ │ ├── page.jpg │ │ ├── sidebar-dark.png │ │ ├── sidebar-white.png │ │ └── toolbar.png │ ├── SeewoImageDictionary.xaml │ ├── Settings.cs │ ├── Styles │ │ ├── Dark.xaml │ │ └── Light.xaml │ ├── TimerDownNotice.wav │ ├── hatsune-miku1.png │ ├── icc.ico │ └── new-icons │ │ ├── blackboard.png │ │ ├── checked-black.png │ │ ├── checked-white.png │ │ ├── chevron-left.png │ │ ├── circle-eraser-lined.png │ │ ├── circle-eraser-solid.png │ │ ├── close-white.png │ │ ├── cursor-clear.png │ │ ├── cursor-lined.png │ │ ├── cursor-solid.png │ │ ├── end-slides-show.png │ │ ├── eraser-lined.png │ │ ├── eraser-solid.png │ │ ├── eye-off.png │ │ ├── eye.png │ │ ├── gesture-enabled.png │ │ ├── gesture.png │ │ ├── grid.png │ │ ├── hand-move.png │ │ ├── highlighter-white.png │ │ ├── lasso-select-lined.png │ │ ├── lasso-select-solid.png │ │ ├── multi-touch.png │ │ ├── osu-lazer-triangles.png │ │ ├── pen-lined.png │ │ ├── pen-solid.png │ │ ├── pen-white.png │ │ ├── redo.png │ │ ├── rotate.png │ │ ├── shapes.png │ │ ├── trash.png │ │ ├── undo.png │ │ ├── unfold-chevron.png │ │ └── zoom.png ├── Windows │ ├── CountdownTimerWindow.xaml │ ├── CountdownTimerWindow.xaml.cs │ ├── CycleProcessBar.xaml │ ├── CycleProcessBar.xaml.cs │ ├── HasNewUpdateWindow.xaml │ ├── HasNewUpdateWindow.xaml.cs │ ├── NamesInputWindow.xaml │ ├── NamesInputWindow.xaml.cs │ ├── OperatingGuideWindow.xaml │ ├── OperatingGuideWindow.xaml.cs │ ├── RandWindow.xaml │ ├── RandWindow.xaml.cs │ ├── YesOrNoNotificationWindow.xaml │ └── YesOrNoNotificationWindow.xaml.cs └── app.manifest ├── LICENSE ├── Manual.md ├── README.md ├── UpdateLog.md ├── icc.png └── privacy.txt /.all-contributorsrc: -------------------------------------------------------------------------------- 1 | { 2 | "projectName": "community", 3 | "projectOwner": "InkCanvasForClass", 4 | "files": [ 5 | "README.md" 6 | ], 7 | "commitType": "docs", 8 | "commitConvention": "angular", 9 | "contributorsPerLine": 7, 10 | "contributors": [ 11 | { 12 | "login": "CJKmkp", 13 | "name": "CJK_mkp", 14 | "avatar_url": "https://avatars.githubusercontent.com/u/113243675?v=4", 15 | "profile": "https://github.com/CJKmkp", 16 | "contributions": [ 17 | "maintenance", 18 | "doc" 19 | ] 20 | }, 21 | { 22 | "login": "Hydro11451", 23 | "name": "Hydrogen", 24 | "avatar_url": "https://avatars.githubusercontent.com/u/214308559?v=4", 25 | "profile": "https://github.com/Hydro11451", 26 | "contributions": [ 27 | "maintenance", 28 | "doc" 29 | ] 30 | } 31 | ] 32 | } 33 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.yml: -------------------------------------------------------------------------------- 1 | name: Bug 报告 | Bug Report 2 | description: 反馈软件缺陷或异常 | Report a bug to help us improve 3 | labels: [bug] 4 | body: 5 | - type: markdown 6 | attributes: 7 | value: | 8 | 感谢你的反馈!请详细填写以下内容,便于我们定位问题。 9 | Thank you for your feedback! Please fill out the following information to help us locate the issue. 10 | - type: input 11 | id: version 12 | attributes: 13 | label: 软件版本 | App Version 14 | description: 可在设置中的“关于”界面查看 | You can find it on the "About" interface in the settings 15 | placeholder: 例如 v1.2.3 | e.g. v1.2.3 16 | validations: 17 | required: true 18 | - type: input 19 | id: os 20 | attributes: 21 | label: 操作系统及版本 | OS & Version 22 | placeholder: 例如 Windows 10 22H2 64位 | e.g. Windows 10 22H2 64bit 23 | validations: 24 | required: true 25 | - type: textarea 26 | id: description 27 | attributes: 28 | label: 问题描述 | Description 29 | description: 简要描述遇到的问题 | Briefly describe the problem 30 | validations: 31 | required: true 32 | - type: textarea 33 | id: steps 34 | attributes: 35 | label: 复现步骤 | Steps to Reproduce 36 | description: 如何复现该问题?如有必要可附截图/录屏 | How to reproduce this bug? Screenshots/recordings if needed 37 | placeholder: | 38 | 1. 39 | 2. 40 | 3. 41 | validations: 42 | required: false 43 | - type: textarea 44 | id: expected 45 | attributes: 46 | label: 期望结果 | Expected Behavior 47 | description: 你期望的正确行为或结果 | What did you expect to happen? 48 | validations: 49 | required: false 50 | - type: textarea 51 | id: extra 52 | attributes: 53 | label: 其他补充信息 | Additional Info 54 | description: 其他相关信息(如日志、配置、特殊环境等)| Any other context, logs, configs, special environment, etc. 55 | validations: 56 | required: false 57 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.yml: -------------------------------------------------------------------------------- 1 | name: 功能请求 | Feature Request 2 | description: 提出你对本项目的功能建议 | Suggest an idea for this project 3 | labels: [enhancement] 4 | body: 5 | - type: markdown 6 | attributes: 7 | value: | 8 | 感谢你的建议!请详细描述你的需求。 9 | Thank you for your suggestion! Please describe your needs in detail. 10 | - type: textarea 11 | id: description 12 | attributes: 13 | label: 功能描述 | Description 14 | description: 请描述你希望添加的功能 | Describe the feature you want 15 | validations: 16 | required: true 17 | - type: textarea 18 | id: motivation 19 | attributes: 20 | label: 需求动机 | Motivation 21 | description: 为什么需要这个功能?| Why do you need this feature? 22 | validations: 23 | required: false 24 | - type: textarea 25 | id: design 26 | attributes: 27 | label: 期望设计 | Expected Design 28 | description: (可选)描述或画出你期望的界面或交互 | (Optional) Describe or sketch the expected UI/UX 29 | validations: 30 | required: false 31 | - type: textarea 32 | id: extra 33 | attributes: 34 | label: 其他补充信息 | Additional Info 35 | description: 其他补充说明或建议 | Any other context or suggestions 36 | validations: 37 | required: false 38 | -------------------------------------------------------------------------------- /.github/workflows/dotnet-desktop.yml: -------------------------------------------------------------------------------- 1 | name: .NET Build 2 | 3 | on: 4 | push: 5 | branches: [ main,beta ] 6 | pull_request: 7 | branches: [ main ] 8 | 9 | jobs: 10 | 11 | build: 12 | runs-on: windows-latest 13 | 14 | steps: 15 | - uses: actions/checkout@v4.2.2 16 | 17 | - name: Setup MSbuild 18 | uses: microsoft/setup-msbuild@v2 19 | 20 | - name: Setup NuGet 21 | uses: NuGet/setup-nuget@v2.0.1 22 | 23 | - name: Restore NuGet Packages 24 | run: nuget restore "Ink Canvas.sln" 25 | 26 | - name: Build the Solution 27 | run: | 28 | msbuild -t:restore /p:GitFlow="Github Action" 29 | msbuild /p:platform="Any CPU" /p:configuration="Release" /p:GitFlow="Github Action" "Ink Canvas/InkCanvasForClass.csproj" 30 | 31 | - name: Upload to artifact 32 | uses: actions/upload-artifact@v4.5.0 33 | with: 34 | name: InkCanvasForClass 35 | path: "Ink Canvas/bin/Any CPU/Release/net472/" 36 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | obj/ 2 | bin/ 3 | .vs -------------------------------------------------------------------------------- /.idea/.idea.Ink Canvas/.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | # Rider ignored files 5 | /projectSettingsUpdater.xml 6 | /modules.xml 7 | /contentModel.xml 8 | /.idea.Ink Canvas.iml 9 | # Editor-based HTTP Client requests 10 | /httpRequests/ 11 | # Datasource local storage ignored files 12 | /dataSources/ 13 | /dataSources.local.xml 14 | -------------------------------------------------------------------------------- /.idea/.idea.Ink Canvas/.idea/.name: -------------------------------------------------------------------------------- 1 | Ink Canvas -------------------------------------------------------------------------------- /.idea/.idea.Ink Canvas/.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /.idea/.idea.Ink Canvas/.idea/indexLayout.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | ../../ICC CE main 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/.idea.Ink Canvas/.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.vs/Ink Canvas/CopilotIndices/17.14.698.11175/CodeChunks.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/.vs/Ink Canvas/CopilotIndices/17.14.698.11175/CodeChunks.db -------------------------------------------------------------------------------- /.vs/Ink Canvas/CopilotIndices/17.14.698.11175/SemanticSymbols.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/.vs/Ink Canvas/CopilotIndices/17.14.698.11175/SemanticSymbols.db -------------------------------------------------------------------------------- /.vs/Ink Canvas/DesignTimeBuild/.dtbcache.v2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/.vs/Ink Canvas/DesignTimeBuild/.dtbcache.v2 -------------------------------------------------------------------------------- /.vs/Ink Canvas/v17/.futdcache.v2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/.vs/Ink Canvas/v17/.futdcache.v2 -------------------------------------------------------------------------------- /.vs/Ink Canvas/v17/.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/.vs/Ink Canvas/v17/.suo -------------------------------------------------------------------------------- /.vs/ProjectEvaluation/ink canvas.metadata.v9.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/.vs/ProjectEvaluation/ink canvas.metadata.v9.bin -------------------------------------------------------------------------------- /.vs/ProjectEvaluation/ink canvas.projects.v9.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/.vs/ProjectEvaluation/ink canvas.projects.v9.bin -------------------------------------------------------------------------------- /.vs/ProjectEvaluation/ink canvas.strings.v9.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/.vs/ProjectEvaluation/ink canvas.strings.v9.bin -------------------------------------------------------------------------------- /.vs/VSWorkspaceState.json: -------------------------------------------------------------------------------- 1 | { 2 | "ExpandedNodes": [ 3 | "" 4 | ], 5 | "SelectedNode": "\\Ink Canvas.sln", 6 | "PreviewInSolutionExplorer": false 7 | } -------------------------------------------------------------------------------- /.vs/icc-0610.2.2/FileContentIndex/777fbe68-06ce-4859-8b8d-d763f120f2c0.vsidx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/.vs/icc-0610.2.2/FileContentIndex/777fbe68-06ce-4859-8b8d-d763f120f2c0.vsidx -------------------------------------------------------------------------------- /.vs/icc-0610.2.2/FileContentIndex/95c8e0b1-8689-4e23-84a6-a09fc53d1455.vsidx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/.vs/icc-0610.2.2/FileContentIndex/95c8e0b1-8689-4e23-84a6-a09fc53d1455.vsidx -------------------------------------------------------------------------------- /.vs/icc-0610.2.2/v17/.wsuo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/.vs/icc-0610.2.2/v17/.wsuo -------------------------------------------------------------------------------- /.vs/icc-0610.2.2/v17/workspaceFileList.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/.vs/icc-0610.2.2/v17/workspaceFileList.bin -------------------------------------------------------------------------------- /.vs/icc-0610.2.3/FileContentIndex/29319a2c-7faa-4ee5-8d24-17c238ca803e.vsidx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/.vs/icc-0610.2.3/FileContentIndex/29319a2c-7faa-4ee5-8d24-17c238ca803e.vsidx -------------------------------------------------------------------------------- /.vs/icc-0610.2.3/FileContentIndex/34c6dd5d-6075-49b2-ab2c-4e8d079d036e.vsidx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/.vs/icc-0610.2.3/FileContentIndex/34c6dd5d-6075-49b2-ab2c-4e8d079d036e.vsidx -------------------------------------------------------------------------------- /.vs/icc-0610.2.3/FileContentIndex/7a5efc25-7ca5-4a7f-a0e0-0e8bf3996d0a.vsidx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/.vs/icc-0610.2.3/FileContentIndex/7a5efc25-7ca5-4a7f-a0e0-0e8bf3996d0a.vsidx -------------------------------------------------------------------------------- /.vs/icc-0610.2.3/FileContentIndex/9947b71c-9e8d-4a20-80aa-4e44b1609bf2.vsidx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/.vs/icc-0610.2.3/FileContentIndex/9947b71c-9e8d-4a20-80aa-4e44b1609bf2.vsidx -------------------------------------------------------------------------------- /.vs/icc-0610.2.3/FileContentIndex/e1d7dcd2-b73f-4c9a-b51c-9ba3cb8d4cbb.vsidx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/.vs/icc-0610.2.3/FileContentIndex/e1d7dcd2-b73f-4c9a-b51c-9ba3cb8d4cbb.vsidx -------------------------------------------------------------------------------- /.vs/icc-0610.2.3/v17/.wsuo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/.vs/icc-0610.2.3/v17/.wsuo -------------------------------------------------------------------------------- /.vs/icc-0610.2.3/v17/DocumentLayout.backup.json: -------------------------------------------------------------------------------- 1 | { 2 | "Version": 1, 3 | "WorkspaceRootPath": "C:\\Users\\Administrator\\Desktop\\ICC CE\\icc-0610.2.3\\", 4 | "Documents": [ 5 | { 6 | "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Administrator\\Desktop\\ICC CE\\icc-0610.2.3\\icc.png||{177559E0-D141-11D0-92DF-00A0C9138C45}", 7 | "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:icc.png||{177559E0-D141-11D0-92DF-00A0C9138C45}" 8 | }, 9 | { 10 | "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Administrator\\Desktop\\ICC CE\\icc-0610.2.3\\AutomaticUpdateVersionControl.txt||{8B382828-6202-11D1-8870-0000F87579D2}", 11 | "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:AutomaticUpdateVersionControl.txt||{8B382828-6202-11D1-8870-0000F87579D2}" 12 | }, 13 | { 14 | "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Administrator\\Desktop\\ICC CE\\icc-0610.2.3\\.gitignore||{3B902123-F8A7-4915-9F01-361F908088D0}", 15 | "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:.gitignore||{3B902123-F8A7-4915-9F01-361F908088D0}" 16 | } 17 | ], 18 | "DocumentGroupContainers": [ 19 | { 20 | "Orientation": 0, 21 | "VerticalTabListWidth": 256, 22 | "DocumentGroups": [ 23 | { 24 | "DockedWidth": 200, 25 | "SelectedChildIndex": 0, 26 | "Children": [ 27 | { 28 | "$type": "Document", 29 | "DocumentIndex": 0, 30 | "Title": "icc.png", 31 | "DocumentMoniker": "C:\\Users\\Administrator\\Desktop\\ICC CE\\icc-0610.2.3\\icc.png", 32 | "RelativeDocumentMoniker": "icc.png", 33 | "ToolTip": "C:\\Users\\Administrator\\Desktop\\ICC CE\\icc-0610.2.3\\icc.png", 34 | "RelativeToolTip": "icc.png", 35 | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001533|", 36 | "WhenOpened": "2025-05-24T13:12:49.619Z" 37 | }, 38 | { 39 | "$type": "Document", 40 | "DocumentIndex": 1, 41 | "Title": "AutomaticUpdateVersionControl.txt", 42 | "DocumentMoniker": "C:\\Users\\Administrator\\Desktop\\ICC CE\\icc-0610.2.3\\AutomaticUpdateVersionControl.txt", 43 | "RelativeDocumentMoniker": "AutomaticUpdateVersionControl.txt", 44 | "ToolTip": "C:\\Users\\Administrator\\Desktop\\ICC CE\\icc-0610.2.3\\AutomaticUpdateVersionControl.txt", 45 | "RelativeToolTip": "AutomaticUpdateVersionControl.txt", 46 | "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", 47 | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003109|", 48 | "WhenOpened": "2025-05-24T13:12:49.575Z" 49 | }, 50 | { 51 | "$type": "Document", 52 | "DocumentIndex": 2, 53 | "Title": ".gitignore", 54 | "DocumentMoniker": "C:\\Users\\Administrator\\Desktop\\ICC CE\\icc-0610.2.3\\.gitignore", 55 | "RelativeDocumentMoniker": ".gitignore", 56 | "ToolTip": "C:\\Users\\Administrator\\Desktop\\ICC CE\\icc-0610.2.3\\.gitignore", 57 | "RelativeToolTip": ".gitignore", 58 | "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", 59 | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001001|", 60 | "WhenOpened": "2025-05-24T13:12:49.025Z" 61 | } 62 | ] 63 | } 64 | ] 65 | } 66 | ] 67 | } -------------------------------------------------------------------------------- /.vs/icc-0610.2.3/v17/DocumentLayout.json: -------------------------------------------------------------------------------- 1 | { 2 | "Version": 1, 3 | "WorkspaceRootPath": "C:\\Users\\Administrator\\Desktop\\ICC CE\\icc-0610.2.3\\", 4 | "Documents": [ 5 | { 6 | "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Administrator\\Desktop\\ICC CE\\icc-0610.2.3\\icc.png||{177559E0-D141-11D0-92DF-00A0C9138C45}", 7 | "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:icc.png||{177559E0-D141-11D0-92DF-00A0C9138C45}" 8 | }, 9 | { 10 | "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Administrator\\Desktop\\ICC CE\\icc-0610.2.3\\AutomaticUpdateVersionControl.txt||{8B382828-6202-11D1-8870-0000F87579D2}", 11 | "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:AutomaticUpdateVersionControl.txt||{8B382828-6202-11D1-8870-0000F87579D2}" 12 | }, 13 | { 14 | "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Administrator\\Desktop\\ICC CE\\icc-0610.2.3\\.gitignore||{3B902123-F8A7-4915-9F01-361F908088D0}", 15 | "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:.gitignore||{3B902123-F8A7-4915-9F01-361F908088D0}" 16 | } 17 | ], 18 | "DocumentGroupContainers": [ 19 | { 20 | "Orientation": 0, 21 | "VerticalTabListWidth": 256, 22 | "DocumentGroups": [ 23 | { 24 | "DockedWidth": 200, 25 | "SelectedChildIndex": 1, 26 | "Children": [ 27 | { 28 | "$type": "Bookmark", 29 | "Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}" 30 | }, 31 | { 32 | "$type": "Document", 33 | "DocumentIndex": 0, 34 | "Title": "icc.png - PNG [1328x1328, 32 \u4F4D, PNG]", 35 | "DocumentMoniker": "C:\\Users\\Administrator\\Desktop\\ICC CE\\icc-0610.2.3\\icc.png", 36 | "RelativeDocumentMoniker": "icc.png", 37 | "ToolTip": "C:\\Users\\Administrator\\Desktop\\ICC CE\\icc-0610.2.3\\icc.png - PNG [1328x1328, 32 \u4F4D, PNG]", 38 | "RelativeToolTip": "icc.png - PNG [1328x1328, 32 \u4F4D, PNG]", 39 | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001533|", 40 | "WhenOpened": "2025-05-24T13:12:49.619Z", 41 | "EditorCaption": " - PNG [1328x1328, 32 \u4F4D, PNG]" 42 | }, 43 | { 44 | "$type": "Document", 45 | "DocumentIndex": 1, 46 | "Title": "AutomaticUpdateVersionControl.txt", 47 | "DocumentMoniker": "C:\\Users\\Administrator\\Desktop\\ICC CE\\icc-0610.2.3\\AutomaticUpdateVersionControl.txt", 48 | "RelativeDocumentMoniker": "AutomaticUpdateVersionControl.txt", 49 | "ToolTip": "C:\\Users\\Administrator\\Desktop\\ICC CE\\icc-0610.2.3\\AutomaticUpdateVersionControl.txt", 50 | "RelativeToolTip": "AutomaticUpdateVersionControl.txt", 51 | "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", 52 | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003109|", 53 | "WhenOpened": "2025-05-24T13:12:49.575Z" 54 | }, 55 | { 56 | "$type": "Document", 57 | "DocumentIndex": 2, 58 | "Title": ".gitignore", 59 | "DocumentMoniker": "C:\\Users\\Administrator\\Desktop\\ICC CE\\icc-0610.2.3\\.gitignore", 60 | "RelativeDocumentMoniker": ".gitignore", 61 | "ToolTip": "C:\\Users\\Administrator\\Desktop\\ICC CE\\icc-0610.2.3\\.gitignore", 62 | "RelativeToolTip": ".gitignore", 63 | "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", 64 | "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001001|", 65 | "WhenOpened": "2025-05-24T13:12:49.025Z" 66 | } 67 | ] 68 | } 69 | ] 70 | } 71 | ] 72 | } -------------------------------------------------------------------------------- /.vs/icc-0610.2.3/v17/workspaceFileList.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/.vs/icc-0610.2.3/v17/workspaceFileList.bin -------------------------------------------------------------------------------- /.vs/slnx.sqlite: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/.vs/slnx.sqlite -------------------------------------------------------------------------------- /AutomaticUpdateVersionControl.txt: -------------------------------------------------------------------------------- 1 | 1.7.0.0 2 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | We as members, contributors, and leaders pledge to make participation in our 6 | community a harassment-free experience for everyone, regardless of age, body 7 | size, visible or invisible disability, ethnicity, sex characteristics, gender 8 | identity and expression, level of experience, education, socio-economic status, 9 | nationality, personal appearance, race, religion, or sexual identity 10 | and orientation. 11 | 12 | We pledge to act and interact in ways that contribute to an open, welcoming, 13 | diverse, inclusive, and healthy community. 14 | 15 | ## Our Standards 16 | 17 | Examples of behavior that contributes to a positive environment for our 18 | community include: 19 | 20 | * Demonstrating empathy and kindness toward other people 21 | * Being respectful of differing opinions, viewpoints, and experiences 22 | * Giving and gracefully accepting constructive feedback 23 | * Accepting responsibility and apologizing to those affected by our mistakes, 24 | and learning from the experience 25 | * Focusing on what is best not just for us as individuals, but for the 26 | overall community 27 | 28 | Examples of unacceptable behavior include: 29 | 30 | * The use of sexualized language or imagery, and sexual attention or 31 | advances of any kind 32 | * Trolling, insulting or derogatory comments, and personal or political attacks 33 | * Public or private harassment 34 | * Publishing others' private information, such as a physical or email 35 | address, without their explicit permission 36 | * Other conduct which could reasonably be considered inappropriate in a 37 | professional setting 38 | 39 | ## Enforcement Responsibilities 40 | 41 | Community leaders are responsible for clarifying and enforcing our standards of 42 | acceptable behavior and will take appropriate and fair corrective action in 43 | response to any behavior that they deem inappropriate, threatening, offensive, 44 | or harmful. 45 | 46 | Community leaders have the right and responsibility to remove, edit, or reject 47 | comments, commits, code, wiki edits, issues, and other contributions that are 48 | not aligned to this Code of Conduct, and will communicate reasons for moderation 49 | decisions when appropriate. 50 | 51 | ## Scope 52 | 53 | This Code of Conduct applies within all community spaces, and also applies when 54 | an individual is officially representing the community in public spaces. 55 | Examples of representing our community include using an official e-mail address, 56 | posting via an official social media account, or acting as an appointed 57 | representative at an online or offline event. 58 | 59 | ## Enforcement 60 | 61 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 62 | reported to the community leaders responsible for enforcement at 63 | QQ:2564608840. 64 | All complaints will be reviewed and investigated promptly and fairly. 65 | 66 | All community leaders are obligated to respect the privacy and security of the 67 | reporter of any incident. 68 | 69 | ## Enforcement Guidelines 70 | 71 | Community leaders will follow these Community Impact Guidelines in determining 72 | the consequences for any action they deem in violation of this Code of Conduct: 73 | 74 | ### 1. Correction 75 | 76 | **Community Impact**: Use of inappropriate language or other behavior deemed 77 | unprofessional or unwelcome in the community. 78 | 79 | **Consequence**: A private, written warning from community leaders, providing 80 | clarity around the nature of the violation and an explanation of why the 81 | behavior was inappropriate. A public apology may be requested. 82 | 83 | ### 2. Warning 84 | 85 | **Community Impact**: A violation through a single incident or series 86 | of actions. 87 | 88 | **Consequence**: A warning with consequences for continued behavior. No 89 | interaction with the people involved, including unsolicited interaction with 90 | those enforcing the Code of Conduct, for a specified period of time. This 91 | includes avoiding interactions in community spaces as well as external channels 92 | like social media. Violating these terms may lead to a temporary or 93 | permanent ban. 94 | 95 | ### 3. Temporary Ban 96 | 97 | **Community Impact**: A serious violation of community standards, including 98 | sustained inappropriate behavior. 99 | 100 | **Consequence**: A temporary ban from any sort of interaction or public 101 | communication with the community for a specified period of time. No public or 102 | private interaction with the people involved, including unsolicited interaction 103 | with those enforcing the Code of Conduct, is allowed during this period. 104 | Violating these terms may lead to a permanent ban. 105 | 106 | ### 4. Permanent Ban 107 | 108 | **Community Impact**: Demonstrating a pattern of violation of community 109 | standards, including sustained inappropriate behavior, harassment of an 110 | individual, or aggression toward or disparagement of classes of individuals. 111 | 112 | **Consequence**: A permanent ban from any sort of public interaction within 113 | the community. 114 | 115 | ## Attribution 116 | 117 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], 118 | version 2.0, available at 119 | https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. 120 | 121 | Community Impact Guidelines were inspired by [Mozilla's code of conduct 122 | enforcement ladder](https://github.com/mozilla/diversity). 123 | 124 | [homepage]: https://www.contributor-covenant.org 125 | 126 | For answers to common questions about this code of conduct, see the FAQ at 127 | https://www.contributor-covenant.org/faq. Translations are available at 128 | https://www.contributor-covenant.org/translations. 129 | -------------------------------------------------------------------------------- /Images/icc ce.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Images/icc ce.png -------------------------------------------------------------------------------- /Ink Canvas.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 17 4 | VisualStudioVersion = 17.5.33530.505 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "InkCanvasForClass", "Ink Canvas\InkCanvasForClass.csproj", "{8D0EDFC7-F974-4571-BC49-6F3A6653FE81}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Debug|ARM = Debug|ARM 12 | Debug|ARM64 = Debug|ARM64 13 | Debug|x64 = Debug|x64 14 | Debug|x86 = Debug|x86 15 | Release|Any CPU = Release|Any CPU 16 | Release|ARM = Release|ARM 17 | Release|ARM64 = Release|ARM64 18 | Release|x64 = Release|x64 19 | Release|x86 = Release|x86 20 | EndGlobalSection 21 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 22 | {8D0EDFC7-F974-4571-BC49-6F3A6653FE81}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 23 | {8D0EDFC7-F974-4571-BC49-6F3A6653FE81}.Debug|Any CPU.Build.0 = Debug|Any CPU 24 | {8D0EDFC7-F974-4571-BC49-6F3A6653FE81}.Debug|ARM.ActiveCfg = Debug|Any CPU 25 | {8D0EDFC7-F974-4571-BC49-6F3A6653FE81}.Debug|ARM.Build.0 = Debug|Any CPU 26 | {8D0EDFC7-F974-4571-BC49-6F3A6653FE81}.Debug|ARM64.ActiveCfg = Debug|ARM64 27 | {8D0EDFC7-F974-4571-BC49-6F3A6653FE81}.Debug|ARM64.Build.0 = Debug|ARM64 28 | {8D0EDFC7-F974-4571-BC49-6F3A6653FE81}.Debug|x64.ActiveCfg = Debug|x64 29 | {8D0EDFC7-F974-4571-BC49-6F3A6653FE81}.Debug|x64.Build.0 = Debug|x64 30 | {8D0EDFC7-F974-4571-BC49-6F3A6653FE81}.Debug|x86.ActiveCfg = Debug|Any CPU 31 | {8D0EDFC7-F974-4571-BC49-6F3A6653FE81}.Debug|x86.Build.0 = Debug|Any CPU 32 | {8D0EDFC7-F974-4571-BC49-6F3A6653FE81}.Release|Any CPU.ActiveCfg = Release|Any CPU 33 | {8D0EDFC7-F974-4571-BC49-6F3A6653FE81}.Release|Any CPU.Build.0 = Release|Any CPU 34 | {8D0EDFC7-F974-4571-BC49-6F3A6653FE81}.Release|ARM.ActiveCfg = Release|Any CPU 35 | {8D0EDFC7-F974-4571-BC49-6F3A6653FE81}.Release|ARM.Build.0 = Release|Any CPU 36 | {8D0EDFC7-F974-4571-BC49-6F3A6653FE81}.Release|ARM64.ActiveCfg = Release|ARM64 37 | {8D0EDFC7-F974-4571-BC49-6F3A6653FE81}.Release|ARM64.Build.0 = Release|ARM64 38 | {8D0EDFC7-F974-4571-BC49-6F3A6653FE81}.Release|x64.ActiveCfg = Release|x64 39 | {8D0EDFC7-F974-4571-BC49-6F3A6653FE81}.Release|x64.Build.0 = Release|x64 40 | {8D0EDFC7-F974-4571-BC49-6F3A6653FE81}.Release|x86.ActiveCfg = Release|x86 41 | {8D0EDFC7-F974-4571-BC49-6F3A6653FE81}.Release|x86.Build.0 = Release|x86 42 | EndGlobalSection 43 | GlobalSection(SolutionProperties) = preSolution 44 | HideSolutionNode = FALSE 45 | EndGlobalSection 46 | GlobalSection(ExtensibilityGlobals) = postSolution 47 | SolutionGuid = {89B9DD11-110D-428C-AB08-859B7F4B4E19} 48 | EndGlobalSection 49 | EndGlobal 50 | -------------------------------------------------------------------------------- /Ink Canvas.sln.DotSettings.user: -------------------------------------------------------------------------------- 1 |  2 | WARNING -------------------------------------------------------------------------------- /Ink Canvas/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Ink Canvas/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | using System.Windows; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("InkCanvasForClass")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Dubi906w")] 12 | [assembly: AssemblyProduct("InkCanvasForClass")] 13 | [assembly: AssemblyCopyright("Copyright © HARKOTEK Studio 2024")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | //In order to begin building localizable applications, set 23 | //CultureYouAreCodingWith in your .csproj file 24 | //inside a . For example, if you are using US english 25 | //in your source files, set the to en-US. Then uncomment 26 | //the NeutralResourceLanguage attribute below. Update the "en-US" in 27 | //the line below to match the UICulture setting in the project file. 28 | 29 | //[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] 30 | 31 | 32 | [assembly: ThemeInfo( 33 | ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located 34 | //(used if a resource is not found in the page, 35 | // or application resource dictionaries) 36 | ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located 37 | //(used if a resource is not found in the page, 38 | // app, or any theme specific resource dictionaries) 39 | )] 40 | 41 | 42 | // Version information for an assembly consists of the following four values: 43 | // 44 | // Major Version 45 | // Minor Version 46 | // Build Number 47 | // Revision 48 | // 49 | // You can specify all the values or you can default the Build and Revision Numbers 50 | // by using the '*' as shown below: 51 | // [assembly: AssemblyVersion("1.0.*")] 52 | [assembly: AssemblyVersion("1.7.0.3")] 53 | [assembly: AssemblyFileVersion("1.7.0.3")] 54 | -------------------------------------------------------------------------------- /Ink Canvas/Helpers/Converters.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Globalization; 3 | using System.Windows; 4 | using System.Windows.Data; 5 | 6 | namespace Ink_Canvas.Converter 7 | { 8 | public class BooleanToVisibilityConverter : IValueConverter 9 | { 10 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 11 | { 12 | if ((bool)value == true) 13 | { 14 | return Visibility.Visible; 15 | } 16 | else 17 | { 18 | return Visibility.Collapsed; 19 | } 20 | } 21 | 22 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 23 | { 24 | if ((bool)value == true) 25 | { 26 | return Visibility.Visible; 27 | } 28 | else 29 | { 30 | return Visibility.Collapsed; 31 | } 32 | } 33 | } 34 | public class VisibilityConverter : IValueConverter 35 | { 36 | public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 37 | { 38 | Visibility visibility = (Visibility)value; 39 | if (visibility == Visibility.Visible) 40 | { 41 | return Visibility.Collapsed; 42 | } 43 | else 44 | { 45 | return Visibility.Visible; 46 | } 47 | } 48 | 49 | public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 50 | { 51 | Visibility visibility = (Visibility)value; 52 | if (visibility == Visibility.Visible) 53 | { 54 | return Visibility.Collapsed; 55 | } 56 | else 57 | { 58 | return Visibility.Visible; 59 | } 60 | } 61 | } 62 | 63 | public class IntNumberToString : IValueConverter 64 | { 65 | public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 66 | { 67 | if ((double)value == 0) 68 | { 69 | return "无限制"; 70 | } 71 | else 72 | { 73 | return ((double)value).ToString() + "人"; 74 | } 75 | } 76 | 77 | public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 78 | { 79 | if ((double)value == 0) 80 | { 81 | return "无限制"; 82 | } 83 | else 84 | { 85 | return ((double)value).ToString() + "人"; 86 | } 87 | } 88 | } 89 | 90 | public class IntNumberToString2 : IValueConverter 91 | { 92 | public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 93 | { 94 | if ((double)value == 0) 95 | { 96 | return "自动截图"; 97 | } 98 | else 99 | { 100 | return ((double)value).ToString() + "条"; 101 | } 102 | } 103 | 104 | public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 105 | { 106 | if ((double)value == 0) 107 | { 108 | return "自动截图"; 109 | } 110 | else 111 | { 112 | return ((double)value).ToString() + "条"; 113 | } 114 | } 115 | } 116 | 117 | public class IsEnabledToOpacityConverter : IValueConverter 118 | { 119 | public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 120 | { 121 | bool isChecked = (bool)value; 122 | if (isChecked == true) 123 | { 124 | return 1d; 125 | } 126 | else 127 | { 128 | return 0.35; 129 | } 130 | } 131 | public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { throw new NotImplementedException(); } 132 | } 133 | } 134 | -------------------------------------------------------------------------------- /Ink Canvas/Helpers/DelAutoSavedFiles.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.IO; 3 | using System.Windows; 4 | 5 | namespace Ink_Canvas.Helpers { 6 | internal class DelAutoSavedFiles { 7 | public static void DeleteFilesOlder(string directoryPath, int daysThreshold) { 8 | string[] extensionsToDel = { ".icstk", ".png" }; 9 | if (Directory.Exists(directoryPath)) { 10 | // 获取目录中的所有子目录 11 | string[] subDirectories = Directory.GetDirectories(directoryPath, "*", SearchOption.AllDirectories); 12 | foreach (string subDirectory in subDirectories) { 13 | try { 14 | // 获取子目录下的所有文件 15 | string[] files = Directory.GetFiles(subDirectory); 16 | foreach (string filePath in files) { 17 | // 获取文件的创建日期 18 | DateTime creationDate = File.GetCreationTime(filePath); 19 | // 获取文件的扩展名 20 | string fileExtension = Path.GetExtension(filePath); 21 | // 如果文件的创建日期早于指定天数且是要删除的扩展名,则删除文件 22 | if (creationDate < DateTime.Now.AddDays(-daysThreshold)) { 23 | if (Array.Exists(extensionsToDel, ext => ext.Equals(fileExtension, StringComparison.OrdinalIgnoreCase)) 24 | || Path.GetFileName(filePath).Equals("Position", StringComparison.OrdinalIgnoreCase)) { 25 | File.Delete(filePath); 26 | } 27 | } 28 | } 29 | } catch (Exception ex) { 30 | LogHelper.WriteLogToFile("DelAutoSavedFiles | 处理文件时出错: " + ex.ToString(), LogHelper.LogType.Error); 31 | } 32 | } 33 | 34 | try { // 递归删除空文件夹 35 | DeleteEmptyFolders(directoryPath); 36 | } catch (Exception ex) { 37 | LogHelper.WriteLogToFile("DelAutoSavedFiles | 处理文件时出错: " + ex.ToString(), LogHelper.LogType.Error); 38 | } 39 | } 40 | } 41 | 42 | private static void DeleteEmptyFolders(string directoryPath) { 43 | foreach (string dir in Directory.GetDirectories(directoryPath)) { 44 | DeleteEmptyFolders(dir); 45 | if (Directory.GetFiles(dir).Length == 0 && Directory.GetDirectories(dir).Length == 0) { 46 | Directory.Delete(dir, false); 47 | } 48 | } 49 | } 50 | } 51 | } -------------------------------------------------------------------------------- /Ink Canvas/Helpers/DelayActionHelper.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | using System.Timers; 8 | 9 | namespace Ink_Canvas.Helpers 10 | { 11 | public class DelayAction 12 | { 13 | Timer _timerDebounce; 14 | 15 | /// 16 | /// 防抖函式 17 | /// 18 | /// 同步的對象,一般傳入控件,不需要可null 19 | public void DebounceAction(int timeMs, ISynchronizeInvoke inv, Action action) 20 | { 21 | lock (this) { 22 | if (_timerDebounce == null) { 23 | _timerDebounce = new Timer(timeMs) { AutoReset = false }; 24 | _timerDebounce.Elapsed += (o, e) => { 25 | _timerDebounce.Stop(); _timerDebounce.Close(); _timerDebounce = null; 26 | InvokeAction(action, inv); 27 | }; 28 | } 29 | _timerDebounce.Stop(); 30 | _timerDebounce.Start(); 31 | } 32 | } 33 | 34 | private static void InvokeAction(Action action, ISynchronizeInvoke inv) 35 | { 36 | if (inv == null) 37 | { 38 | action(); 39 | } 40 | else 41 | { 42 | if (inv.InvokeRequired) 43 | { 44 | inv.Invoke(action, null); 45 | } 46 | else 47 | { 48 | action(); 49 | } 50 | } 51 | } 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /Ink Canvas/Helpers/Hotkey.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Runtime.InteropServices; 4 | using System.Windows; 5 | using System.Windows.Input; 6 | using System.Windows.Interop; 7 | 8 | namespace Ink_Canvas 9 | { 10 | static class Hotkey 11 | { 12 | #region 系统api 13 | [DllImport("user32.dll")] 14 | [return: MarshalAs(UnmanagedType.Bool)] 15 | static extern bool RegisterHotKey(IntPtr hWnd, int id, HotkeyModifiers fsModifiers, uint vk); 16 | 17 | [DllImport("user32.dll")] 18 | static extern bool UnregisterHotKey(IntPtr hWnd, int id); 19 | #endregion 20 | 21 | /// 22 | /// 注册快捷键 23 | /// 24 | /// 持有快捷键窗口 25 | /// 组合键 26 | /// 快捷键 27 | /// 回调函数 28 | public static bool Regist(Window window, HotkeyModifiers fsModifiers, Key key, HotKeyCallBackHanlder callBack) 29 | { 30 | var hwnd = new WindowInteropHelper(window).Handle; 31 | var _hwndSource = HwndSource.FromHwnd(hwnd); 32 | 33 | if (keyid == 10) 34 | { 35 | _hwndSource.AddHook(WndProc); 36 | } 37 | 38 | int id = keyid++; 39 | 40 | var vk = KeyInterop.VirtualKeyFromKey(key); 41 | if (!RegisterHotKey(hwnd, id, fsModifiers, (uint)vk)) 42 | { 43 | //throw new Exception("regist hotkey fail."); 44 | return false; 45 | } 46 | keymap[id] = callBack; 47 | return true; 48 | } 49 | 50 | /// 51 | /// 快捷键消息处理 52 | /// 53 | static IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled) 54 | { 55 | if (msg == WM_HOTKEY) 56 | { 57 | int id = wParam.ToInt32(); 58 | if (keymap.TryGetValue(id, out var callback)) 59 | { 60 | callback(); 61 | } 62 | } 63 | return IntPtr.Zero; 64 | } 65 | 66 | /// 67 | /// 注销快捷键 68 | /// 69 | /// 持有快捷键窗口的句柄 70 | /// 回调函数 71 | public static void UnRegist(IntPtr hWnd, HotKeyCallBackHanlder callBack) 72 | { 73 | foreach (KeyValuePair var in keymap) 74 | { 75 | if (var.Value == callBack) 76 | UnregisterHotKey(hWnd, var.Key); 77 | } 78 | } 79 | 80 | 81 | const int WM_HOTKEY = 0x312; 82 | static int keyid = 10; 83 | static Dictionary keymap = new Dictionary(); 84 | 85 | public delegate void HotKeyCallBackHanlder(); 86 | } 87 | 88 | enum HotkeyModifiers 89 | { 90 | MOD_ALT = 0x1, 91 | MOD_CONTROL = 0x2, 92 | MOD_SHIFT = 0x4, 93 | MOD_WIN = 0x8 94 | } 95 | 96 | } 97 | -------------------------------------------------------------------------------- /Ink Canvas/Helpers/IsOutsideOfScreenHelper.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using System.Windows.Interop; 7 | using System.Windows; 8 | 9 | namespace Ink_Canvas.Helpers { 10 | internal class IsOutsideOfScreenHelper { 11 | public static bool IsOutsideOfScreen(FrameworkElement target) { 12 | var hwndSource = (HwndSource)PresentationSource.FromVisual(target); 13 | if (hwndSource is null) { 14 | return true; 15 | } 16 | 17 | var hWnd = hwndSource.Handle; 18 | var targetBounds = GetPixelBoundsToScreen(target); 19 | 20 | var screens = System.Windows.Forms.Screen.AllScreens; 21 | return !screens.Any(x => x.Bounds.IntersectsWith(targetBounds)); 22 | 23 | System.Drawing.Rectangle GetPixelBoundsToScreen(FrameworkElement visual) { 24 | var pixelBoundsToScreen = Rect.Empty; 25 | pixelBoundsToScreen.Union(visual.PointToScreen(new Point(0, 0))); 26 | pixelBoundsToScreen.Union(visual.PointToScreen(new Point(visual.ActualWidth, 0))); 27 | pixelBoundsToScreen.Union(visual.PointToScreen(new Point(0, visual.ActualHeight))); 28 | pixelBoundsToScreen.Union(visual.PointToScreen(new Point(visual.ActualWidth, visual.ActualHeight))); 29 | return new System.Drawing.Rectangle( 30 | (int)pixelBoundsToScreen.X, (int)pixelBoundsToScreen.Y, 31 | (int)pixelBoundsToScreen.Width, (int)pixelBoundsToScreen.Height); 32 | } 33 | } 34 | } 35 | } -------------------------------------------------------------------------------- /Ink Canvas/Helpers/LogHelper.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Diagnostics; 3 | using System.IO; 4 | using System.Threading; 5 | 6 | namespace Ink_Canvas.Helpers 7 | { 8 | class LogHelper 9 | { 10 | public static string LogFile = "Log.txt"; 11 | private static string LogsFolder = "Logs"; 12 | private static string AppStartTime = DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss"); 13 | private static readonly long MaxLogsFolderSizeBytes = 5 * 1024 * 1024; // 5MB 14 | 15 | public static void NewLog(string str) 16 | { 17 | WriteLogToFile(str, LogType.Info); 18 | } 19 | 20 | public static void NewLog(Exception ex) 21 | { 22 | if (ex == null) return; 23 | var stackTrace = ex.StackTrace ?? ""; 24 | var msg = $"[Exception] Type: {ex.GetType().FullName}\nMessage: {ex.Message}\nStackTrace: {stackTrace}"; 25 | if (ex.InnerException != null) 26 | { 27 | msg += $"\nInnerException: {ex.InnerException.GetType().FullName} - {ex.InnerException.Message}\n{ex.InnerException.StackTrace}"; 28 | } 29 | WriteLogToFile(msg, LogType.Error); 30 | } 31 | 32 | public static void WriteLogToFile(string str, LogType logType = LogType.Info) 33 | { 34 | // 检查日志是否启用 35 | if (MainWindow.Settings != null && MainWindow.Settings.Advanced != null && !MainWindow.Settings.Advanced.IsLogEnabled) return; 36 | 37 | string strLogType = logType.ToString(); 38 | try 39 | { 40 | string file; 41 | 42 | // 检查是否启用了日期保存功能 43 | if (MainWindow.Settings != null && MainWindow.Settings.Advanced != null && MainWindow.Settings.Advanced.IsSaveLogByDate) 44 | { 45 | // 确保Logs文件夹存在 46 | string logsPath = Path.Combine(App.RootPath, LogsFolder); 47 | if (!Directory.Exists(logsPath)) 48 | { 49 | Directory.CreateDirectory(logsPath); 50 | } 51 | 52 | // 检查Logs文件夹大小,如果超过5MB则清空 53 | CheckAndCleanLogsFolder(logsPath); 54 | 55 | // 使用软件启动时间作为日志文件名 56 | file = Path.Combine(logsPath, $"Log_{AppStartTime}.txt"); 57 | } 58 | else 59 | { 60 | file = App.RootPath + LogFile; 61 | } 62 | 63 | if (!Directory.Exists(App.RootPath)) 64 | { 65 | Directory.CreateDirectory(App.RootPath); 66 | } 67 | 68 | var threadId = Thread.CurrentThread.ManagedThreadId; 69 | var callingMethod = new StackTrace(2, true).GetFrame(0); 70 | string callerInfo = ""; 71 | if (callingMethod != null) 72 | { 73 | var method = callingMethod.GetMethod(); 74 | if (method != null) 75 | { 76 | var className = method.DeclaringType != null ? method.DeclaringType.FullName : ""; 77 | callerInfo = $"{className}.{method.Name}"; 78 | } 79 | } 80 | string logLine = string.Format("{0} [T{1}] [{2}] [{3}] {4}", DateTime.Now.ToString("O"), threadId, strLogType, callerInfo, str); 81 | using (StreamWriter sw = new StreamWriter(file, true)) 82 | { 83 | sw.WriteLine(logLine); 84 | } 85 | } 86 | catch { } 87 | } 88 | 89 | private static void CheckAndCleanLogsFolder(string logsPath) 90 | { 91 | try 92 | { 93 | long totalSize = 0; 94 | DirectoryInfo dirInfo = new DirectoryInfo(logsPath); 95 | 96 | // 如果目录不存在,直接返回 97 | if (!dirInfo.Exists) return; 98 | 99 | // 计算文件夹大小 100 | foreach (FileInfo file in dirInfo.GetFiles()) 101 | { 102 | totalSize += file.Length; 103 | } 104 | 105 | // 如果超过5MB,清空文件夹 106 | if (totalSize > MaxLogsFolderSizeBytes) 107 | { 108 | foreach (FileInfo file in dirInfo.GetFiles()) 109 | { 110 | try 111 | { 112 | file.Delete(); 113 | } 114 | catch { } 115 | } 116 | 117 | // 记录清理操作 118 | string cleanupMessage = $"Logs folder exceeded size limit ({totalSize / 1024.0 / 1024.0:F2} MB > {MaxLogsFolderSizeBytes / 1024.0 / 1024.0:F2} MB). Folder cleaned."; 119 | using (StreamWriter sw = new StreamWriter(Path.Combine(logsPath, $"Log_{AppStartTime}.txt"), true)) 120 | { 121 | sw.WriteLine($"{DateTime.Now:O} [Cleanup] {cleanupMessage}"); 122 | } 123 | } 124 | } 125 | catch { } 126 | } 127 | 128 | internal static void WriteLogToFile(string v, object warning) 129 | { 130 | WriteLogToFile($"[Warning] {v}", LogType.Warning); 131 | } 132 | 133 | public enum LogType 134 | { 135 | Info, 136 | Trace, 137 | Error, 138 | Event, 139 | Warning 140 | } 141 | } 142 | } 143 | -------------------------------------------------------------------------------- /Ink Canvas/Helpers/MultiTouchInput.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Windows; 3 | using System.Windows.Ink; 4 | using System.Windows.Input; 5 | using System.Windows.Media; 6 | 7 | namespace Ink_Canvas.Helpers 8 | { 9 | public class VisualCanvas : FrameworkElement 10 | { 11 | protected override Visual GetVisualChild(int index) 12 | { 13 | return Visual; 14 | } 15 | 16 | protected override int VisualChildrenCount => 1; 17 | 18 | public VisualCanvas(DrawingVisual visual) 19 | { 20 | Visual = visual; 21 | AddVisualChild(visual); 22 | } 23 | 24 | public DrawingVisual Visual { get; } 25 | } 26 | 27 | /// 28 | /// 用于显示笔迹的类 29 | /// 30 | public class StrokeVisual : DrawingVisual 31 | { 32 | /// 33 | /// 创建显示笔迹的类 34 | /// 35 | public StrokeVisual() : this(new DrawingAttributes() 36 | { 37 | Color = Colors.Red, 38 | //FitToCurve = true, 39 | Width = 3, 40 | Height = 3 41 | }) 42 | { 43 | } 44 | 45 | /// 46 | /// 创建显示笔迹的类 47 | /// 48 | /// 49 | public StrokeVisual(DrawingAttributes drawingAttributes) 50 | { 51 | _drawingAttributes = drawingAttributes; 52 | } 53 | 54 | /// 55 | /// 设置或获取显示的笔迹 56 | /// 57 | public Stroke Stroke { set; get; } 58 | 59 | /// 60 | /// 在笔迹中添加点 61 | /// 62 | /// 63 | public void Add(StylusPoint point) 64 | { 65 | if (Stroke == null) 66 | { 67 | var collection = new StylusPointCollection { point }; 68 | Stroke = new Stroke(collection) { DrawingAttributes = _drawingAttributes }; 69 | } 70 | else 71 | { 72 | Stroke.StylusPoints.Add(point); 73 | } 74 | } 75 | 76 | /// 77 | /// 重新画出笔迹 78 | /// 79 | public void Redraw() 80 | { 81 | try 82 | { 83 | using (var dc = RenderOpen()) 84 | { 85 | Stroke.Draw(dc); 86 | } 87 | } 88 | catch { } 89 | } 90 | 91 | private readonly DrawingAttributes _drawingAttributes; 92 | 93 | public static implicit operator Stroke(StrokeVisual v) 94 | { 95 | throw new NotImplementedException(); 96 | } 97 | } 98 | } 99 | -------------------------------------------------------------------------------- /Ink Canvas/Helpers/SoftwareLauncher.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.Win32; 2 | using System; 3 | using System.Diagnostics; 4 | using System.Runtime.InteropServices; 5 | 6 | namespace Ink_Canvas.Helpers 7 | { 8 | internal class SoftwareLauncher 9 | { 10 | [DllImport("user32.dll")] 11 | private static extern bool ShowWindow(IntPtr hWnd, int nCmdShow); 12 | 13 | public static void LaunchEasiCamera(string softwareName) 14 | { 15 | string executablePath = FindEasiCameraExecutablePath(softwareName); 16 | 17 | if (!string.IsNullOrEmpty(executablePath)) 18 | { 19 | try 20 | { 21 | Process.Start(executablePath); 22 | //Console.WriteLine(softwareName + " 启动成功!"); 23 | } 24 | catch (Exception ex) 25 | { 26 | Console.WriteLine("启动失败: " + ex.Message); 27 | //MessageBox.Show("启动失败: " + ex.Message); 28 | } 29 | } 30 | else 31 | { 32 | //Console.WriteLine(softwareName + " 未找到可执行文件路径。"); 33 | } 34 | } 35 | 36 | private static string FindEasiCameraExecutablePath(string softwareName) 37 | { 38 | string executablePath = null; 39 | 40 | using (RegistryKey key = Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Uninstall")) 41 | { 42 | foreach (string subkeyName in key.GetSubKeyNames()) 43 | { 44 | using (RegistryKey subkey = key.OpenSubKey(subkeyName)) 45 | { 46 | string displayName = subkey.GetValue("DisplayName") as string; 47 | string installLocation = subkey.GetValue("InstallLocation") as string; 48 | string uninstallString = subkey.GetValue("UninstallString") as string; 49 | 50 | if (!string.IsNullOrEmpty(displayName) && displayName.Contains(softwareName)) 51 | { 52 | if (!string.IsNullOrEmpty(installLocation)) 53 | { 54 | executablePath = System.IO.Path.Combine(installLocation, "sweclauncher.exe"); 55 | } 56 | else if (!string.IsNullOrEmpty(uninstallString)) 57 | { 58 | int lastSlashIndex = uninstallString.LastIndexOf("\\"); 59 | if (lastSlashIndex >= 0) 60 | { 61 | string folderPath = uninstallString.Substring(0, lastSlashIndex); 62 | executablePath = System.IO.Path.Combine(folderPath, "sweclauncher", "sweclauncher.exe"); 63 | } 64 | } 65 | break; 66 | } 67 | } 68 | } 69 | } 70 | 71 | return executablePath; 72 | } 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /Ink Canvas/Helpers/StartupCount.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.IO; 3 | 4 | namespace Ink_Canvas.Helpers 5 | { 6 | public static class StartupCount 7 | { 8 | private static readonly string CountFilePath = Path.Combine(App.RootPath, "startup-count"); 9 | private static readonly object fileLock = new object(); 10 | 11 | public static int GetCount() 12 | { 13 | try 14 | { 15 | if (File.Exists(CountFilePath)) 16 | { 17 | var text = File.ReadAllText(CountFilePath).Trim(); 18 | if (int.TryParse(text, out int count)) 19 | return count; 20 | } 21 | } 22 | catch { } 23 | return 0; 24 | } 25 | 26 | public static void Increment() 27 | { 28 | lock (fileLock) 29 | { 30 | int count = GetCount() + 1; 31 | try 32 | { 33 | File.WriteAllText(CountFilePath, count.ToString()); 34 | } 35 | catch { } 36 | } 37 | } 38 | 39 | public static void Reset() 40 | { 41 | lock (fileLock) 42 | { 43 | try 44 | { 45 | if (File.Exists(CountFilePath)) 46 | File.Delete(CountFilePath); 47 | } 48 | catch { } 49 | } 50 | } 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /Ink Canvas/Helpers/WinTabWindowsChecker.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Automation; 2 | 3 | namespace Ink_Canvas.Helpers { 4 | internal class WinTabWindowsChecker { 5 | /* 6 | public static bool IsWindowMinimized(string windowName, bool matchFullName = true) { 7 | // 获取Win+Tab预览中的窗口 8 | AutomationElementCollection windows = AutomationElement.RootElement.FindAll( 9 | TreeScope.Children, new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Window)); 10 | 11 | foreach (AutomationElement window in windows) { 12 | //LogHelper.WriteLogToFile("" + window.Current.Name); 13 | 14 | string windowTitle = window.Current.Name; 15 | 16 | // 如果窗口标题包含 windowName,则进行检查 17 | if (!string.IsNullOrEmpty(windowTitle) && windowTitle.Contains(windowName)) { 18 | if (matchFullName) { 19 | if (windowTitle.Length == windowName.Length) { 20 | // 检查窗口是否最小化 21 | WindowPattern windowPattern = window.GetCurrentPattern(WindowPattern.Pattern) as WindowPattern; 22 | if (windowPattern != null) { 23 | bool isMinimized = windowPattern.Current.WindowVisualState == WindowVisualState.Minimized; 24 | //LogHelper.WriteLogToFile("" + windowTitle + isMinimized); 25 | return isMinimized; 26 | } 27 | } 28 | } else { 29 | // 检查窗口是否最小化 30 | WindowPattern windowPattern = window.GetCurrentPattern(WindowPattern.Pattern) as WindowPattern; 31 | if (windowPattern != null) { 32 | bool isMinimized = windowPattern.Current.WindowVisualState == WindowVisualState.Minimized; 33 | return isMinimized; 34 | } 35 | } 36 | } 37 | } 38 | // 未找到软件白板窗口 39 | return true; 40 | } 41 | */ 42 | 43 | public static bool IsWindowExisted(string windowName, bool matchFullName = true) { 44 | // 获取Win+Tab预览中的窗口 45 | AutomationElementCollection windows = AutomationElement.RootElement.FindAll( 46 | TreeScope.Children, new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Window)); 47 | 48 | foreach (AutomationElement window in windows) { 49 | //LogHelper.WriteLogToFile("" + window.Current.Name); 50 | 51 | string windowTitle = window.Current.Name; 52 | 53 | // 如果窗口标题包含 windowName,则进行检查 54 | if (!string.IsNullOrEmpty(windowTitle) && windowTitle.Contains(windowName)) { 55 | if (matchFullName) { 56 | if (windowTitle.Length == windowName.Length) { 57 | WindowPattern windowPattern = window.GetCurrentPattern(WindowPattern.Pattern) as WindowPattern; 58 | if (windowPattern != null) { 59 | return true; 60 | } 61 | } 62 | } else { 63 | WindowPattern windowPattern = window.GetCurrentPattern(WindowPattern.Pattern) as WindowPattern; 64 | if (windowPattern != null) { 65 | return true; 66 | } 67 | } 68 | } 69 | } 70 | return false; 71 | } 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /Ink Canvas/IACore.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/IACore.dll -------------------------------------------------------------------------------- /Ink Canvas/IALoader.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/IALoader.dll -------------------------------------------------------------------------------- /Ink Canvas/IAWinFX.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/IAWinFX.dll -------------------------------------------------------------------------------- /Ink Canvas/InkCanvasForClass.csproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | <_LastSelectedProfileId>D:\vs\ica\Ink Canvas\Properties\PublishProfiles\FolderProfile.pubxml 5 | 6 | -------------------------------------------------------------------------------- /Ink Canvas/MainWindow_cs/ConfigHelper.cs: -------------------------------------------------------------------------------- 1 | namespace Ink_Canvas 2 | { 3 | internal class ConfigHelper 4 | { 5 | } 6 | } -------------------------------------------------------------------------------- /Ink Canvas/MainWindow_cs/MW_AutoStart.cs: -------------------------------------------------------------------------------- 1 | using IWshRuntimeLibrary; 2 | using System; 3 | using System.Windows; 4 | 5 | namespace Ink_Canvas { 6 | public partial class MainWindow : Window { 7 | public static bool StartAutomaticallyCreate(string exeName) { 8 | try { 9 | var shell = new WshShell(); 10 | var shortcut = (IWshShortcut)shell.CreateShortcut( 11 | Environment.GetFolderPath(Environment.SpecialFolder.Startup) + "\\" + exeName + ".lnk"); 12 | //设置快捷方式的目标所在的位置(源程序完整路径) 13 | shortcut.TargetPath = System.Windows.Forms.Application.ExecutablePath; 14 | //应用程序的工作目录 15 | //当用户没有指定一个具体的目录时,快捷方式的目标应用程序将使用该属性所指定的目录来装载或保存文件。 16 | shortcut.WorkingDirectory = Environment.CurrentDirectory; 17 | //目标应用程序窗口类型(1.Normal window普通窗口,3.Maximized最大化窗口,7.Minimized最小化) 18 | shortcut.WindowStyle = 1; 19 | //快捷方式的描述 20 | shortcut.Description = exeName + "_Ink"; 21 | //设置快捷键(如果有必要的话.) 22 | //shortcut.Hotkey = "CTRL+ALT+D"; 23 | shortcut.Save(); 24 | return true; 25 | } 26 | catch (Exception) { } 27 | 28 | return false; 29 | } 30 | 31 | public static bool StartAutomaticallyDel(string exeName) { 32 | try { 33 | System.IO.File.Delete(Environment.GetFolderPath(Environment.SpecialFolder.Startup) + "\\" + exeName + 34 | ".lnk"); 35 | return true; 36 | } 37 | catch (Exception) { } 38 | 39 | return false; 40 | } 41 | } 42 | } -------------------------------------------------------------------------------- /Ink Canvas/MainWindow_cs/MW_AutoTheme.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.Win32; 2 | using iNKORE.UI.WPF.Modern; 3 | using System; 4 | using System.Windows; 5 | using System.Windows.Media; 6 | using Application = System.Windows.Application; 7 | 8 | namespace Ink_Canvas { 9 | public partial class MainWindow : Window { 10 | private Color FloatBarForegroundColor = Color.FromRgb(102, 102, 102); 11 | 12 | private void SetTheme(string theme) { 13 | if (theme == "Light") { 14 | var rd1 = new ResourceDictionary() 15 | { Source = new Uri("Resources/Styles/Light.xaml", UriKind.Relative) }; 16 | Application.Current.Resources.MergedDictionaries.Add(rd1); 17 | 18 | var rd2 = new ResourceDictionary() 19 | { Source = new Uri("Resources/DrawShapeImageDictionary.xaml", UriKind.Relative) }; 20 | Application.Current.Resources.MergedDictionaries.Add(rd2); 21 | 22 | var rd3 = new ResourceDictionary() 23 | { Source = new Uri("Resources/SeewoImageDictionary.xaml", UriKind.Relative) }; 24 | Application.Current.Resources.MergedDictionaries.Add(rd3); 25 | 26 | var rd4 = new ResourceDictionary() 27 | { Source = new Uri("Resources/IconImageDictionary.xaml", UriKind.Relative) }; 28 | Application.Current.Resources.MergedDictionaries.Add(rd4); 29 | 30 | ThemeManager.SetRequestedTheme(window, ElementTheme.Light); 31 | 32 | FloatBarForegroundColor = (Color)Application.Current.FindResource("FloatBarForegroundColor"); 33 | } 34 | else if (theme == "Dark") { 35 | var rd1 = new ResourceDictionary() { Source = new Uri("Resources/Styles/Dark.xaml", UriKind.Relative) }; 36 | Application.Current.Resources.MergedDictionaries.Add(rd1); 37 | 38 | var rd2 = new ResourceDictionary() 39 | { Source = new Uri("Resources/DrawShapeImageDictionary.xaml", UriKind.Relative) }; 40 | Application.Current.Resources.MergedDictionaries.Add(rd2); 41 | 42 | var rd3 = new ResourceDictionary() 43 | { Source = new Uri("Resources/SeewoImageDictionary.xaml", UriKind.Relative) }; 44 | Application.Current.Resources.MergedDictionaries.Add(rd3); 45 | 46 | var rd4 = new ResourceDictionary() 47 | { Source = new Uri("Resources/IconImageDictionary.xaml", UriKind.Relative) }; 48 | Application.Current.Resources.MergedDictionaries.Add(rd4); 49 | 50 | ThemeManager.SetRequestedTheme(window, ElementTheme.Dark); 51 | 52 | FloatBarForegroundColor = (Color)Application.Current.FindResource("FloatBarForegroundColor"); 53 | } 54 | } 55 | 56 | private void SystemEvents_UserPreferenceChanged(object sender, UserPreferenceChangedEventArgs e) { 57 | switch (Settings.Appearance.Theme) { 58 | case 0: 59 | SetTheme("Light"); 60 | break; 61 | case 1: 62 | SetTheme("Dark"); 63 | break; 64 | case 2: 65 | if (IsSystemThemeLight()) SetTheme("Light"); 66 | else SetTheme("Dark"); 67 | break; 68 | } 69 | } 70 | 71 | private bool IsSystemThemeLight() { 72 | var light = false; 73 | try { 74 | var registryKey = Registry.CurrentUser; 75 | var themeKey = 76 | registryKey.OpenSubKey("software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize"); 77 | var keyValue = 0; 78 | if (themeKey != null) keyValue = (int)themeKey.GetValue("SystemUsesLightTheme"); 79 | if (keyValue == 1) light = true; 80 | } 81 | catch { } 82 | 83 | return light; 84 | } 85 | } 86 | } -------------------------------------------------------------------------------- /Ink Canvas/MainWindow_cs/MW_BoardIcons.cs: -------------------------------------------------------------------------------- 1 | using Ink_Canvas.Helpers; 2 | using System.Diagnostics; 3 | using System.Windows; 4 | using System.Windows.Controls; 5 | using System.Windows.Ink; 6 | using System.Windows.Input; 7 | 8 | namespace Ink_Canvas { 9 | public partial class MainWindow : Window { 10 | private void BoardChangeBackgroundColorBtn_MouseUp(object sender, RoutedEventArgs e) { 11 | if (!isLoaded) return; 12 | Settings.Canvas.UsingWhiteboard = !Settings.Canvas.UsingWhiteboard; 13 | SaveSettingsToFile(); 14 | if (Settings.Canvas.UsingWhiteboard) { 15 | if (inkColor == 5) lastBoardInkColor = 0; 16 | ICCWaterMarkDark.Visibility = Visibility.Visible; 17 | ICCWaterMarkWhite.Visibility = Visibility.Collapsed; 18 | } 19 | else { 20 | if (inkColor == 0) lastBoardInkColor = 5; 21 | ICCWaterMarkWhite.Visibility = Visibility.Visible; 22 | ICCWaterMarkDark.Visibility = Visibility.Collapsed; 23 | } 24 | 25 | CheckColorTheme(true); 26 | } 27 | 28 | private void BoardEraserIcon_Click(object sender, RoutedEventArgs e) { 29 | if (inkCanvas.EditingMode == InkCanvasEditingMode.EraseByPoint || 30 | inkCanvas.EditingMode == InkCanvasEditingMode.EraseByStroke) { 31 | if (BoardEraserSizePanel.Visibility == Visibility.Collapsed) { 32 | AnimationsHelper.ShowWithSlideFromBottomAndFade(BoardEraserSizePanel); 33 | } else { 34 | AnimationsHelper.HideWithSlideAndFade(BoardEraserSizePanel); 35 | } 36 | } else { 37 | forceEraser = true; 38 | forcePointEraser = true; 39 | 40 | // 使用统一的方法应用橡皮擦形状,确保一致性 41 | ApplyCurrentEraserShape(); 42 | 43 | inkCanvas.EditingMode = InkCanvasEditingMode.EraseByPoint; 44 | drawingShapeMode = 0; 45 | 46 | inkCanvas_EditingModeChanged(inkCanvas, null); 47 | CancelSingleFingerDragMode(); 48 | 49 | HideSubPanels("eraser"); 50 | } 51 | } 52 | 53 | private void BoardEraserIconByStrokes_Click(object sender, RoutedEventArgs e) { 54 | //if (BoardEraserByStrokes.Background.ToString() == "#FF679CF4") { 55 | // AnimationsHelper.ShowWithSlideFromBottomAndFade(BoardDeleteIcon); 56 | //} 57 | //else { 58 | forceEraser = true; 59 | forcePointEraser = false; 60 | 61 | inkCanvas.EraserShape = new EllipseStylusShape(5, 5); 62 | inkCanvas.EditingMode = InkCanvasEditingMode.EraseByStroke; 63 | drawingShapeMode = 0; 64 | 65 | inkCanvas_EditingModeChanged(inkCanvas, null); 66 | CancelSingleFingerDragMode(); 67 | 68 | HideSubPanels("eraserByStrokes"); 69 | //} 70 | } 71 | 72 | private void BoardSymbolIconDelete_MouseUp(object sender, RoutedEventArgs e) { 73 | PenIcon_Click(null, null); 74 | SymbolIconDelete_MouseUp(null, null); 75 | } 76 | private void BoardSymbolIconDeleteInkAndHistories_MouseUp(object sender, RoutedEventArgs e) 77 | { 78 | PenIcon_Click(null, null); 79 | SymbolIconDelete_MouseUp(null, null); 80 | if (Settings.Canvas.ClearCanvasAndClearTimeMachine == false) timeMachine.ClearStrokeHistory(); 81 | } 82 | 83 | private void BoardLaunchEasiCamera_MouseUp(object sender, MouseButtonEventArgs e) { 84 | ImageBlackboard_MouseUp(null, null); 85 | SoftwareLauncher.LaunchEasiCamera("希沃视频展台"); 86 | } 87 | 88 | private void BoardLaunchDesmos_MouseUp(object sender, MouseButtonEventArgs e) { 89 | HideSubPanelsImmediately(); 90 | ImageBlackboard_MouseUp(null, null); 91 | Process.Start("https://www.desmos.com/calculator?lang=zh-CN"); 92 | } 93 | } 94 | } -------------------------------------------------------------------------------- /Ink Canvas/MainWindow_cs/MW_Hotkeys.cs: -------------------------------------------------------------------------------- 1 | using System.Windows; 2 | using System.Windows.Input; 3 | 4 | namespace Ink_Canvas { 5 | public partial class MainWindow : Window { 6 | private void Window_MouseWheel(object sender, MouseWheelEventArgs e) { 7 | if (StackPanelPPTControls.Visibility != Visibility.Visible || currentMode != 0) return; 8 | if (e.Delta >= 120) 9 | BtnPPTSlidesUp_Click(BtnPPTSlidesUp, null); 10 | else if (e.Delta <= -120) BtnPPTSlidesDown_Click(BtnPPTSlidesDown, null); 11 | } 12 | 13 | private void Main_Grid_PreviewKeyDown(object sender, KeyEventArgs e) { 14 | if (StackPanelPPTControls.Visibility != Visibility.Visible || currentMode != 0) return; 15 | 16 | if (e.Key == Key.Down || e.Key == Key.PageDown || e.Key == Key.Right || e.Key == Key.N || 17 | e.Key == Key.Space) BtnPPTSlidesDown_Click(BtnPPTSlidesDown, null); 18 | if (e.Key == Key.Up || e.Key == Key.PageUp || e.Key == Key.Left || e.Key == Key.P) 19 | BtnPPTSlidesUp_Click(BtnPPTSlidesUp, null); 20 | } 21 | 22 | private void Window_KeyDown(object sender, KeyEventArgs e) { 23 | if (e.Key == Key.Escape) KeyExit(null, null); 24 | } 25 | 26 | private void CommandBinding_CanExecute(object sender, CanExecuteRoutedEventArgs e) { 27 | e.CanExecute = true; 28 | } 29 | 30 | private void HotKey_Undo(object sender, ExecutedRoutedEventArgs e) { 31 | try { 32 | SymbolIconUndo_MouseUp(lastBorderMouseDownObject, null); 33 | } 34 | catch { } 35 | } 36 | 37 | private void HotKey_Redo(object sender, ExecutedRoutedEventArgs e) { 38 | try { 39 | SymbolIconRedo_MouseUp(lastBorderMouseDownObject, null); 40 | } 41 | catch { } 42 | } 43 | 44 | private void HotKey_Clear(object sender, ExecutedRoutedEventArgs e) { 45 | SymbolIconDelete_MouseUp(lastBorderMouseDownObject, null); 46 | } 47 | 48 | 49 | private void KeyExit(object sender, ExecutedRoutedEventArgs e) { 50 | if (BtnPPTSlideShowEnd.Visibility == Visibility.Visible) BtnPPTSlideShowEnd_Click(BtnPPTSlideShowEnd, null); 51 | } 52 | 53 | private void KeyChangeToDrawTool(object sender, ExecutedRoutedEventArgs e) { 54 | PenIcon_Click(lastBorderMouseDownObject, null); 55 | } 56 | 57 | private void KeyChangeToQuitDrawTool(object sender, ExecutedRoutedEventArgs e) { 58 | if (currentMode != 0) ImageBlackboard_MouseUp(lastBorderMouseDownObject, null); 59 | CursorIcon_Click(lastBorderMouseDownObject, null); 60 | } 61 | 62 | private void KeyChangeToSelect(object sender, ExecutedRoutedEventArgs e) { 63 | if (StackPanelCanvasControls.Visibility == Visibility.Visible) 64 | SymbolIconSelect_MouseUp(lastBorderMouseDownObject, null); 65 | } 66 | 67 | private void KeyChangeToEraser(object sender, ExecutedRoutedEventArgs e) { 68 | if (StackPanelCanvasControls.Visibility == Visibility.Visible) { 69 | if (Eraser_Icon.Background != null) 70 | EraserIconByStrokes_Click(lastBorderMouseDownObject, null); 71 | else 72 | EraserIcon_Click(lastBorderMouseDownObject, null); 73 | } 74 | } 75 | 76 | private void KeyChangeToBoard(object sender, ExecutedRoutedEventArgs e) { 77 | ImageBlackboard_MouseUp(lastBorderMouseDownObject, null); 78 | } 79 | 80 | private void KeyCapture(object sender, ExecutedRoutedEventArgs e) { 81 | SaveScreenShotToDesktop(); 82 | } 83 | 84 | private void KeyDrawLine(object sender, ExecutedRoutedEventArgs e) { 85 | if (StackPanelCanvasControls.Visibility == Visibility.Visible) BtnDrawLine_Click(lastMouseDownSender, null); 86 | } 87 | 88 | private void KeyHide(object sender, ExecutedRoutedEventArgs e) { 89 | SymbolIconEmoji_MouseUp(null, null); 90 | } 91 | } 92 | } -------------------------------------------------------------------------------- /Ink Canvas/MainWindow_cs/MW_Notification.cs: -------------------------------------------------------------------------------- 1 | using Ink_Canvas.Helpers; 2 | using System; 3 | using System.Linq; 4 | using System.Threading; 5 | using System.Windows; 6 | 7 | namespace Ink_Canvas { 8 | public partial class MainWindow : Window { 9 | private int lastNotificationShowTime = 0; 10 | private int notificationShowTime = 2500; 11 | 12 | public static void ShowNewMessage(string notice, bool isShowImmediately = true) { 13 | (Application.Current?.Windows.Cast().FirstOrDefault(window => window is MainWindow) as MainWindow) 14 | ?.ShowNotification(notice, isShowImmediately); 15 | } 16 | 17 | public void ShowNotification(string notice, bool isShowImmediately = true) { 18 | try { 19 | lastNotificationShowTime = Environment.TickCount; 20 | 21 | TextBlockNotice.Text = notice; 22 | AnimationsHelper.ShowWithSlideFromBottomAndFade(GridNotifications); 23 | 24 | new Thread(new ThreadStart(() => { 25 | Thread.Sleep(notificationShowTime + 300); 26 | if (Environment.TickCount - lastNotificationShowTime >= notificationShowTime) 27 | Application.Current.Dispatcher.Invoke(() => { 28 | AnimationsHelper.HideWithSlideAndFade(GridNotifications); 29 | }); 30 | })).Start(); 31 | } 32 | catch { } 33 | } 34 | } 35 | } -------------------------------------------------------------------------------- /Ink Canvas/MainWindow_cs/MW_PageListView.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Collections.ObjectModel; 4 | using System.Diagnostics; 5 | using System.Linq; 6 | using System.Reflection; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | using System.Windows; 10 | using System.Windows.Controls; 11 | using System.Windows.Forms; 12 | using System.Windows.Ink; 13 | using System.Windows.Input; 14 | using System.Windows.Media; 15 | using Ink_Canvas.Helpers; 16 | 17 | namespace Ink_Canvas 18 | { 19 | public partial class MainWindow : Window 20 | { 21 | private class PageListViewItem 22 | { 23 | public int Index { get; set; } 24 | public StrokeCollection Strokes { get; set; } 25 | } 26 | 27 | ObservableCollection blackBoardSidePageListViewObservableCollection = new ObservableCollection(); 28 | 29 | /// 30 | /// 刷新白板的缩略图页面列表。 31 | /// 32 | private void RefreshBlackBoardSidePageListView() 33 | { 34 | if (blackBoardSidePageListViewObservableCollection.Count == WhiteboardTotalCount) { 35 | foreach (int index in Enumerable.Range(1, WhiteboardTotalCount)) 36 | { 37 | var st = ApplyHistoriesToNewStrokeCollection(TimeMachineHistories[index]); 38 | st.Clip(new Rect(0, 0, (int)inkCanvas.ActualWidth, (int)inkCanvas.ActualHeight)); 39 | var pitem = new PageListViewItem() 40 | { 41 | Index = index, 42 | Strokes = st, 43 | }; 44 | blackBoardSidePageListViewObservableCollection[index-1] = pitem; 45 | } 46 | } else { 47 | blackBoardSidePageListViewObservableCollection.Clear(); 48 | foreach (int index in Enumerable.Range(1, WhiteboardTotalCount)) { 49 | var st = ApplyHistoriesToNewStrokeCollection(TimeMachineHistories[index]); 50 | st.Clip(new Rect(0,0, (int)inkCanvas.ActualWidth, (int)inkCanvas.ActualHeight)); 51 | var pitem = new PageListViewItem() 52 | { 53 | Index = index, 54 | Strokes = st, 55 | }; 56 | blackBoardSidePageListViewObservableCollection.Add(pitem); 57 | } 58 | } 59 | 60 | var _st = inkCanvas.Strokes.Clone(); 61 | _st.Clip(new Rect(0, 0, (int)inkCanvas.ActualWidth, (int)inkCanvas.ActualHeight)); 62 | var _pitem = new PageListViewItem() 63 | { 64 | Index = CurrentWhiteboardIndex, 65 | Strokes = _st, 66 | }; 67 | blackBoardSidePageListViewObservableCollection[CurrentWhiteboardIndex - 1] = _pitem; 68 | 69 | BlackBoardLeftSidePageListView.SelectedIndex = CurrentWhiteboardIndex -1; 70 | BlackBoardRightSidePageListView.SelectedIndex = CurrentWhiteboardIndex -1; 71 | } 72 | 73 | public static void ScrollViewToVerticalTop(FrameworkElement element, ScrollViewer scrollViewer) 74 | { 75 | var scrollViewerOffset = scrollViewer.VerticalOffset; 76 | var point = new Point(0, scrollViewerOffset); 77 | var tarPos = element.TransformToVisual(scrollViewer).Transform(point); 78 | scrollViewer.ScrollToVerticalOffset(tarPos.Y); 79 | } 80 | 81 | 82 | private void BlackBoardLeftSidePageListView_OnMouseUp(object sender, MouseButtonEventArgs e) { 83 | AnimationsHelper.HideWithSlideAndFade(BoardBorderLeftPageListView); 84 | AnimationsHelper.HideWithSlideAndFade(BoardBorderRightPageListView); 85 | var item = BlackBoardLeftSidePageListView.SelectedItem; 86 | var index = BlackBoardLeftSidePageListView.SelectedIndex; 87 | if (item != null) 88 | { 89 | SaveStrokes(); 90 | ClearStrokes(true); 91 | CurrentWhiteboardIndex= index+1; 92 | RestoreStrokes(); 93 | UpdateIndexInfoDisplay(); 94 | BlackBoardLeftSidePageListView.SelectedIndex = index; 95 | } 96 | } 97 | 98 | private void BlackBoardRightSidePageListView_OnMouseUp(object sender, MouseButtonEventArgs e) 99 | { 100 | AnimationsHelper.HideWithSlideAndFade(BoardBorderLeftPageListView); 101 | AnimationsHelper.HideWithSlideAndFade(BoardBorderRightPageListView); 102 | var item = BlackBoardRightSidePageListView.SelectedItem; 103 | var index = BlackBoardRightSidePageListView.SelectedIndex; 104 | if (item != null) 105 | { 106 | SaveStrokes(); 107 | ClearStrokes(true); 108 | CurrentWhiteboardIndex = index + 1; 109 | RestoreStrokes(); 110 | UpdateIndexInfoDisplay(); 111 | BlackBoardRightSidePageListView.SelectedIndex = index; 112 | } 113 | } 114 | 115 | } 116 | } 117 | -------------------------------------------------------------------------------- /Ink Canvas/MainWindow_cs/MW_Screenshot.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Drawing.Imaging; 3 | using System.IO; 4 | using System.Runtime.InteropServices; 5 | using System.Windows; 6 | 7 | namespace Ink_Canvas { 8 | public partial class MainWindow : Window { 9 | private void SaveScreenShot(bool isHideNotification, string fileName = null) { 10 | var savePath = Settings.Automation.IsSaveScreenshotsInDateFolders 11 | ? GetDateFolderPath(fileName) 12 | : GetDefaultFolderPath(); 13 | 14 | CaptureAndSaveScreenshot(savePath, isHideNotification); 15 | 16 | if (Settings.Automation.IsAutoSaveStrokesAtScreenshot) 17 | SaveInkCanvasStrokes(false, false); 18 | } 19 | 20 | private void SaveScreenShotToDesktop() { 21 | var desktopPath = Path.Combine( 22 | Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory), 23 | $"{DateTime.Now:yyyy-MM-dd_HH-mm-ss}.png"); 24 | 25 | CaptureAndSaveScreenshot(desktopPath, false); 26 | 27 | if (Settings.Automation.IsAutoSaveStrokesAtScreenshot) 28 | SaveInkCanvasStrokes(false, false); 29 | } 30 | 31 | // 提取公共的截图和保存逻辑 32 | private void CaptureAndSaveScreenshot(string savePath, bool isHideNotification) { 33 | var rc = System.Windows.Forms.SystemInformation.VirtualScreen; 34 | 35 | using (var bitmap = new System.Drawing.Bitmap(rc.Width, rc.Height, PixelFormat.Format32bppArgb)) 36 | using (var memoryGraphics = System.Drawing.Graphics.FromImage(bitmap)) { 37 | memoryGraphics.CopyFromScreen(rc.X, rc.Y, 0, 0, rc.Size, System.Drawing.CopyPixelOperation.SourceCopy); 38 | 39 | var directory = Path.GetDirectoryName(savePath); 40 | if (!Directory.Exists(directory)) { 41 | Directory.CreateDirectory(directory); 42 | } 43 | 44 | try { 45 | // 新增双重目录检查 46 | Directory.CreateDirectory(directory); // 防止多线程场景下的竞争条件 47 | bitmap.Save(savePath, ImageFormat.Png); 48 | } 49 | catch (Exception ex) when (ex is IOException || 50 | ex is UnauthorizedAccessException || 51 | ex is ExternalException) { // 新增GDI+异常捕获 52 | // 改进备用路径处理 53 | var docPath = Path.Combine( 54 | Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), 55 | "Auto Saved - Screenshots", 56 | DateTime.Now.ToString("yyyyMMdd"), 57 | Path.GetFileNameWithoutExtension(savePath) + "_retry.png"); // 添加重试后缀 58 | 59 | try { 60 | var docDir = Path.GetDirectoryName(docPath); 61 | Directory.CreateDirectory(docDir); 62 | bitmap.Save(docPath, ImageFormat.Png); 63 | savePath = docPath; 64 | } 65 | catch (Exception fallbackEx) { 66 | // 最终错误处理 67 | if (!isHideNotification) { 68 | ShowNotification($"截图保存失败: {fallbackEx.Message}"); 69 | } 70 | return; 71 | } 72 | } 73 | } 74 | 75 | if (!isHideNotification) { 76 | try { 77 | ShowNotification($"截图成功保存至 {savePath}"); 78 | } 79 | catch { 80 | // 防止通知系统自身异常导致崩溃 81 | } 82 | } 83 | } 84 | 85 | // 获取日期文件夹路径 86 | private string GetDateFolderPath(string fileName) { 87 | var basePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Saves"); 88 | var dateFolder = DateTime.Now.ToString("yyyyMMdd"); 89 | var fullPath = Path.Combine(basePath, "Auto Saved - Screenshots", dateFolder); 90 | 91 | try { 92 | if (!Directory.Exists(fullPath)) { 93 | Directory.CreateDirectory(fullPath); 94 | } 95 | } 96 | catch (Exception ex) when 97 | (ex is IOException || 98 | ex is UnauthorizedAccessException) 99 | { 100 | // 如果创建失败则使用软件根目录作为最终备选 101 | basePath = AppDomain.CurrentDomain.BaseDirectory; 102 | fullPath = Path.Combine(basePath, "Auto Saved - Screenshots", dateFolder); 103 | 104 | Directory.CreateDirectory(fullPath); 105 | } 106 | 107 | return Path.Combine(fullPath, $"{fileName}.png"); 108 | } 109 | 110 | private string GetDefaultFolderPath() { 111 | var basePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Saves"); 112 | var screenshotsFolder = Path.Combine(basePath, "Auto Saved - Screenshots"); 113 | 114 | try { 115 | if (!Directory.Exists(screenshotsFolder)) { 116 | Directory.CreateDirectory(screenshotsFolder); 117 | } 118 | } 119 | catch (Exception) { 120 | // 如果创建失败则使用文档目录 121 | basePath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); 122 | screenshotsFolder = Path.Combine(basePath, "Auto Saved - Screenshots"); 123 | Directory.CreateDirectory(screenshotsFolder); 124 | } 125 | 126 | return Path.Combine( 127 | screenshotsFolder, 128 | $"{DateTime.Now:yyyy-MM-dd_HH-mm-ss}.png"); 129 | } 130 | } 131 | } -------------------------------------------------------------------------------- /Ink Canvas/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | using System.Windows; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("InkCanvasForClass")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("HARKOTEK Studio")] 12 | [assembly: AssemblyProduct("InkCanvasForClass")] 13 | [assembly: AssemblyCopyright("© Copyright HARKOTEK Studio 2024-now")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | //In order to begin building localizable applications, set 23 | //CultureYouAreCodingWith in your .csproj file 24 | //inside a . For example, if you are using US english 25 | //in your source files, set the to en-US. Then uncomment 26 | //the NeutralResourceLanguage attribute below. Update the "en-US" in 27 | //the line below to match the UICulture setting in the project file. 28 | 29 | //[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] 30 | 31 | 32 | [assembly: ThemeInfo( 33 | ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located 34 | //(used if a resource is not found in the page, 35 | // or application resource dictionaries) 36 | ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located 37 | //(used if a resource is not found in the page, 38 | // app, or any theme specific resource dictionaries) 39 | )] 40 | 41 | 42 | // Version information for an assembly consists of the following four values: 43 | // 44 | // Major Version 45 | // Minor Version 46 | // Build Number 47 | // Revision 48 | // 49 | // You can specify all the values or you can default the Build and Revision Numbers 50 | // by using the '*' as shown below: 51 | // [assembly: AssemblyVersion("1.0.*")] 52 | [assembly: AssemblyVersion("1.7.0.3")] 53 | [assembly: AssemblyFileVersion("1.7.0.3")] 54 | -------------------------------------------------------------------------------- /Ink Canvas/Properties/PublishProfiles/FolderProfile.pubxml: -------------------------------------------------------------------------------- 1 |  2 | 5 | 6 | 7 | Release 8 | Any CPU 9 | dist\ 10 | FileSystem 11 | <_TargetId>Folder 12 | 13 | -------------------------------------------------------------------------------- /Ink Canvas/Properties/PublishProfiles/FolderProfile.pubxml.user: -------------------------------------------------------------------------------- 1 |  2 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Ink Canvas/Properties/Resources.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace Ink_Canvas.Properties { 12 | using System; 13 | 14 | 15 | /// 16 | /// A strongly-typed resource class, for looking up localized strings, etc. 17 | /// 18 | // This class was auto-generated by the StronglyTypedResourceBuilder 19 | // class via a tool like ResGen or Visual Studio. 20 | // To add or remove a member, edit your .ResX file then rerun ResGen 21 | // with the /str option, or rebuild your VS project. 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class Resources { 26 | 27 | private static global::System.Resources.ResourceManager resourceMan; 28 | 29 | private static global::System.Globalization.CultureInfo resourceCulture; 30 | 31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 32 | internal Resources() { 33 | } 34 | 35 | /// 36 | /// Returns the cached ResourceManager instance used by this class. 37 | /// 38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 39 | internal static global::System.Resources.ResourceManager ResourceManager { 40 | get { 41 | if (object.ReferenceEquals(resourceMan, null)) { 42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Ink_Canvas.Properties.Resources", typeof(Resources).Assembly); 43 | resourceMan = temp; 44 | } 45 | return resourceMan; 46 | } 47 | } 48 | 49 | /// 50 | /// Overrides the current thread's CurrentUICulture property for all 51 | /// resource lookups using this strongly typed resource class. 52 | /// 53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 54 | internal static global::System.Globalization.CultureInfo Culture { 55 | get { 56 | return resourceCulture; 57 | } 58 | set { 59 | resourceCulture = value; 60 | } 61 | } 62 | 63 | /// 64 | /// Looks up a localized resource of type System.IO.UnmanagedMemoryStream similar to System.IO.MemoryStream. 65 | /// 66 | internal static System.IO.UnmanagedMemoryStream TimerDownNotice { 67 | get { 68 | return ResourceManager.GetStream("TimerDownNotice", resourceCulture); 69 | } 70 | } 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /Ink Canvas/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // 此代码由工具生成。 4 | // 运行时版本:4.0.30319.42000 5 | // 6 | // 对此文件的更改可能会导致不正确的行为,并且如果 7 | // 重新生成代码,这些更改将会丢失。 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace Ink_Canvas.Properties { 12 | 13 | 14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.7.0.0")] 16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { 17 | 18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 19 | 20 | public static Settings Default { 21 | get { 22 | return defaultInstance; 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Ink Canvas/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Ink Canvas/Resources/ChickenSoup.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Ink_Canvas 8 | { 9 | public static class ChickenSoup { 10 | public static string[] OSUPlayerYuLu = new string[] { 11 | "澳洲原神,启动!", 12 | "一眼丁真,鉴定为玩osu!玩的", 13 | "喊MimosaM给我炒两菜", 14 | "不要……不要把背景圖刪掉的說!", 15 | "6秒800PP,I Can!", 16 | "osu! 启动!", 17 | "你说得对,但是osu!,前面忘了,后面忘了", 18 | "换电脑变成残疾人", 19 | "难绷acc", 20 | "牢大:这是串pp图啊", 21 | "你看人家,坚持不刷PP,都在新人群买房了", 22 | "打o不要这么努力吧", 23 | "凹不了一点", 24 | "大神进步好快啊", 25 | "pass和fc之间是天堑", 26 | "4星就是一个巨大的开放暴毙世界(", 27 | "我是要成为owc选手的人!", 28 | "戳完就跳", 29 | "我疑似有点罕见了", 30 | "小时候喝了这个手指学会了强双", 31 | "90bpm熬老头呢", 32 | "艹了,发现我从没fc过一张串图", 33 | "oshit!", 34 | "hso!", 35 | "不好玩!", 36 | "钝角跳真的挺恶心的", 37 | "我草,O!", 38 | "又有人2000了" 39 | }; 40 | 41 | public static string[] MingYanJingJu = new string[] { 42 | "老骥伏枥,志在千里;烈士暮年,壮心不已", 43 | "有志者,事竟成", 44 | "有志者自有千方百计,无志者只感千难万难", 45 | "有志的人战天斗地,无志的人怨天恨地", 46 | "有伟大志向的人,都可以成为圣人。", 47 | "人的志向,应在千里之外。", 48 | "人不在于地位的高低,而在于志向的远大。", 49 | "人的志向,应崇高而远大。", 50 | "立志没有所谓过迟", 51 | "鸟不展翅膀难高飞", 52 | "不怕路远,就怕志短", 53 | "当今之世,舍我其谁", 54 | "立志不坚,终不济事", 55 | "鸟贵有翼,人贵有志", 56 | "少年立志要远大,持身要紧严立志不高,则溺于流俗;", 57 | "持身不严,则入于匪辞", 58 | "人若有志,万事可为", 59 | "心志要坚,意趣要乐", 60 | "胸无大志,枉活一世", 61 | "燕雀安知鸿鹄之志哉", 62 | "一人立志,万夫莫敌", 63 | "鹰爱高飞,鸦栖一枝", 64 | "治天下者必先立其志", 65 | "强行者有志", 66 | "志当存高远", 67 | "百学须先立志", 68 | "以天下为己任", 69 | "志,气之帅也", 70 | "才自清明志自高", 71 | "褴褛衣内可藏志", 72 | "无所求则无所获", 73 | "慷慨丈夫志,可以耀锋芒", 74 | "母鸡的理想不过是一把糠", 75 | "男儿千年志,吾生未有涯", 76 | "男儿四方志,岂久困泥沙", 77 | "男子千年志,吾生未有涯", 78 | "穷且益坚,不坠青云之志", 79 | "人生志气立,所贵功业昌", 80 | "生无一锥土,常有四海心", 81 | "无志愁压头,有志能搬山", 82 | "心随朗月高,志与秋霜洁", 83 | "胸有凌云志,无高不可攀", 84 | "雄心志四海,万里望风尘", 85 | "一分事业心能抵十分特权", 86 | "有志登山顶,无志站山脚", 87 | "丈夫清万里,谁能扫一室", 88 | "丈夫四海志,万里犹比邻", 89 | "丈夫志不大,何以佐乾坤", 90 | "丈夫志气薄,儿女安得知", 91 | "志不立,天下无可成之事", 92 | "志高山峰矮,路从脚下伸", 93 | "壮志与毅力是事业的双翼", 94 | "成功是别人失败时还在坚持", 95 | "贫不足羞,可羞是贫而无志", 96 | "虽长不满七尺,而心雄万丈", 97 | "有志者能使石头长出青草来", 98 | "志之难也,不在胜人,在自胜", 99 | "有志始知蓬莱近,无为总觉咫尺远", 100 | "不要在夕阳西下时幻想,要在旭日东升时努力", 101 | "立志是事业的大门,工作是登门入室的的旅途", 102 | "一个人如果胸无大志,既使再有壮丽的举动也称不上是伟人", 103 | "志不立,如无舵这舟,无衔之马,漂荡奔逸,终亦何所底乎", 104 | "有志不在年高,无志空活百岁", 105 | }; 106 | 107 | public static string[] GaoKaoPhrases = new string[] { 108 | "以梦为马,不负韶华。祝你高考顺利,未来可期!", 109 | "高考顺利,愿你乘风破浪,前程似锦!", 110 | "愿你高考顺利,不负韶华,梦想成真!", 111 | "高考必胜,愿你展翅高飞,未来可期!", 112 | "愿你不畏困难,勇往直前,高考成绩如你所愿,未来更加光明。", 113 | "高考将至,愿你所学皆精,所考皆通,一鸣惊人,一举夺魁!", 114 | "十年磨一剑,今朝试锋芒。高考顺利,未来可期!", 115 | "恭祝,恭祝,此战青云平步。祝高考金榜题名。", 116 | }; 117 | } 118 | } 119 | -------------------------------------------------------------------------------- /Ink Canvas/Resources/Cursors/Cursor.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Cursors/Cursor.cur -------------------------------------------------------------------------------- /Ink Canvas/Resources/Cursors/Pen.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Cursors/Pen.cur -------------------------------------------------------------------------------- /Ink Canvas/Resources/DeveloperAvatars/Alan-CRL.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/DeveloperAvatars/Alan-CRL.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/DeveloperAvatars/CN-Ironegg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/DeveloperAvatars/CN-Ironegg.jpg -------------------------------------------------------------------------------- /Ink Canvas/Resources/DeveloperAvatars/ChangSakura.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/DeveloperAvatars/ChangSakura.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/DeveloperAvatars/NetheriteBowl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/DeveloperAvatars/NetheriteBowl.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/DeveloperAvatars/NotYoojun.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/DeveloperAvatars/NotYoojun.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/DeveloperAvatars/RaspberryKan.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/DeveloperAvatars/RaspberryKan.jpg -------------------------------------------------------------------------------- /Ink Canvas/Resources/DeveloperAvatars/STBBRD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/DeveloperAvatars/STBBRD.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/DeveloperAvatars/WXRIW.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/DeveloperAvatars/WXRIW.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/DeveloperAvatars/aaaaaaccd.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/DeveloperAvatars/aaaaaaccd.jpg -------------------------------------------------------------------------------- /Ink Canvas/Resources/DeveloperAvatars/clover-yan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/DeveloperAvatars/clover-yan.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/DeveloperAvatars/dubi906w.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/DeveloperAvatars/dubi906w.jpg -------------------------------------------------------------------------------- /Ink Canvas/Resources/DeveloperAvatars/jiajiaxd.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/DeveloperAvatars/jiajiaxd.jpg -------------------------------------------------------------------------------- /Ink Canvas/Resources/DeveloperAvatars/kengwang.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/DeveloperAvatars/kengwang.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/DeveloperAvatars/wwei.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/DeveloperAvatars/wwei.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/DeveloperAvatars/yuwenhui2020.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/DeveloperAvatars/yuwenhui2020.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-Fluent/ic_fluent_add_circle_24_regular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-Fluent/ic_fluent_add_circle_24_regular.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-Fluent/ic_fluent_arrow_circle_left_24_regular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-Fluent/ic_fluent_arrow_circle_left_24_regular.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-Fluent/ic_fluent_arrow_circle_right_24_regular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-Fluent/ic_fluent_arrow_circle_right_24_regular.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-Fluent/ic_fluent_arrow_clockwise_24_regular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-Fluent/ic_fluent_arrow_clockwise_24_regular.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-Fluent/ic_fluent_arrow_rotate_clockwise_24_regular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-Fluent/ic_fluent_arrow_rotate_clockwise_24_regular.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-Fluent/ic_fluent_book_question_mark_24_regular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-Fluent/ic_fluent_book_question_mark_24_regular.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-Fluent/ic_fluent_calendar_sync_24_regular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-Fluent/ic_fluent_calendar_sync_24_regular.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-Fluent/ic_fluent_camera_24_regular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-Fluent/ic_fluent_camera_24_regular.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-Fluent/ic_fluent_clock_24_regular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-Fluent/ic_fluent_clock_24_regular.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-Fluent/ic_fluent_control_button_24_regular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-Fluent/ic_fluent_control_button_24_regular.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-Fluent/ic_fluent_copy_24_regular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-Fluent/ic_fluent_copy_24_regular.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-Fluent/ic_fluent_copy_add_24_regular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-Fluent/ic_fluent_copy_add_24_regular.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-Fluent/ic_fluent_cursorWITHdelete_24_regular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-Fluent/ic_fluent_cursorWITHdelete_24_regular.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-Fluent/ic_fluent_cursor_24_regular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-Fluent/ic_fluent_cursor_24_regular.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-Fluent/ic_fluent_dark_theme_24_regular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-Fluent/ic_fluent_dark_theme_24_regular.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-Fluent/ic_fluent_delete_24_regular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-Fluent/ic_fluent_delete_24_regular.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-Fluent/ic_fluent_dismiss_circle_24_regular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-Fluent/ic_fluent_dismiss_circle_24_regular.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-Fluent/ic_fluent_drag_24_regular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-Fluent/ic_fluent_drag_24_regular.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-Fluent/ic_fluent_dual_screen_span_24_regular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-Fluent/ic_fluent_dual_screen_span_24_regular.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-Fluent/ic_fluent_edit_24_regular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-Fluent/ic_fluent_edit_24_regular.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-Fluent/ic_fluent_flip_horizontal_24_regular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-Fluent/ic_fluent_flip_horizontal_24_regular.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-Fluent/ic_fluent_flip_vertical_24_regular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-Fluent/ic_fluent_flip_vertical_24_regular.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-Fluent/ic_fluent_folder_open_24_regular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-Fluent/ic_fluent_folder_open_24_regular.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-Fluent/ic_fluent_keyboard_24_regular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-Fluent/ic_fluent_keyboard_24_regular.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-Fluent/ic_fluent_lasso_24_regular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-Fluent/ic_fluent_lasso_24_regular.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-Fluent/ic_fluent_people_24_regular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-Fluent/ic_fluent_people_24_regular.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-Fluent/ic_fluent_people_money_24_regular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-Fluent/ic_fluent_people_money_24_regular.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-Fluent/ic_fluent_person_money_24_regular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-Fluent/ic_fluent_person_money_24_regular.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-Fluent/ic_fluent_power_24_regular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-Fluent/ic_fluent_power_24_regular.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-Fluent/ic_fluent_save_24_regular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-Fluent/ic_fluent_save_24_regular.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-Fluent/ic_fluent_scale_fit_24_regular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-Fluent/ic_fluent_scale_fit_24_regular.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-Fluent/ic_fluent_scales_24_regular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-Fluent/ic_fluent_scales_24_regular.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-Fluent/ic_fluent_settings_24_regular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-Fluent/ic_fluent_settings_24_regular.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-Fluent/ic_fluent_shapes_24_regular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-Fluent/ic_fluent_shapes_24_regular.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-Fluent/ic_fluent_signature_24_regular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-Fluent/ic_fluent_signature_24_regular.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-Fluent/ic_fluent_timer_24_regular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-Fluent/ic_fluent_timer_24_regular.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-Fluent/ic_fluent_weather_moon_24_regular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-Fluent/ic_fluent_weather_moon_24_regular.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-Fluent/ic_fluent_weather_sunny_24_regular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-Fluent/ic_fluent_weather_sunny_24_regular.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-Fluent/ic_fluent_whiteboard_24_regular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-Fluent/ic_fluent_whiteboard_24_regular.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-Fluent/party.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-Fluent/party.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/AdmoxBooth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/AdmoxBooth.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/AdmoxWhiteboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/AdmoxWhiteboard.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/Desmos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/Desmos.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/Donview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/Donview.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/EasiCamera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/EasiCamera.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/EasiNote.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/EasiNote.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/EasiNote3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/EasiNote3.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/EasiNote3C.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/EasiNote3C.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/EasiNote5C.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/EasiNote5C.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/HiteAnnotation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/HiteAnnotation.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/HiteBoard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/HiteBoard.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/HiteCamera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/HiteCamera.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/HiteLightBoard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/HiteLightBoard.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/InkCanvas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/InkCanvas.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/MaxHubWhiteboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/MaxHubWhiteboard.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/PPTTools.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/PPTTools.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/Powerpoint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/Powerpoint.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/Seewo2Annotation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/Seewo2Annotation.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/SeewoPinco.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/SeewoPinco.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/VComYouJiao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/VComYouJiao.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/WPS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/WPS.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/WenXiang.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/WenXiang.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/Whiteboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/Whiteboard.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/YiYunVisualPresenter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/YiYunVisualPresenter.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/YiYunWhiteboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/YiYunWhiteboard.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/check-box-background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/check-box-background.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/close-circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/close-circle.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/down.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/eraser-line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/eraser-line.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/eraser-outline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/eraser-outline.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/geo-icons/arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/geo-icons/arrow.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/geo-icons/centered-circle-dashed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/geo-icons/centered-circle-dashed.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/geo-icons/centered-circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/geo-icons/centered-circle.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/geo-icons/centered-oval.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/geo-icons/centered-oval.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/geo-icons/centered-square.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/geo-icons/centered-square.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/geo-icons/cone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/geo-icons/cone.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/geo-icons/cube.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/geo-icons/cube.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/geo-icons/cylinder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/geo-icons/cylinder.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/geo-icons/dashed-line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/geo-icons/dashed-line.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/geo-icons/dotted-line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/geo-icons/dotted-line.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/geo-icons/line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/geo-icons/line.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/geo-icons/paralle-lines.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/geo-icons/paralle-lines.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/geo-icons/square.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/geo-icons/square.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/ica.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/ica.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/icc-transparent-dark-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/icc-transparent-dark-small.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/icc-transparent-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/icc-transparent-dark.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/icc-transparent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/icc-transparent.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/icc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/icc.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/idt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/idt.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/kuanciya.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/kuanciya.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/kuandogeyuanliangwo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/kuandogeyuanliangwo.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/kuandoujiyanhuaji.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/kuandoujiyanhuaji.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/kuanneikuhuaji.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/kuanneikuhuaji.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/kuanshounvhuaji.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/kuanshounvhuaji.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/menu-back-highlighted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/menu-back-highlighted.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/menu-back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/menu-back.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/minimize.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/minimize.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/penUpright.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/penUpright.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/playCircle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/playCircle.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/pressdown-background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/pressdown-background.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/redo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/redo.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/setting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/setting.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/tiebahuaji.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/tiebahuaji.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/transparent-grid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/transparent-grid.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/twoFingelMove-Blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/twoFingelMove-Blue.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/twoFingelMove.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/twoFingelMove.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/undo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/undo.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons-png/up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons-png/up.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/DrawShapeIcon.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons/DrawShapeIcon.ai -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/DrawShapeIcon.svg: -------------------------------------------------------------------------------- 1 | DrawShapeIcon -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/Flip.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons/Flip.ai -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/Flip.svg: -------------------------------------------------------------------------------- 1 | Flip -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/Rotate.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons/Rotate.ai -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/Rotate.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 11 | 18 | 19 | 45° 20 | 21 | -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/Rotate45.svg: -------------------------------------------------------------------------------- 1 | Rotate45 -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/Rotate90.svg: -------------------------------------------------------------------------------- 1 | Rotate90 -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeArrowLine.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons/ShapeArrowLine.ai -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeArrowLine.svg: -------------------------------------------------------------------------------- 1 | ShapeArrowLine -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeCircle.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons/ShapeCircle.ai -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeCircle.svg: -------------------------------------------------------------------------------- 1 | ShapeCircle -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeCone.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons/ShapeCone.ai -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeCone.svg: -------------------------------------------------------------------------------- 1 | ShapeCone -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeCoordinate1.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons/ShapeCoordinate1.ai -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeCoordinate1.svg: -------------------------------------------------------------------------------- 1 | ShapeCoordinate1 -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeCoordinate2.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons/ShapeCoordinate2.ai -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeCoordinate2.svg: -------------------------------------------------------------------------------- 1 | ShapeCoordinate2 -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeCoordinate3.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons/ShapeCoordinate3.ai -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeCoordinate3.svg: -------------------------------------------------------------------------------- 1 | ShapeCoordinate3 -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeCoordinate4.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons/ShapeCoordinate4.ai -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeCoordinate4.svg: -------------------------------------------------------------------------------- 1 | ShapeCoordinate4 -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeCoordinate5.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons/ShapeCoordinate5.ai -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeCoordinate5.svg: -------------------------------------------------------------------------------- 1 | ShapeCoordinate5 -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeCuboid.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons/ShapeCuboid.ai -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeCuboid.svg: -------------------------------------------------------------------------------- 1 | ShapeCuboid -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeCylinder.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons/ShapeCylinder.ai -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeCylinder.svg: -------------------------------------------------------------------------------- 1 | ShapeCylinder -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeDashedCircle.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons/ShapeDashedCircle.ai -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeDashedCircle.svg: -------------------------------------------------------------------------------- 1 | ShapeDashedCircle -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeDashedLine.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons/ShapeDashedLine.ai -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeDashedLine.svg: -------------------------------------------------------------------------------- 1 | ShapeDashedLine -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeDotLine.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons/ShapeDotLine.ai -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeDotLine.svg: -------------------------------------------------------------------------------- 1 | ShapeDotLine -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeEllipse.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons/ShapeEllipse.ai -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeEllipse.svg: -------------------------------------------------------------------------------- 1 | ShapeEllipse -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeEllipseCenter.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons/ShapeEllipseCenter.ai -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeEllipseCenter.svg: -------------------------------------------------------------------------------- 1 | ShapeEllipseCenter -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeEllipseCenterWithFocalPoint.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons/ShapeEllipseCenterWithFocalPoint.ai -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeEllipseCenterWithFocalPoint.svg: -------------------------------------------------------------------------------- 1 | ShapeEllipseCenterWithFocalPoint -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeHyperbola.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons/ShapeHyperbola.ai -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeHyperbola.svg: -------------------------------------------------------------------------------- 1 | ShapeHyperbola -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeHyperbolaWithFocalPoint.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons/ShapeHyperbolaWithFocalPoint.ai -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeHyperbolaWithFocalPoint.svg: -------------------------------------------------------------------------------- 1 | ShapeHyperbolaWithFocalPoint -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeLine.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons/ShapeLine.ai -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeLine.svg: -------------------------------------------------------------------------------- 1 | ShapeLine -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeParabola.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons/ShapeParabola.ai -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeParabola.svg: -------------------------------------------------------------------------------- 1 | ShapeParabola -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeParabolaWithFocalPoint.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons/ShapeParabolaWithFocalPoint.ai -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeParabolaWithFocalPoint.svg: -------------------------------------------------------------------------------- 1 | ShapeParabolaWithFocalPoint -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeParallelLine.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons/ShapeParallelLine.ai -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeParallelLine.svg: -------------------------------------------------------------------------------- 1 | ShapeParallelLine -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeRectangle.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons/ShapeRectangle.ai -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeRectangle.svg: -------------------------------------------------------------------------------- 1 | ShapeRectangle -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeRectangleCenter.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons/ShapeRectangleCenter.ai -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeRectangleCenter.svg: -------------------------------------------------------------------------------- 1 | ShapeRectangleCenter -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeTetrahedron.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/Icons/ShapeTetrahedron.ai -------------------------------------------------------------------------------- /Ink Canvas/Resources/Icons/ShapeTetrahedron.svg: -------------------------------------------------------------------------------- 1 | ShapeTetrahedron -------------------------------------------------------------------------------- /Ink Canvas/Resources/PresentationExample/bottombar-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/PresentationExample/bottombar-dark.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/PresentationExample/bottombar-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/PresentationExample/bottombar-white.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/PresentationExample/page.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/PresentationExample/page.jpg -------------------------------------------------------------------------------- /Ink Canvas/Resources/PresentationExample/sidebar-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/PresentationExample/sidebar-dark.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/PresentationExample/sidebar-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/PresentationExample/sidebar-white.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/PresentationExample/toolbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/PresentationExample/toolbar.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/Styles/Dark.xaml: -------------------------------------------------------------------------------- 1 |  3 | 4 | 5 | 6 | #FFcccccc 7 | -------------------------------------------------------------------------------- /Ink Canvas/Resources/Styles/Light.xaml: -------------------------------------------------------------------------------- 1 |  3 | 4 | 5 | 6 | #18181b 7 | -------------------------------------------------------------------------------- /Ink Canvas/Resources/TimerDownNotice.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/TimerDownNotice.wav -------------------------------------------------------------------------------- /Ink Canvas/Resources/hatsune-miku1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/hatsune-miku1.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/icc.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/icc.ico -------------------------------------------------------------------------------- /Ink Canvas/Resources/new-icons/blackboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/new-icons/blackboard.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/new-icons/checked-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/new-icons/checked-black.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/new-icons/checked-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/new-icons/checked-white.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/new-icons/chevron-left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/new-icons/chevron-left.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/new-icons/circle-eraser-lined.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/new-icons/circle-eraser-lined.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/new-icons/circle-eraser-solid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/new-icons/circle-eraser-solid.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/new-icons/close-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/new-icons/close-white.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/new-icons/cursor-clear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/new-icons/cursor-clear.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/new-icons/cursor-lined.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/new-icons/cursor-lined.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/new-icons/cursor-solid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/new-icons/cursor-solid.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/new-icons/end-slides-show.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/new-icons/end-slides-show.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/new-icons/eraser-lined.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/new-icons/eraser-lined.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/new-icons/eraser-solid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/new-icons/eraser-solid.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/new-icons/eye-off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/new-icons/eye-off.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/new-icons/eye.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/new-icons/eye.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/new-icons/gesture-enabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/new-icons/gesture-enabled.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/new-icons/gesture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/new-icons/gesture.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/new-icons/grid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/new-icons/grid.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/new-icons/hand-move.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/new-icons/hand-move.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/new-icons/highlighter-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/new-icons/highlighter-white.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/new-icons/lasso-select-lined.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/new-icons/lasso-select-lined.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/new-icons/lasso-select-solid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/new-icons/lasso-select-solid.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/new-icons/multi-touch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/new-icons/multi-touch.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/new-icons/osu-lazer-triangles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/new-icons/osu-lazer-triangles.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/new-icons/pen-lined.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/new-icons/pen-lined.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/new-icons/pen-solid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/new-icons/pen-solid.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/new-icons/pen-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/new-icons/pen-white.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/new-icons/redo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/new-icons/redo.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/new-icons/rotate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/new-icons/rotate.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/new-icons/shapes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/new-icons/shapes.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/new-icons/trash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/new-icons/trash.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/new-icons/undo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/new-icons/undo.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/new-icons/unfold-chevron.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/new-icons/unfold-chevron.png -------------------------------------------------------------------------------- /Ink Canvas/Resources/new-icons/zoom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InkCanvasForClass/community/8586735ca88c5ba57c49d0e42ef4dc4bd334a1aa/Ink Canvas/Resources/new-icons/zoom.png -------------------------------------------------------------------------------- /Ink Canvas/Windows/CycleProcessBar.xaml: -------------------------------------------------------------------------------- 1 |  8 | 9 | 10 | 11 | 12 | 14 | 15 | -------------------------------------------------------------------------------- /Ink Canvas/Windows/NamesInputWindow.xaml: -------------------------------------------------------------------------------- 1 |  12 | 13 |