This commit is contained in:
yzx 2025-04-17 18:02:20 +08:00
parent 24b0cdac8a
commit 174cda4b00
54 changed files with 1502 additions and 477 deletions

View File

@ -17,9 +17,11 @@
<entry key="ToolsForm/Views/ReadCodeWindow.axaml" value="ToolsForm/ToolsForm.csproj" />
<entry key="ToolsForm/Views/RecordingWindow.axaml" value="ToolsForm/ToolsForm.csproj" />
<entry key="ToolsForm/Views/ResetSceneWindow.axaml" value="ToolsForm/ToolsForm.csproj" />
<entry key="ToolsForm/Views/StartWindow.axaml" value="ToolsForm/ToolsForm.csproj" />
<entry key="ToolsForm/Views/TemporaryStorage/TemporaryStorageWindow.axaml" value="ToolsForm/ToolsForm.csproj" />
<entry key="ToolsForm/Views/TemporaryStorageMessage.axaml" value="ToolsForm/ToolsForm.csproj" />
<entry key="ToolsForm/Views/TemporaryStorageWindow.axaml" value="ToolsForm/ToolsForm.csproj" />
<entry key="ToolsForm/Views/UploadExperConfirmWindow2.axaml" value="ToolsForm/ToolsForm.csproj" />
<entry key="ToolsForm/Views/UploadExperimentMessageWindow.axaml" value="ToolsForm/ToolsForm.csproj" />
<entry key="ToolsForm/Views/UploadExperimentWindow.axaml" value="ToolsForm/ToolsForm.csproj" />
<entry key="ToolsForm/Views/UserControl.axaml" value="ToolsForm/ToolsForm.csproj" />

View File

@ -8,43 +8,159 @@
</component>
<component name="ChangeListManager">
<list default="true" id="0ae961c9-2aa8-4465-9e53-e04d62044e0d" name="更改" comment="">
<change afterPath="$PROJECT_DIR$/ToolsForm/Assets/img/ResetScene/悬浮.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/ToolsForm/Assets/img/TemporaryStorage/对-悬浮.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0.zip" afterDir="false" />
<change afterPath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/Assets/img/ResetScene/告警.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/Assets/img/ResetScene/场景重置-选中.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/Assets/img/ResetScene/对.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/Assets/img/ResetScene/悬浮.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/Assets/img/ResetScene/重置框.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/ToolsForm/Assets/img/Experiment/总览-默认.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/ToolsForm/Assets/img/Experiment/菜单3 - 副本.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/ToolsForm/Assets/img/Experiment/菜单3.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/ToolsForm/Assets/img/Overview/tiao.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/ToolsForm/Assets/img/UploadExperimentMessage/感叹号.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/ToolsForm/Assets/img/UploadExperimentMessage/提交按钮.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/ToolsForm/Assets/img/切换新-悬浮.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/ToolsForm/Assets/img/切换新-默认.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/ToolsForm/Manager/APIInterface.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/ToolsForm/Models/DeepSeekClient.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/ToolsForm/ToolsForm.sln" afterDir="false" />
<change afterPath="$PROJECT_DIR$/ToolsForm/Views/StartWindow.axaml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/ToolsForm/Views/StartWindow.axaml.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/ToolsForm/Views/UploadExperConfirmWindow2.axaml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/ToolsForm/Views/UploadExperConfirmWindow2.axaml.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/publish/av_libglesv2.dll" afterDir="false" />
<change afterPath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/publish/libHarfBuzzSharp.dll" afterDir="false" />
<change afterPath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/publish/libSkiaSharp.dll" afterDir="false" />
<change afterPath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/publish/publish.zip" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/.idea.ToolsForm/.idea/avalonia.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/.idea.ToolsForm/.idea/avalonia.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/.idea.ToolsForm/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/.idea.ToolsForm/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.vs/ProjectEvaluation/toolsform.metadata.v7.bin" beforeDir="false" afterPath="$PROJECT_DIR$/.vs/ProjectEvaluation/toolsform.metadata.v7.bin" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.vs/ProjectEvaluation/toolsform.projects.v7.bin" beforeDir="false" afterPath="$PROJECT_DIR$/.vs/ProjectEvaluation/toolsform.projects.v7.bin" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.vs/ToolsForm/v17/.suo" beforeDir="false" afterPath="$PROJECT_DIR$/.vs/ToolsForm/v17/.suo" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm.sln.DotSettings.user" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm.sln.DotSettings.user" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/Manager/AppDataManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/Manager/AppDataManager.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/App.axaml.cs" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/App.axaml.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/Assets/img/总览-悬浮.png" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/Assets/img/总览-悬浮.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/Assets/img/总览-默认.png" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/Assets/img/总览-默认.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/Manager/AppWindowManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/Manager/AppWindowManager.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/Manager/WindowApi.cs" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/Manager/WindowApi.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/Models/RaadCodeModel.cs" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/Models/RaadCodeModel.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/Models/ToolsEventModel.cs" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/Models/ToolsEventModel.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/Views/AIWindow.axaml" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/Views/AIWindow.axaml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/Program.cs" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/Program.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/ToolsForm.csproj" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/ToolsForm.csproj" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/Views/AIWindow.axaml.cs" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/Views/AIWindow.axaml.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/Views/DownCodeWindow.axaml" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/Views/DownCodeWindow.axaml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/Views/DownCodeWindow.axaml.cs" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/Views/DownCodeWindow.axaml.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/Views/ExperimentWindow.axaml" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/Views/ExperimentWindow.axaml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/Views/ExperimentWindow.axaml.cs" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/Views/ExperimentWindow.axaml.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/Views/ExperimentWindow2.axaml" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/Views/ExperimentWindow2.axaml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/Views/ExperimentWindow2.axaml.cs" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/Views/ExperimentWindow2.axaml.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/Views/IDEErrorWindow.axaml.cs" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/Views/IDEErrorWindow.axaml.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/Views/IDEWindow.axaml.cs" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/Views/IDEWindow.axaml.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/Views/IDEWindow2.axaml.cs" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/Views/IDEWindow2.axaml.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/Views/ReadCodeWindow.axaml" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/Views/ReadCodeWindow.axaml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/Views/MainWindow.axaml" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/Views/MainWindow.axaml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/Views/MainWindow.axaml.cs" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/Views/MainWindow.axaml.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/Views/OverviewWindow.axaml" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/Views/OverviewWindow.axaml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/Views/OverviewWindow.axaml.cs" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/Views/OverviewWindow.axaml.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/Views/ReadCodeWindow.axaml.cs" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/Views/ReadCodeWindow.axaml.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/Views/ResetSceneWindow.axaml" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/Views/ResetSceneWindow.axaml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/Views/RecordingWindow.axaml.cs" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/Views/RecordingWindow.axaml.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/Views/ResetSceneWindow.axaml.cs" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/Views/ResetSceneWindow.axaml.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/Views/TemporaryStorageWindow.axaml" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/Views/TemporaryStorageWindow.axaml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/Views/TemporaryStorageMessage.axaml.cs" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/Views/TemporaryStorageMessage.axaml.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/Views/TemporaryStorageWindow.axaml.cs" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/Views/TemporaryStorageWindow.axaml.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/Views/UploadExperimentWindow.axaml" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/Views/UploadExperimentWindow.axaml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/Views/UploadExperimentMessageWindow.axaml.cs" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/Views/UploadExperimentMessageWindow.axaml.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/Views/UploadExperimentWindow.axaml.cs" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/Views/UploadExperimentWindow.axaml.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/ToolsForm.dll" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/ToolsForm.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/ToolsForm.exe" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/ToolsForm.exe" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/ToolsForm.pdb" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/ToolsForm.pdb" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0.zip" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/Assets/img/ResetScene/告警.png" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/Assets/img/ResetScene/场景重置-选中.png" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/Assets/img/ResetScene/对.png" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/Assets/img/ResetScene/悬浮.png" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/Assets/img/ResetScene/重置框.png" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/Avalonia.Base.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/Avalonia.Controls.ColorPicker.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/Avalonia.Controls.DataGrid.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/Avalonia.Controls.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/Avalonia.DesignerSupport.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/Avalonia.Desktop.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/Avalonia.Diagnostics.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/Avalonia.Dialogs.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/Avalonia.Fonts.Inter.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/Avalonia.FreeDesktop.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/Avalonia.Markup.Xaml.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/Avalonia.Markup.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/Avalonia.Metal.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/Avalonia.MicroCom.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/Avalonia.Native.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/Avalonia.OpenGL.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/Avalonia.Remote.Protocol.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/Avalonia.Skia.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/Avalonia.Themes.Fluent.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/Avalonia.Themes.Simple.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/Avalonia.Vulkan.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/Avalonia.Win32.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/Avalonia.X11.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/Avalonia.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/CommunityToolkit.Mvvm.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/HarfBuzzSharp.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/MicroCom.Runtime.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/Microsoft.Win32.SystemEvents.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/Newtonsoft.Json.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/SkiaSharp.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/System.Drawing.Common.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/System.IO.Packaging.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/System.IO.Pipelines.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/Tmds.DBus.Protocol.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/ToolsForm.deps.json" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/ToolsForm.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/ToolsForm.exe" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/ToolsForm.pdb" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/ToolsForm.runtimeconfig.json" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/Xceed.Document.NET.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/Xceed.Words.NET.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/config.txt" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/runtimes/linux-arm/native/libHarfBuzzSharp.so" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/runtimes/linux-arm/native/libSkiaSharp.so" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/runtimes/linux-arm64/native/libHarfBuzzSharp.so" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/runtimes/linux-arm64/native/libSkiaSharp.so" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/runtimes/linux-musl-x64/native/libHarfBuzzSharp.so" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/runtimes/linux-musl-x64/native/libSkiaSharp.so" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/runtimes/linux-x64/native/libHarfBuzzSharp.so" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/runtimes/linux-x64/native/libSkiaSharp.so" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/runtimes/osx/native/libAvaloniaNative.dylib" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/runtimes/osx/native/libHarfBuzzSharp.dylib" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/runtimes/osx/native/libSkiaSharp.dylib" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/runtimes/unix/lib/netcoreapp3.0/System.Drawing.Common.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/runtimes/win-arm64/native/av_libglesv2.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/runtimes/win-arm64/native/libHarfBuzzSharp.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/runtimes/win-arm64/native/libSkiaSharp.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/runtimes/win-x64/native/av_libglesv2.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/runtimes/win-x64/native/libHarfBuzzSharp.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/runtimes/win-x64/native/libSkiaSharp.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/runtimes/win-x86/native/av_libglesv2.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/runtimes/win-x86/native/libHarfBuzzSharp.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/runtimes/win-x86/native/libSkiaSharp.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/runtimes/win/lib/netcoreapp3.0/Microsoft.Win32.SystemEvents.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/runtimes/win/lib/netcoreapp3.0/System.Drawing.Common.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/websocket-sharp.dll" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Debug/net8.0/总览.docx" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/Avalonia.Base.dll" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/Avalonia.Base.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/Avalonia.Controls.dll" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/Avalonia.Controls.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/Avalonia.DesignerSupport.dll" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/Avalonia.DesignerSupport.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/Avalonia.Desktop.dll" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/Avalonia.Desktop.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/Avalonia.Dialogs.dll" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/Avalonia.Dialogs.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/Avalonia.Fonts.Inter.dll" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/Avalonia.Fonts.Inter.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/Avalonia.FreeDesktop.dll" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/Avalonia.FreeDesktop.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/Avalonia.Markup.Xaml.dll" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/Avalonia.Markup.Xaml.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/Avalonia.Markup.dll" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/Avalonia.Markup.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/Avalonia.Metal.dll" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/Avalonia.Metal.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/Avalonia.MicroCom.dll" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/Avalonia.MicroCom.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/Avalonia.Native.dll" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/Avalonia.Native.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/Avalonia.OpenGL.dll" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/Avalonia.OpenGL.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/Avalonia.Remote.Protocol.dll" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/Avalonia.Remote.Protocol.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/Avalonia.Skia.dll" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/Avalonia.Skia.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/Avalonia.Themes.Fluent.dll" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/Avalonia.Themes.Fluent.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/Avalonia.Vulkan.dll" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/Avalonia.Vulkan.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/Avalonia.Win32.dll" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/Avalonia.Win32.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/Avalonia.X11.dll" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/Avalonia.X11.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/Avalonia.dll" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/Avalonia.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/HarfBuzzSharp.dll" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/HarfBuzzSharp.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/SkiaSharp.dll" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/SkiaSharp.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/ToolsForm.deps.json" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/ToolsForm.deps.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/ToolsForm.dll" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/ToolsForm.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/ToolsForm.exe" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/ToolsForm.exe" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/ToolsForm.pdb" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/ToolsForm.pdb" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/libHarfBuzzSharp.dll" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/libHarfBuzzSharp.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/libSkiaSharp.dll" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/libSkiaSharp.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/publish/ToolsForm.exe" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/publish/ToolsForm.exe" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/publish/ToolsForm.pdb" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/publish/ToolsForm.pdb" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/obj/Debug/net8.0/Avalonia/Resources.Inputs.cache" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/obj/Debug/net8.0/Avalonia/Resources.Inputs.cache" afterDir="false" />
@ -56,6 +172,7 @@
<change beforePath="$PROJECT_DIR$/ToolsForm/obj/Debug/net8.0/ToolsForm.GeneratedMSBuildEditorConfig.editorconfig" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/obj/Debug/net8.0/ToolsForm.GeneratedMSBuildEditorConfig.editorconfig" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/obj/Debug/net8.0/ToolsForm.assets.cache" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/obj/Debug/net8.0/ToolsForm.assets.cache" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/obj/Debug/net8.0/ToolsForm.csproj.AssemblyReference.cache" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/obj/Debug/net8.0/ToolsForm.csproj.AssemblyReference.cache" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/obj/Debug/net8.0/ToolsForm.csproj.CoreCompileInputs.cache" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/obj/Debug/net8.0/ToolsForm.csproj.CoreCompileInputs.cache" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/obj/Debug/net8.0/apphost.exe" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/obj/Debug/net8.0/apphost.exe" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/obj/Debug/net8.0/ref/ToolsForm.dll" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/obj/Debug/net8.0/ref/ToolsForm.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/obj/Debug/net8.0/refint/Avalonia/ToolsForm.dll" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/obj/Debug/net8.0/refint/Avalonia/ToolsForm.dll" afterDir="false" />
@ -63,9 +180,16 @@
<change beforePath="$PROJECT_DIR$/ToolsForm/obj/Release/net8.0/win-x64/Avalonia/ToolsForm.dll" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/obj/Release/net8.0/win-x64/Avalonia/ToolsForm.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/obj/Release/net8.0/win-x64/Avalonia/ToolsForm.pdb" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/obj/Release/net8.0/win-x64/Avalonia/ToolsForm.pdb" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/obj/Release/net8.0/win-x64/Avalonia/resources" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/obj/Release/net8.0/win-x64/Avalonia/resources" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/obj/Release/net8.0/win-x64/PublishOutputs.9a158c9aeb.txt" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/obj/Release/net8.0/win-x64/PublishOutputs.9a158c9aeb.txt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/obj/Release/net8.0/win-x64/ToolsForm.AssemblyInfo.cs" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/obj/Release/net8.0/win-x64/ToolsForm.AssemblyInfo.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/obj/Release/net8.0/win-x64/ToolsForm.AssemblyInfoInputs.cache" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/obj/Release/net8.0/win-x64/ToolsForm.AssemblyInfoInputs.cache" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/obj/Release/net8.0/win-x64/ToolsForm.GeneratedMSBuildEditorConfig.editorconfig" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/obj/Release/net8.0/win-x64/ToolsForm.GeneratedMSBuildEditorConfig.editorconfig" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/obj/Release/net8.0/win-x64/ToolsForm.assets.cache" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/obj/Release/net8.0/win-x64/ToolsForm.assets.cache" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/obj/Release/net8.0/win-x64/ToolsForm.csproj.AssemblyReference.cache" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/obj/Release/net8.0/win-x64/ToolsForm.csproj.AssemblyReference.cache" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/obj/Release/net8.0/win-x64/ToolsForm.csproj.CoreCompileInputs.cache" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/obj/Release/net8.0/win-x64/ToolsForm.csproj.CoreCompileInputs.cache" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/obj/Release/net8.0/win-x64/ToolsForm.deps.json" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/obj/Release/net8.0/win-x64/ToolsForm.deps.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/obj/Release/net8.0/win-x64/ToolsForm.dll" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/obj/Release/net8.0/win-x64/ToolsForm.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/obj/Release/net8.0/win-x64/ToolsForm.genbundle.cache" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/obj/Release/net8.0/win-x64/ToolsForm.genbundle.cache" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/obj/Release/net8.0/win-x64/ToolsForm.pdb" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/obj/Release/net8.0/win-x64/ToolsForm.pdb" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/obj/Release/net8.0/win-x64/ref/ToolsForm.dll" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/obj/Release/net8.0/win-x64/ref/ToolsForm.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/obj/Release/net8.0/win-x64/refint/Avalonia/ToolsForm.dll" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/obj/Release/net8.0/win-x64/refint/Avalonia/ToolsForm.dll" afterDir="false" />
@ -73,8 +197,10 @@
<change beforePath="$PROJECT_DIR$/ToolsForm/obj/Release/net8.0/win-x64/singlefilehost.exe" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/obj/Release/net8.0/win-x64/singlefilehost.exe" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/obj/ToolsForm.csproj.nuget.dgspec.json" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/obj/ToolsForm.csproj.nuget.dgspec.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/obj/ToolsForm.csproj.nuget.g.props" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/obj/ToolsForm.csproj.nuget.g.props" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/obj/ToolsForm.csproj.nuget.g.targets" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/obj/ToolsForm.csproj.nuget.g.targets" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/obj/project.assets.json" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/obj/project.assets.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/obj/project.nuget.cache" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/obj/project.nuget.cache" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/obj/project.packagespec.json" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/obj/project.packagespec.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/obj/rider.project.model.nuget.info" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/obj/rider.project.model.nuget.info" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/obj/rider.project.restore.info" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/obj/rider.project.restore.info" afterDir="false" />
</list>
@ -91,12 +217,20 @@
</component>
<component name="HighlightingSettingsPerFile">
<setting file="file://$USER_HOME$/AppData/Local/Symbols/src/dotnet/runtime/2d7eea252964e69be94cb9c847b371b23e4dd470/src/libraries/System.Private.CoreLib/src/System/Threading/ExecutionContext.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$USER_HOME$/AppData/Local/Temp/SourceGeneratedDocuments/811F622FC540C8833C1C7FFC/Avalonia.Generators/Avalonia.Generators.NameGenerator.AvaloniaNameSourceGenerator/ToolsForm.Views.DownCodeWindow.g.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$USER_HOME$/AppData/Local/Temp/SourceGeneratedDocuments/811F622FC540C8833C1C7FFC/Avalonia.Generators/Avalonia.Generators.NameGenerator.AvaloniaNameSourceGenerator/ToolsForm.Views.ExperimentWindow.g.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/00f3784ef64d4453a2630f8508a23171f9200/0a/c70ccf06/Window.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/00f3784ef64d4453a2630f8508a23171f9200/57/f4b4f129/ToggleButton.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/00f3784ef64d4453a2630f8508a23171f9200/cd/7b194776/IWindowBaseImpl.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/00f3784ef64d4453a2630f8508a23171f9200/fc/1180e23f/TextBlock.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/02323166d85f414986b6c748680fca1e2e910/f3/9a17a383/WebSocketDeflateOptions.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/056eb7a619d244a3a3b09539a81e6dc014400/5d/e95356e9/ReflectionBindingExtension.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/056eb7a619d244a3a3b09539a81e6dc014400/a5/2fbad56c/CompiledBindingExtension.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/0ceaca09f3944680b668dee8e1e0370b100a00/59/154c3f1a/WindowBase.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/0ceaca09f3944680b668dee8e1e0370b100a00/d1/83662a49/Screens.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/0ceaca09f3944680b668dee8e1e0370b100a00/ea/9ef30690/Window.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/22d92db124764b1ab49745245c66f01b1e1a00/ea/00b655a6/StandardCursorType.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/5dd773482c984277ab956687084e52fc68000/24/58d4067a/DataGridColumnHeader.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/74eaac094039460b88cbb81a06bdd12d138a0/0d/4dd9634d/INotifyPropertyChanged.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/93315fdb183a474a973851b4a8e2365f14400/ea/91c21367/CompiledBindingExtension.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/c47327607d1a4ddca06ba2bc6b6ba8261cc800/fe/fefa5f42/UntypedBindingExpressionBase.cs" root0="SKIP_HIGHLIGHTING" />
@ -105,6 +239,7 @@
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/de3edec1170e48a0a2478d8743508635c8e910/7e/a675f6db/SafeFileHandle.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/de3edec1170e48a0a2478d8743508635c8e910/eb/e5a2fec8/SafeFileHandle.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/e6b66c6b133847f9a2c8b591fb074f9d100400/a4/f3893419/Screen.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/f571f37fed6244e1a931556f6afbcbb7100c00/4d/9e60eab7/ClassicDesktopStyleApplicationLifetimeExtensions.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/00f3784ef64d4453a2630f8508a23171f9200/_4d593/IWindowImpl.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/2d9e48c78990cecd83446d724e6becca8372160e7da83528c0b6efca8ffb7/Button.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/2e49d31c49913769929208c70c15e8493f19d1ac876bcf8b11123d7bfb66b/RequestMessage{T}.cs" root0="SKIP_HIGHLIGHTING" />
@ -131,14 +266,14 @@
&quot;ASKED_ADD_EXTERNAL_FILES&quot;: &quot;true&quot;,
&quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
&quot;RunOnceActivity.git.unshallow&quot;: &quot;true&quot;,
&quot;XThreadsFramesViewSplitterKey&quot;: &quot;0.5078125&quot;,
&quot;XThreadsFramesViewSplitterKey&quot;: &quot;0.5077882&quot;,
&quot;git-widget-placeholder&quot;: &quot;main&quot;,
&quot;node.js.detected.package.eslint&quot;: &quot;true&quot;,
&quot;node.js.detected.package.tslint&quot;: &quot;true&quot;,
&quot;node.js.selected.package.eslint&quot;: &quot;(autodetect)&quot;,
&quot;node.js.selected.package.tslint&quot;: &quot;(autodetect)&quot;,
&quot;nodejs_package_manager_path&quot;: &quot;npm&quot;,
&quot;settings.editor.selected.configurable&quot;: &quot;Console&quot;,
&quot;settings.editor.selected.configurable&quot;: &quot;preferences.keymap&quot;,
&quot;vue.rearranger.settings.migration&quot;: &quot;true&quot;,
&quot;发布到文件夹.Publish ToolsForm to folder (1).executor&quot;: &quot;Run&quot;,
&quot;发布到文件夹.Publish ToolsForm to folder (2).executor&quot;: &quot;Run&quot;,
@ -149,11 +284,19 @@
&quot;发布到文件夹.目录.executor&quot;: &quot;Run&quot;
}
}</component>
<component name="RunManager" selected=".NET 项目.ToolsForm">
<component name="RunManager" selected="发布到文件夹.Publish ToolsForm to folder (3)">
<configuration name="Publish ToolsForm to folder (1)" type="DotNetFolderPublish" factoryName="Publish to folder">
<riderPublish configuration="Release" delete_existing_files="true" include_all_content_for_self_extract="true" include_native_libs_for_self_extract="true" platform="Any CPU" produce_single_file="true" runtime="win-x64" self_contained="true" target_folder="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/publish" target_framework="net8.0" uuid_high="8004843969109443341" uuid_low="-5534705942332332484" />
<method v="2" />
</configuration>
<configuration name="Publish ToolsForm to folder (2)" type="DotNetFolderPublish" factoryName="Publish to folder">
<riderPublish configuration="Release" delete_existing_files="true" platform="Any CPU" produce_single_file="true" runtime="win-x64" self_contained="true" target_folder="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/publish" target_framework="net8.0" uuid_high="8004843969109443341" uuid_low="-5534705942332332484" />
<method v="2" />
</configuration>
<configuration name="Publish ToolsForm to folder (3)" type="DotNetFolderPublish" factoryName="Publish to folder">
<riderPublish configuration="Release" delete_existing_files="true" platform="Any CPU" produce_single_file="true" runtime="win-x64" self_contained="true" target_folder="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/publish" target_framework="net8.0" uuid_high="8004843969109443341" uuid_low="-5534705942332332484" />
<method v="2" />
</configuration>
<configuration name="Publish ToolsForm to folder" type="DotNetFolderPublish" factoryName="Publish to folder">
<riderPublish configuration="Release" include_all_content_for_self_extract="true" include_native_libs_for_self_extract="true" platform="Any CPU" produce_single_file="true" runtime="win-x64" self_contained="true" target_folder="$PROJECT_DIR$/ToolsForm/bin/Release/net8.0/win-x64/publish" target_framework="net8.0" uuid_high="8004843969109443341" uuid_low="-5534705942332332484" />
<method v="2" />
@ -178,7 +321,9 @@
</configuration>
<list>
<item itemvalue=".NET 项目.ToolsForm" />
<item itemvalue="发布到文件夹.Publish ToolsForm to folder (3)" />
<item itemvalue="发布到文件夹.Publish ToolsForm to folder (1)" />
<item itemvalue="发布到文件夹.Publish ToolsForm to folder (2)" />
<item itemvalue="发布到文件夹.Publish ToolsForm to folder" />
</list>
</component>
@ -234,6 +379,27 @@
<workItem from="1731927855316" duration="1536000" />
<workItem from="1731930556129" duration="3219000" />
<workItem from="1732153629460" duration="128000" />
<workItem from="1734603229466" duration="941000" />
<workItem from="1734679976266" duration="6087000" />
<workItem from="1734919542421" duration="1101000" />
<workItem from="1734943750631" duration="1370000" />
<workItem from="1734948475896" duration="1906000" />
<workItem from="1735111845313" duration="297000" />
<workItem from="1735196198351" duration="1612000" />
<workItem from="1739347733592" duration="11198000" />
<workItem from="1740374496561" duration="5572000" />
<workItem from="1741245406954" duration="59000" />
<workItem from="1741671738663" duration="4890000" />
<workItem from="1741677712982" duration="1000000" />
<workItem from="1741679331751" duration="4777000" />
<workItem from="1742451445354" duration="7601000" />
<workItem from="1742793256662" duration="3278000" />
<workItem from="1742804838449" duration="7604000" />
<workItem from="1744245641624" duration="16050000" />
<workItem from="1744267488524" duration="871000" />
<workItem from="1744275986458" duration="1893000" />
<workItem from="1744874420088" duration="8122000" />
<workItem from="1744882607405" duration="1411000" />
</task>
<servers />
</component>
@ -261,30 +427,69 @@
<breakpoints>
<line-breakpoint enabled="true" type="DotNet Breakpoints">
<url>file://$PROJECT_DIR$/ToolsForm/Views/IDEWindow.axaml.cs</url>
<line>135</line>
<line>136</line>
<properties documentPath="C:\Users\PC\RiderProjects\ToolsForm\ToolsForm\Views\IDEWindow.axaml.cs" containingFunctionPresentation="方法 'NextStepButton_OnClick'">
<startOffsets>
<option value="3927" />
<option value="3958" />
</startOffsets>
<endOffsets>
<option value="3969" />
<option value="4000" />
</endOffsets>
</properties>
<option name="timeStamp" value="3" />
</line-breakpoint>
<line-breakpoint enabled="true" type="DotNet Breakpoints">
<url>file://$PROJECT_DIR$/ToolsForm/Views/RecordingWindow.axaml.cs</url>
<line>52</line>
<line>53</line>
<properties documentPath="C:\Users\PC\RiderProjects\ToolsForm\ToolsForm\Views\RecordingWindow.axaml.cs" containingFunctionPresentation="lambda 表达式内 方法 'OnRotationTimerElapsed'">
<startOffsets>
<option value="1623" />
<option value="1654" />
</startOffsets>
<endOffsets>
<option value="1682" />
<option value="1713" />
</endOffsets>
</properties>
<option name="timeStamp" value="5" />
</line-breakpoint>
<line-breakpoint enabled="true" type="DotNet Breakpoints">
<url>file://$PROJECT_DIR$/ToolsForm/Views/MainWindow.axaml.cs</url>
<line>200</line>
<properties documentPath="E:\Unity Projects\GitLab\2024\ICT_ToolsForm\ToolsForm\ToolsForm\Views\MainWindow.axaml.cs" containingFunctionPresentation="方法 'StartExperimentButton_OnClick'">
<startOffsets>
<option value="7278" />
</startOffsets>
<endOffsets>
<option value="7391" />
</endOffsets>
</properties>
<option name="timeStamp" value="6" />
</line-breakpoint>
<line-breakpoint enabled="true" type="DotNet Breakpoints">
<url>file://$PROJECT_DIR$/ToolsForm/Views/UploadExperConfirmWindow2.axaml.cs</url>
<line>45</line>
<properties documentPath="E:\Unity Projects\GitLab\2024\ICT_ToolsForm\ToolsForm\ToolsForm\Views\UploadExperConfirmWindow2.axaml.cs" containingFunctionPresentation="方法 'GetScreenCenter'">
<startOffsets>
<option value="1327" />
</startOffsets>
<endOffsets>
<option value="1353" />
</endOffsets>
</properties>
<option name="timeStamp" value="7" />
</line-breakpoint>
<line-breakpoint enabled="true" type="DotNet Breakpoints">
<url>file://$PROJECT_DIR$/ToolsForm/Views/ExperimentWindow2.axaml.cs</url>
<line>49</line>
<properties documentPath="E:\Unity Projects\GitLab\2024\ICT_ToolsForm\ToolsForm\ToolsForm\Views\ExperimentWindow2.axaml.cs" containingFunctionPresentation="构造函数 'ExperimentWindow2'">
<startOffsets>
<option value="1579" />
</startOffsets>
<endOffsets>
<option value="1614" />
</endOffsets>
</properties>
<option name="timeStamp" value="11" />
</line-breakpoint>
</breakpoints>
</breakpoint-manager>
</component>

View File

@ -1,10 +1,15 @@
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:Boolean x:Key="/Default/AddReferences/RecentPaths/=C_003A_005CUsers_005CPC_005CDesktop_005Cwebsocket_002Dsharp_002Edll/@EntryIndexedValue">True</s:Boolean>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ACompiledBindingExtension_002Ecs_002Fl_003AC_0021_003FUsers_003FPC_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F93315fdb183a474a973851b4a8e2365f14400_003Fea_003F91c21367_003FCompiledBindingExtension_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ADataGridColumnHeader_002Ecs_002Fl_003AC_0021_003FUsers_003FPC_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F5dd773482c984277ab956687084e52fc68000_003F24_003F58d4067a_003FDataGridColumnHeader_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AIWindowBaseImpl_002Ecs_002Fl_003AC_0021_003FUsers_003FPC_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F00f3784ef64d4453a2630f8508a23171f9200_003Fcd_003F7b194776_003FIWindowBaseImpl_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ASafeFileHandle_002Ecs_002Fl_003AC_0021_003FUsers_003FPC_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fde3edec1170e48a0a2478d8743508635c8e910_003Feb_003Fe5a2fec8_003FSafeFileHandle_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AScreen_002Ecs_002Fl_003AC_0021_003FUsers_003FPC_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fe6b66c6b133847f9a2c8b591fb074f9d100400_003Fa4_003Ff3893419_003FScreen_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AStandardCursorType_002Ecs_002Fl_003AC_0021_003FUsers_003FPC_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F22d92db124764b1ab49745245c66f01b1e1a00_003Fea_003F00b655a6_003FStandardCursorType_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AWebSocketDeflateOptions_002Ecs_002Fl_003AC_0021_003FUsers_003FPC_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F02323166d85f414986b6c748680fca1e2e910_003Ff3_003F9a17a383_003FWebSocketDeflateOptions_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AWindowBase_002Ecs_002Fl_003AC_0021_003FUsers_003FPC_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F0ceaca09f3944680b668dee8e1e0370b100a00_003F59_003F154c3f1a_003FWindowBase_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AWindow_002Ecs_002Fl_003AC_0021_003FUsers_003FPC_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003F76aad41724a492bc2e5ff0e928797f38ecc2de18abdc8e7fa47bcc970dfc46b_003FWindow_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AWindow_002Ecs_002Fl_003AC_0021_003FUsers_003FPC_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F0ceaca09f3944680b668dee8e1e0370b100a00_003Fea_003F9ef30690_003FWindow_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/Environment/AssemblyExplorer/XmlDocument/@EntryValue">&lt;AssemblyExplorer&gt;&#xD;
&lt;Assembly Path="C:\Users\PC\.nuget\packages\avalonia\11.2.1\ref\net8.0\Avalonia.Controls.dll" /&gt;&#xD;
&lt;/AssemblyExplorer&gt;</s:String></wpf:ResourceDictionary>

View File

@ -6,6 +6,7 @@ using Avalonia.Data.Core.Plugins;
using Avalonia.Markup.Xaml;
using Avalonia.Media;
using Tmds.DBus.Protocol;
using ToolsForm.Manager;
using ToolsForm.Models;
using ToolsForm.Views;
@ -25,8 +26,8 @@ public class App : Application
var webSocketManager = WebSocketManager.GetInstance();
APIInterface.url = args[1];
Console.WriteLine(args[0]);
webSocketManager.Connect(args[0]);
@ -44,7 +45,7 @@ public class App : Application
// Line below is needed to remove Avalonia data validation.
// Without this line you will get duplicate validations from both Avalonia and CT
BindingPlugins.DataValidators.RemoveAt(0);
desktop.MainWindow = new MainWindow
desktop.MainWindow = new StartWindow()
{
// DataContext = new MainWindowViewModel(),
};

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 778 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 764 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -0,0 +1,6 @@
namespace ToolsForm.Manager;
public static class APIInterface
{
public static string url;
}

View File

@ -34,6 +34,7 @@ namespace ToolsForm.Models
public static ExperimentWindow? ExperimentWindow; //暂存
public static UploadExperimentWindow? UploadExperimentWindow; //暂存
public static UploadExperimentMessageWindow? UploadExperimentMessageWindow; //暂存
public static UploadExperConfirmWindow2? UploadExperConfirmWindow2; //暂存
public static AIWindow? AiWindow; //AI
public static ExperimentWindow2? ExperimentWindow2; //切换窗口
@ -172,6 +173,7 @@ namespace ToolsForm.Models
CloseWindow(ref IdeErrorWindow);
CloseWindow(ref UploadExperimentMessageWindow);
CloseWindow(ref AiWindow);
CloseWindow(ref UploadExperConfirmWindow2);
}
}
}

View File

@ -1,4 +1,5 @@
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
public static class WindowApi
@ -28,4 +29,11 @@ public static class WindowApi
public int Right;
public int Bottom;
}
public static bool isSubmiteBttonOpen = true;
public static List<string> Tasks;
public static string score;
}

View File

@ -0,0 +1,57 @@
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
public class DeepSeekClient
{
private readonly HttpClient _httpClient;
private readonly string _apiKey;
public DeepSeekClient(string apiKey)
{
_httpClient = new HttpClient();
_apiKey = apiKey;
_httpClient.DefaultRequestHeaders.Add("Authorization", $"Bearer {_apiKey}");
}
public async Task<string> SendMessageAsync(string userInput)
{
var requestUrl = "https://api.deepseek.com/chat/completions";
var requestBody = new
{
model = "deepseek-chat",
messages = new[]
{
new { role = "user", content = userInput }
}
};
var jsonContent = JsonConvert.SerializeObject(requestBody);
var httpContent = new StringContent(jsonContent, Encoding.UTF8, "application/json");
var response = await _httpClient.PostAsync(requestUrl, httpContent);
response.EnsureSuccessStatusCode();
var responseContent = await response.Content.ReadAsStringAsync();
var result = JsonConvert.DeserializeObject<DeepSeekResponse>(responseContent);
return result.Choices[0].Message.Content;
}
}
public class DeepSeekResponse
{
public Choice[] Choices { get; set; }
}
public class Choice
{
public Message Message { get; set; }
}
public class Message
{
public string Role { get; set; }
public string Content { get; set; }
}

View File

@ -4,4 +4,9 @@ public class RaadCodeModel
{
public int Process { get; set; }
public bool IsSucess { get; set; }
}
public class ScoreModel
{
public string Score { get; set; }
}

View File

@ -52,6 +52,7 @@ public enum ToolsEventEnum
/// 缩略图
/// </summary>
Thumbnail,
HuiFu
HuiFu,
score
}

View File

@ -1,4 +1,5 @@
using System;
using System.Linq;
using Avalonia;
namespace ToolsForm;
@ -11,6 +12,51 @@ internal sealed class Program
[STAThread]
public static void Main(string[] args)
{
if (args.Length > 0)
{
string arg = args[0];
// 检查是否包含WithSubmitButton
if (arg.StartsWith("WithSubmitButton"))
{
WindowApi.isSubmiteBttonOpen = true;
// 检查是否有任务详情
if (arg.Contains("taskdetail:"))
{
// 分割参数获取任务详情部分
string taskDetail = arg.Split(new[] { "taskdetail:" }, StringSplitOptions.None)[1];
// 进一步按&&分割任务
string[] tasks = taskDetail.Split(new[] { "&&" }, StringSplitOptions.RemoveEmptyEntries);
// 存储任务列表以供后续使用
WindowApi.Tasks = tasks.ToList();
}
}
else
{
WindowApi.isSubmiteBttonOpen = false;
}
}
else
{
// string s = "WithSubmitButton,taskdetail:&&1、初始化机器人位置&&2、设置机器人名称及颜色&&3、播放背景音乐&&4、设置背景图片&&5、相机环绕点3转&&6、生成机器人整列并跳舞&&7、停止背景音乐并截图";
// // 检查是否有任务详情
// if (s.Contains("taskdetail:"))
// {
// // 分割参数获取任务详情部分
// string taskDetail = s.Split(new[] { "taskdetail:" }, StringSplitOptions.None)[1];
//
// // 进一步按&&分割任务
// string[] tasks = taskDetail.Split(new[] { "&&" }, StringSplitOptions.RemoveEmptyEntries);
//
// // 存储任务列表以供后续使用
// WindowApi.Tasks = tasks.ToList();
// }
}
BuildAvaloniaApp()
.StartWithClassicDesktopLifetime(args);
}
@ -19,7 +65,7 @@ internal sealed class Program
public static AppBuilder BuildAvaloniaApp()
{
return AppBuilder.Configure<App>()
.UsePlatformDetect()
.UsePlatformDetect()
.WithInterFont()
.LogToTrace();
}

View File

@ -24,12 +24,12 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Avalonia" Version="11.2.1" />
<PackageReference Include="Avalonia.Desktop" Version="11.2.1" />
<PackageReference Include="Avalonia.Themes.Fluent" Version="11.2.1" />
<PackageReference Include="Avalonia.Fonts.Inter" Version="11.2.1" />
<PackageReference Include="Avalonia" Version="11.2.5" />
<PackageReference Include="Avalonia.Desktop" Version="11.2.5" />
<PackageReference Include="Avalonia.Themes.Fluent" Version="11.2.5" />
<PackageReference Include="Avalonia.Fonts.Inter" Version="11.2.5" />
<!--Condition below is needed to remove Avalonia.Diagnostics package from build output in Release configuration.-->
<PackageReference Condition="'$(Configuration)' == 'Debug'" Include="Avalonia.Diagnostics" Version="11.2.1" />
<PackageReference Condition="'$(Configuration)' == 'Debug'" Include="Avalonia.Diagnostics" Version="11.2.5" />
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.2.1"/>
<PackageReference Include="DocX" Version="3.0.1" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />

View File

@ -0,0 +1,24 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.5.2.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ToolsForm", "ToolsForm.csproj", "{734CD64B-E4C7-1BC7-8E9A-F413C77975C3}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{734CD64B-E4C7-1BC7-8E9A-F413C77975C3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{734CD64B-E4C7-1BC7-8E9A-F413C77975C3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{734CD64B-E4C7-1BC7-8E9A-F413C77975C3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{734CD64B-E4C7-1BC7-8E9A-F413C77975C3}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {8498BA7B-6EA0-4754-8C7D-53849F7E39FE}
EndGlobalSection
EndGlobal

View File

@ -23,7 +23,8 @@ namespace ToolsForm.Views
public AIWindow()
{
InitializeComponent();
ShowInTaskbar = false;
Topmost = true;

View File

@ -68,14 +68,14 @@
0 KB/0 MB
</TextBlock>
<TextBlock
Canvas.Left="260"
Canvas.Top="75"
FontFamily="{StaticResource SourceNormal}"
FontSize="14"
Foreground="#9B9B9B"
Name="TextBlockRight">
0 KB/S
</TextBlock>
<!-- <TextBlock -->
<!-- Canvas.Left="140" -->
<!-- Canvas.Top="75" -->
<!-- FontFamily="{StaticResource SourceNormal}" -->
<!-- FontSize="14" -->
<!-- Foreground="#9B9B9B" -->
<!-- Name="TextBlockRight"> -->
<!-- 0 KB/S -->
<!-- </TextBlock> -->
</Canvas>
</Window>

View File

@ -16,19 +16,20 @@ public partial class DownCodeWindow : Window
public DownCodeWindow()
{
InitializeComponent();
Topmost = true;
Topmost = true;
WebSocketManager.GetInstance().OnMessageReceived += HandleWebSocketMessage;
Jie();
ShowInTaskbar = false;
//Jie();
}
private void HandleWebSocketMessage(ToolsEventModel eventmodel)
{
Console.WriteLine("接收到的事件类型: " + eventmodel.eventType);
Console.WriteLine("事件数据: " + eventmodel.data);
if (eventmodel.eventType == "DataReading")
{
RaadCodeModel raadCodeModel = JsonConvert.DeserializeObject<RaadCodeModel>((string)eventmodel.data);
@ -37,22 +38,23 @@ public partial class DownCodeWindow : Window
ProgressBar.Value = raadCodeModel.Process;
}
}
}
async void Jie()
{
await Task.Delay(1000);
AppWindowManager.CloseWindow(ref AppWindowManager.DownCodeWindow);
}
TextBlock textBlockLeft;
TextBlock textBlockCenter;
private void Window_OnLoaded(object? sender, RoutedEventArgs e)
{
// 获取三个 TextBlock 的引用
TextBlock textBlockLeft = this.FindControl<TextBlock>("TextBlockLeft");
TextBlock textBlockCenter = this.FindControl<TextBlock>("TextBlockCenter");
TextBlock textBlockRight = this.FindControl<TextBlock>("TextBlockRight");
// TextBlock textBlockRight = this.FindControl<TextBlock>("TextBlockRight");
// 获取窗口宽度
double windowWidth = this.Bounds.Width;
@ -61,7 +63,7 @@ public partial class DownCodeWindow : Window
Typeface typeface = new Typeface(textBlockLeft.FontFamily, FontStyle.Normal, FontWeight.Normal); // 创建 Typeface
double leftWidth = MeasureTextWidth(textBlockLeft.Text, typeface, textBlockLeft.FontSize);
double centerWidth = MeasureTextWidth(textBlockCenter.Text, typeface, textBlockCenter.FontSize);
double rightWidth = MeasureTextWidth(textBlockRight.Text, typeface, textBlockRight.FontSize);
// double rightWidth = MeasureTextWidth(textBlockRight.Text, typeface, textBlockRight.FontSize);
// 设置左侧 TextBlock 的位置
Canvas.SetLeft(textBlockLeft, 40); // 或者你可以设置为 0
@ -70,13 +72,41 @@ public partial class DownCodeWindow : Window
double centerX = (windowWidth - centerWidth) / 2;
Canvas.SetLeft(textBlockCenter, centerX);
// 设置右侧 TextBlock 的位置
double rightX = windowWidth - rightWidth - 40; // 留一些边距
Canvas.SetLeft(textBlockRight, rightX);
// // 设置右侧 TextBlock 的位置
// double rightX = windowWidth - rightWidth - 100; // 留一些边距
// Canvas.SetLeft(textBlockRight, rightX);
StartDownloadAnimation();
// DownloadCodeAsync();
}
private Random random = new Random();
async void StartDownloadAnimation()
{
double totalSize = random.Next(1, 5); // 随机总大小MB
double progress = 0;
int stepCount = 100; // 总步数
int stepDelay = 5000 / stepCount; // 10秒完成
for (int i = 0; i <= stepCount; i++)
{
progress = (double)i / stepCount * 100;
ProgressBar.Value = progress;
// 更新下载速度(随机)
double speedLeft = random.Next(10, 100);
double speedRight = random.Next(10, 100);
double currentSize = totalSize * progress / 100;
TextBlockLeft.Text = $"{speedLeft:F1} KB/S";
// TextBlockRight.Text = $"{speedRight:F1} KB/S";
TextBlockCenter.Text = $"{currentSize:F1} MB/{totalSize:F1} MB";
await Task.Delay(stepDelay);
}
AppWindowManager.CloseWindow(ref AppWindowManager.DownCodeWindow);
await Task.Delay(500); // 完成后等待半秒
}
private double MeasureTextWidth(string text, Typeface typeface, double fontSize)
{
// 创建一个有效的 CultureInfo 对象
@ -103,10 +133,10 @@ public partial class DownCodeWindow : Window
// await Task.Delay(50); // 模拟下载耗时
// }
// }
protected override void OnClosed(EventArgs e)
{
base.OnClosed(e);
Console.WriteLine("窗口关闭");
WebSocketManager.GetInstance().OnMessageReceived -= HandleWebSocketMessage;
}
}

View File

@ -22,6 +22,9 @@
<Setter Property="Width" Value="102" />
<Setter Property="Height" Value="589" />
</Style>
<Style Selector="ToggleButton:disabled">
<Setter Property="Opacity" Value="0.2" />
</Style>
<Style Selector="Button">
<!-- 固定按钮的前景色,确保按钮在不同状态下文字颜色不变 -->
<Setter Property="Background" Value="Transparent" />
@ -80,64 +83,67 @@
<Image
Canvas.Left="0"
Canvas.Top="0"
Source="avares://ToolsForm/Assets/img/Experiment/菜单2.png" />
Source="avares://ToolsForm/Assets/img/Experiment/菜单3.png" />
<!-- 定义第一个 ToggleButton使用 Tag 属性传递图片基路径 -->
<ToggleButton
Canvas.Left="25"
Canvas.Top="45"
Canvas.Top="60"
Click="OpenWindowToggleButton_Overview"
Height="52"
IsChecked="{Binding IsButton1Checked, Mode=TwoWay}"
Tag="avares://ToolsForm/Assets/img/总览"
Width="52" />
Width="52"
x:Name="OverviewButton" />
<ToggleButton
<!-- <ToggleButton
Canvas.Left="25"
Canvas.Top="110"
Click="AIWindowToggleButton_AI"
Height="52"
IsChecked="{Binding IsButton2Checked, Mode=TwoWay}"
Tag="avares://ToolsForm/Assets/img/ai"
Width="52" />
Width="52" />-->
<ToggleButton
Canvas.Left="25"
Canvas.Top="180"
Canvas.Top="120"
Click="APIWindowButton_OnClick"
Height="52"
Height="100"
IsChecked="{Binding IsButton3Checked, Mode=TwoWay}"
Tag="avares://ToolsForm/Assets/img/api"
Width="52" />
<ToggleButton
Canvas.Left="25"
Canvas.Top="235"
Click="RecordingWindowButton_OnClick"
Height="52"
IsEnabled="False"
IsChecked="{Binding IsButton4Checked, Mode=TwoWay}"
Tag="avares://ToolsForm/Assets/img/代码重置"
Width="52"
Opacity="0.5" />
<!-- <ToggleButton -->
<!-- Canvas.Left="25" -->
<!-- Canvas.Top="235" -->
<!-- Click="RecordingWindowButton_OnClick" -->
<!-- Height="52" -->
<!-- IsEnabled="False" -->
<!-- IsChecked="{Binding IsButton4Checked, Mode=TwoWay}" -->
<!-- Tag="avares://ToolsForm/Assets/img/代码重置" -->
<!-- Width="52" -->
<!-- Opacity="0.5" /> -->
<ToggleButton
Canvas.Left="25"
Canvas.Top="310"
Canvas.Top="230"
Click="TemporaryStorageButton5_OnClick"
Height="52"
IsChecked="{Binding IsButton5Checked, Mode=TwoWay}"
Tag="avares://ToolsForm/Assets/img/暂存"
Width="52" />
Width="52"
x:Name="TemporaryStorageButton5" />
<ToggleButton
Canvas.Left="25"
Canvas.Top="370"
Canvas.Top="300"
Click="ReadCodeButton6_OnClick"
Height="52"
IsChecked="{Binding IsButton6Checked, Mode=TwoWay}"
Tag="avares://ToolsForm/Assets/img/读取"
Width="52" />
Width="52"
x:Name="ReadCodeButton" />
<!-- ~1~ 进度条 @1@ -->
<!-- <ProgressBar -->
@ -154,17 +160,17 @@
<!-- Width="40" /> -->
<ToggleButton
Canvas.Left="29"
Canvas.Top="435"
Canvas.Left="30"
Canvas.Top="380"
Click="StartExperimentButton_OnClick"
Height="55"
Height="110"
IsChecked="{Binding IsButton7Checked, Mode=TwoWay}"
Tag="avares://ToolsForm/Assets/img/切换"
Tag="avares://ToolsForm/Assets/img/切换"
Width="43" />
<Button
Canvas.Left="65"
Canvas.Top="418"
Canvas.Top="358"
Click="MiniModelButton_OnClick"
Height="20"
Width="10">
@ -198,22 +204,22 @@
<!-- </Button> -->
<Button
Canvas.Left="1"
Canvas.Top="500"
Click="UploadButton_OnClick"
IsVisible="True"
x:Name="ExperimentButton">
<Image Source="../Assets/img/提交实验-默认.png" />
</Button>
<Button
Canvas.Left="1"
Canvas.Top="500"
IsVisible="False"
x:Name="SubmittedButton">
<Image Source="../Assets/img/提交实验-点击.png" />
</Button>
<!-- <Button -->
<!-- Canvas.Left="1" -->
<!-- Canvas.Top="500" -->
<!-- Click="UploadButton_OnClick" -->
<!-- IsVisible="True" -->
<!-- x:Name="ExperimentButton"> -->
<!-- <Image Source="../Assets/img/提交实验-默认.png" /> -->
<!-- </Button> -->
<!-- -->
<!-- <Button -->
<!-- Canvas.Left="1" -->
<!-- Canvas.Top="500" -->
<!-- IsVisible="False" -->
<!-- x:Name="SubmittedButton"> -->
<!-- <Image Source="../Assets/img/提交实验-点击.png" /> -->
<!-- </Button> -->
</Canvas>
</Window>

View File

@ -1,13 +1,16 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using Avalonia;
using Avalonia.Controls;
using Avalonia.Controls.Primitives;
using Avalonia.Input;
using Avalonia.Interactivity;
using Avalonia.Markup.Xaml;
using Avalonia.VisualTree;
using AvaloniaApp;
using ToolsForm.Manager;
using ToolsForm.Models;
using ToolsForm.ViewModels;
using ToolsForm.Views.TemporaryStorage;
@ -36,6 +39,7 @@ public partial class ExperimentWindow : Window
PointerPressed += ExperimentWindow_PointerReleased;
Topmost = true;
ShowInTaskbar = false;
ViewModel = new ExperimentWindowViewModel();
DataContext = ViewModel; // 设置 DataContext
@ -48,6 +52,12 @@ public partial class ExperimentWindow : Window
WindowAttachment.GetInstance().Detach();
// 控制暂存按钮状态
// var temporaryStorageButton = this.FindControl<ToggleButton>("TemporaryStorageButton5");
// if (temporaryStorageButton != null)
// {
// temporaryStorageButton.IsEnabled = WindowApi.isSubmiteBttonOpen;
// }
// 设置窗口位置为屏幕最左边,并垂直居中
var screen = Screens.Primary.WorkingArea;
@ -64,251 +74,376 @@ public partial class ExperimentWindow : Window
//
if (AppDataManager.isUpload)
{
var ExperimentButton = this.FindControl<Button>("ExperimentButton");
var SubmittedButton = this.FindControl<Button>("SubmittedButton");
ExperimentButton.IsVisible = false;
SubmittedButton.IsVisible = true;
// var ExperimentButton = this.FindControl<Button>("ExperimentButton");
// var SubmittedButton = this.FindControl<Button>("SubmittedButton");
//
// ExperimentButton.IsVisible = false;
// SubmittedButton.IsVisible = true;
}
}
Console.WriteLine("----->"+WindowApi.isSubmiteBttonOpen);
private void MainWindow_PointerPressed(object? sender, PointerPressedEventArgs e)
{
if (e.Pointer.Type == PointerType.Mouse) BeginMoveDrag(e);
}
private void ExperimentWindow_PointerReleased(object? sender, PointerPressedEventArgs e)
{
// 在释放鼠标时,检查并调整窗口位置
var screen = Screens.Primary.WorkingArea;
if (this.Position.X < screen.X)
if (!WindowApi.isSubmiteBttonOpen)
{
// 如果窗口超出了左边界,将其调整到左边界
this.Position = new PixelPoint(screen.X, this.Position.Y);
// var ExperimentButton = this.FindControl<Button>("ExperimentButton");
// var SubmittedButton = this.FindControl<Button>("SubmittedButton");
// var temporaryStorageButton = this.FindControl<ToggleButton>("TemporaryStorageButton5");
// var OverviewButton = this.FindControl<ToggleButton>("OverviewButton");
// var ReadCodeButton = this.FindControl<ToggleButton>("ReadCodeButton");
// ExperimentButton.IsVisible = false;
// SubmittedButton.IsVisible = false;
// temporaryStorageButton.IsEnabled = false;
// OverviewButton.IsEnabled = false;
// ReadCodeButton.IsEnabled = false;
}
}
private void OnPositionChanged(object? sender, PixelPointEventArgs pixelPointEventArgs)
{
AppWindowManager.UpdateWindowPosition(AppWindowManager.OverviewWindow, 0, 0, MainType.);
AppWindowManager.UpdateWindowPosition(AppWindowManager.IdeWindow, 0, 0, MainType.);
AppWindowManager.UpdateWindowPosition(AppWindowManager.ResetSceneWindow, 0, 0, MainType.);
AppWindowManager.UpdateWindowPosition(AppWindowManager.TemporaryStorageWindow, 0, 0, MainType.);
AppWindowManager.UpdateWindowPosition(AppWindowManager.TemporaryStorageMessage, 0, 300, MainType.);
AppWindowManager.UpdateWindowPosition(AppWindowManager.DownCodeWindow, 0, 0, MainType.);
AppWindowManager.UpdateWindowPosition(AppWindowManager.ReadCodeWindow, 0, 0, MainType.);
AppWindowManager.UpdateWindowPosition(AppWindowManager.UploadExperimentWindow, 0, 0, MainType.);
AppWindowManager.UpdateWindowPosition(AppWindowManager.AiWindow, 0, 0, MainType.);
}
// 打开总览窗口
public void OpenWindowToggleButton_Overview(object sender, RoutedEventArgs e)
{
ResetOtherButtons("Overview");
AppWindowManager.ToggleWindow(ref AppWindowManager.OverviewWindow, () => new OverviewWindow(), true, true, MainType.);
}
// 打开 IDE 窗口
public void AIWindowToggleButton_AI(object sender, RoutedEventArgs e)
{
ResetOtherButtons("AI");
AppWindowManager.ToggleWindow(ref AppWindowManager.AiWindow, () => new AIWindow(), true, true, MainType.);
// AppWindowManager.UploadExperimentMessageWindow.Position = new PixelPoint((int)p.X - 226, (int)(p.Y - p.Y / 2));
}
// 打开重置窗口
private void APIWindowButton_OnClick(object? sender, RoutedEventArgs e)
{
ResetOtherButtons("ResetScene");
// AppWindowManager.ToggleWindow(ref AppWindowManager.ResetSceneWindow, () => new ResetSceneWindow(), true);
try
{
var processStartInfo = new ProcessStartInfo("www.baidu.com")
{
UseShellExecute = true // 使用系统默认的浏览器
};
Process.Start(processStartInfo);
}
catch (Exception ex)
{
// 处理异常,例如输出错误信息
Console.WriteLine($"无法打开链接: {ex.Message}");
}
}
// 打开暂存窗口
private void TemporaryStorageButton5_OnClick(object? sender, RoutedEventArgs e)
{
ResetOtherButtons("TemporaryStorage");
AppWindowManager.ToggleWindow(ref AppWindowManager.TemporaryStorageWindow, () => new TemporaryStorageWindow(), true, true, MainType.);
}
// 打开重置窗口
private void RecordingWindowButton_OnClick(object? sender, RoutedEventArgs e)
{
ResetOtherButtons("Recording");
AppWindowManager.ToggleWindow(ref AppWindowManager.RecordingWindow, () => new RecordingWindow(), true, true, MainType.);
}
// 读取窗口
private void ReadCodeButton6_OnClick(object? sender, RoutedEventArgs e)
{
ResetOtherButtons("ReadCode");
AppWindowManager.ToggleWindow(ref AppWindowManager.ReadCodeWindow, () => new ReadCodeWindow(), true, true, MainType.);
}
//切换
private void StartExperimentButton_OnClick(object? sender, RoutedEventArgs e)
{
AppWindowManager.ToggleWindow(ref AppWindowManager.ExperimentWindow2, () => new ExperimentWindow2(), false, false);
// var mainWindowPosition = Position;
// AppWindowManager.ExperimentWindow2.Position = new PixelPoint(mainWindowPosition.X, mainWindowPosition.Y);
AppWindowManager.CloseWindow(ref AppWindowManager.ExperimentWindow);
WindowSwitcher.GetInstance().SwitchWindow("unity");
// AppWindowManager.ExperimentWindow.Cancal();
WebSocketManager.GetInstance().SendMessage(ToolsEventEnum.HuiFu, null);
// AppDataManager.BringExeToFront(ChangeWindowEnum.unity);
}
//开始实验
private void ExperimentButton_OnPointerEntered(object? sender, PointerEventArgs e)
{
if (!_isClicked && !_isHovering)
{
_isHovering = true; // 设置悬浮状态
UpdateButtonImages((Button)sender, ButtonState.Hover);
}
}
private void ExperimentButton_OnPointerExited(object? sender, PointerEventArgs e)
{
if (_isHovering)
{
_isHovering = false; // 重置悬浮状态
UpdateButtonImages((Button)sender, ButtonState.Default);
}
}
private void UploadButton_OnClick(object? sender, RoutedEventArgs e)
{
// 当按钮被点击时,设置点击状态,并禁用悬浮状态
AppWindowManager.ToggleWindow(ref AppWindowManager.UploadExperimentWindow, () => new UploadExperimentWindow(), true, true, MainType.);
}
private void UpdateButtonImages(Button button, ButtonState state)
{
var images = new Dictionary<string, Image>();
FindImagesInVisualTree(button, images);
if (!images.TryGetValue("DefaultImage", out var defaultImage) ||
!images.TryGetValue("HoverImage", out var hoverImage) ||
!images.TryGetValue("ClickedImage", out var clickedImage))
{
Console.WriteLine("One or more images are null!");
return;
}
// 根据状态更新图像可见性
switch (state)
{
case ButtonState.Clicked:
defaultImage.IsVisible = false;
hoverImage.IsVisible = false;
clickedImage.IsVisible = true; // 显示点击状态图像
break;
case ButtonState.Hover:
if (!_isClicked) // 只有在未点击时才允许悬浮状态
{
defaultImage.IsVisible = false;
hoverImage.IsVisible = true; // 显示悬浮状态图像
clickedImage.IsVisible = false;
}
break;
case ButtonState.Default:
default:
defaultImage.IsVisible = true; // 显示默认状态图像
hoverImage.IsVisible = false;
clickedImage.IsVisible = false;
break;
}
}
private void FindImagesInVisualTree(Visual visual, Dictionary<string, Image> images)
{
if (visual == null) return;
foreach (var child in visual.GetVisualChildren())
{
if (child is Image img)
{
images[img.Name] = img; // 将图像添加到字典中
Console.WriteLine($"找到图像控件:{img.Name}");
}
else
{
Console.WriteLine($"未找到图像控件,类型为:{child.GetType()}");
// 继续递归查找子控件
FindImagesInVisualTree(child, images);
}
}
}
// 重置其他 ToggleButton 的状态
private void ResetOtherButtons(string excludeButton)
{
if (excludeButton != "Overview") ViewModel.IsButton1Checked = false;
if (excludeButton != "AI") ViewModel.IsButton2Checked = false;
if (excludeButton != "ResetScene") ViewModel.IsButton3Checked = false;
if (excludeButton != "Recording") ViewModel.IsButton4Checked = false;
if (excludeButton != "TemporaryStorage") ViewModel.IsButton5Checked = false;
if (excludeButton != "ReadCode") ViewModel.IsButton6Checked = false;
if (excludeButton != "StartExperiment") ViewModel.IsButton7Checked = false;
}
private bool isMiniUnity = false;
private void MiniModelButton_OnClick(object? sender, RoutedEventArgs e)
{
WindowSwitcher.GetInstance().BringUnityWindowToFront();
WebSocketManager.GetInstance().SendMessage(ToolsEventEnum.Thumbnail, null);
}
public void Submit()
{
var ExperimentButton = this.FindControl<Button>("ExperimentButton");
var SubmittedButton = this.FindControl<Button>("SubmittedButton");
ExperimentButton.IsVisible = false;
SubmittedButton.IsVisible = true;
}
// public void Cancal()
// if (WindowApi.isSubmiteBttonOpen)
// {
// var ExperimentButton1 = this.FindControl<Button>("ExperimentButton");
// var SubmittedButton1 = this.FindControl<Button>("SubmittedButton");
// ExperimentButton.IsVisible = true;
// SubmittedButton.IsVisible = true;
// }
// else
// {
// var ExperimentButton = this.FindControl<Button>("ExperimentButton");
// var SubmittedButton = this.FindControl<Button>("SubmittedButton");
//
// ExperimentButton.IsVisible = true;
// ExperimentButton.IsVisible = false;
// SubmittedButton.IsVisible = false;
// }
}
private void MainWindow_PointerPressed(object? sender, PointerPressedEventArgs e)
{
if (e.Pointer.Type == PointerType.Mouse) BeginMoveDrag(e);
}
private void ExperimentWindow_PointerReleased(object? sender, PointerPressedEventArgs e)
{
// 在释放鼠标时,检查并调整窗口位置
var screen = Screens.Primary.WorkingArea;
if (this.Position.X < screen.X)
{
// 如果窗口超出了左边界,将其调整到左边界
this.Position = new PixelPoint(screen.X, this.Position.Y);
}
}
private void OnPositionChanged(object? sender, PixelPointEventArgs pixelPointEventArgs)
{
AppWindowManager.UpdateWindowPosition(AppWindowManager.OverviewWindow, 0, 0, MainType.);
AppWindowManager.UpdateWindowPosition(AppWindowManager.IdeWindow, 0, 0, MainType.);
AppWindowManager.UpdateWindowPosition(AppWindowManager.ResetSceneWindow, 0, 0, MainType.);
AppWindowManager.UpdateWindowPosition(AppWindowManager.TemporaryStorageWindow, 0, 0, MainType.);
AppWindowManager.UpdateWindowPosition(AppWindowManager.TemporaryStorageMessage, 0, 300, MainType.);
AppWindowManager.UpdateWindowPosition(AppWindowManager.DownCodeWindow, 0, 0, MainType.);
AppWindowManager.UpdateWindowPosition(AppWindowManager.ReadCodeWindow, 0, 0, MainType.);
AppWindowManager.UpdateWindowPosition(AppWindowManager.UploadExperimentWindow, 0, 0, MainType.);
// AppWindowManager.UpdateWindowPosition(AppWindowManager.AiWindow, 0, 0, MainType.子窗口);
}
// 打开总览窗口
public void OpenWindowToggleButton_Overview(object sender, RoutedEventArgs e)
{
ResetOtherButtons("Overview");
AppWindowManager.ToggleWindow(ref AppWindowManager.OverviewWindow, () => new OverviewWindow(), true, true, MainType.);
// if (aiwindow == null)
// {
// aiwindow = new AIWindow();
// aiwindow.Show();
// var screen = Screens.All.FirstOrDefault();
//
// // 获取屏幕的工作区域
// var screenBounds = screen.WorkingArea;
//
// if (aiwindow != null)
// {
// // X 坐标保持水平居中
// var centerX = (screenBounds.Width - aiwindow.Width) / 2 + screenBounds.X;
// // Y 坐标贴近可用工作区域的底部
// var bottomY = screenBounds.Y + screenBounds.Height - aiwindow.Height;
//
// aiwindow.Position = new PixelPoint((int)centerX, (int)bottomY);
// }
// }
// else
// {
// if (!aiwindow.IsVisible)
// {
// aiwindow.Show();
// var screen = Screens.All.FirstOrDefault();
//
// // 获取屏幕的工作区域
// var screenBounds = screen.WorkingArea;
//
// if (aiwindow != null)
// {
// // X 坐标保持水平居中
// var centerX = (screenBounds.Width - aiwindow.Width) / 2 + screenBounds.X;
// // Y 坐标贴近可用工作区域的底部
// var bottomY = screenBounds.Y + screenBounds.Height - aiwindow.Height;
//
// aiwindow.Position = new PixelPoint((int)centerX, (int)bottomY);
// }
// }
// }
// var screen = Screens.All.FirstOrDefault();
//
// // 获取屏幕的工作区域
// var screenBounds = screen.WorkingArea;
//
// if (AppWindowManager.OverviewWindow != null)
// {
// // 计算窗口居中的位置
// var centerX = (screenBounds.Width - AppWindowManager.OverviewWindow.Width) / 2 + screenBounds.X;
// var centerY = (screenBounds.Height - AppWindowManager.OverviewWindow.Height) / 2 + screenBounds.Y;
//
//
// // 设置窗口的屏幕中心位置
// AppWindowManager.OverviewWindow.Position = new PixelPoint((int)centerX, (int)centerY);
// // AppWindowManager.MainWindow.Hide();
//
// // AppWindowManager.UploadExperimentMessageWindow.Position = new PixelPoint((int)p.X - 226, (int)(p.Y - p.Y / 2));
// }
}
private Window aiwindow;
// 打开 IDE 窗口
public void AIWindowToggleButton_AI(object sender, RoutedEventArgs e)
{
ResetOtherButtons("AI");
if (aiwindow == null)
{
aiwindow = new AIWindow();
aiwindow.Show();
}
else
{
if (aiwindow.IsVisible)
{
aiwindow.Hide();
}
else
{
aiwindow.Show();
}
}
var screen = Screens.All.FirstOrDefault();
// 获取屏幕的工作区域
var screenBounds = screen.WorkingArea;
if (aiwindow != null)
{
// X 坐标保持水平居中
var centerX = (screenBounds.Width - aiwindow.Width) / 2 + screenBounds.X;
// Y 坐标贴近可用工作区域的底部
var bottomY = screenBounds.Y + screenBounds.Height - aiwindow.Height;
aiwindow.Position = new PixelPoint((int)centerX, (int)bottomY);
}
}
// 打开重置窗口
private void APIWindowButton_OnClick(object? sender, RoutedEventArgs e)
{
ResetOtherButtons("ResetScene");
// AppWindowManager.ToggleWindow(ref AppWindowManager.ResetSceneWindow, () => new ResetSceneWindow(), true);
try
{
var processStartInfo = new ProcessStartInfo(APIInterface.url)
{
UseShellExecute = true // 使用系统默认的浏览器
};
Process.Start(processStartInfo);
}
catch (Exception ex)
{
// 处理异常,例如输出错误信息
Console.WriteLine($"无法打开链接: {ex.Message}");
}
}
// 打开暂存窗口
private void TemporaryStorageButton5_OnClick(object? sender, RoutedEventArgs e)
{
ResetOtherButtons("TemporaryStorage");
AppWindowManager.ToggleWindow(ref AppWindowManager.TemporaryStorageWindow, () => new TemporaryStorageWindow(), true, true, MainType.);
}
// 打开重置窗口
private void RecordingWindowButton_OnClick(object? sender, RoutedEventArgs e)
{
ResetOtherButtons("Recording");
AppWindowManager.ToggleWindow(ref AppWindowManager.RecordingWindow, () => new RecordingWindow(), true, true, MainType.);
}
// 读取窗口
private void ReadCodeButton6_OnClick(object? sender, RoutedEventArgs e)
{
ResetOtherButtons("ReadCode");
AppWindowManager.ToggleWindow(ref AppWindowManager.ReadCodeWindow, () => new ReadCodeWindow(), true, true, MainType.);
}
//切换
private void StartExperimentButton_OnClick(object? sender, RoutedEventArgs e)
{
if (aiwindow != null)
{
aiwindow.Hide();
}
AppWindowManager.ToggleWindow(ref AppWindowManager.ExperimentWindow2, () => new ExperimentWindow2(), false, false);
// var mainWindowPosition = Position;
// AppWindowManager.ExperimentWindow2.Position = new PixelPoint(mainWindowPosition.X, mainWindowPosition.Y);
AppWindowManager.CloseWindow(ref AppWindowManager.ExperimentWindow);
WindowSwitcher.GetInstance().SwitchWindow("unity");
// AppWindowManager.ExperimentWindow.Cancal();
WebSocketManager.GetInstance().SendMessage(ToolsEventEnum.HuiFu, null);
// AppDataManager.BringExeToFront(ChangeWindowEnum.unity);
}
//开始实验
private void ExperimentButton_OnPointerEntered(object? sender, PointerEventArgs e)
{
if (!_isClicked && !_isHovering)
{
_isHovering = true; // 设置悬浮状态
UpdateButtonImages((Button)sender, ButtonState.Hover);
}
}
private void ExperimentButton_OnPointerExited(object? sender, PointerEventArgs e)
{
if (_isHovering)
{
_isHovering = false; // 重置悬浮状态
UpdateButtonImages((Button)sender, ButtonState.Default);
}
}
private void UploadButton_OnClick(object? sender, RoutedEventArgs e)
{
// 当按钮被点击时,设置点击状态,并禁用悬浮状态
AppWindowManager.ToggleWindow(ref AppWindowManager.UploadExperimentWindow, () => new UploadExperimentWindow(), true, true, MainType.);
}
private void UpdateButtonImages(Button button, ButtonState state)
{
var images = new Dictionary<string, Image>();
FindImagesInVisualTree(button, images);
if (!images.TryGetValue("DefaultImage", out var defaultImage) ||
!images.TryGetValue("HoverImage", out var hoverImage) ||
!images.TryGetValue("ClickedImage", out var clickedImage))
{
Console.WriteLine("One or more images are null!");
return;
}
// 根据状态更新图像可见性
switch (state)
{
case ButtonState.Clicked:
defaultImage.IsVisible = false;
hoverImage.IsVisible = false;
clickedImage.IsVisible = true; // 显示点击状态图像
break;
case ButtonState.Hover:
if (!_isClicked) // 只有在未点击时才允许悬浮状态
{
defaultImage.IsVisible = false;
hoverImage.IsVisible = true; // 显示悬浮状态图像
clickedImage.IsVisible = false;
}
break;
case ButtonState.Default:
default:
defaultImage.IsVisible = true; // 显示默认状态图像
hoverImage.IsVisible = false;
clickedImage.IsVisible = false;
break;
}
}
private void FindImagesInVisualTree(Visual visual, Dictionary<string, Image> images)
{
if (visual == null) return;
foreach (var child in visual.GetVisualChildren())
{
if (child is Image img)
{
images[img.Name] = img; // 将图像添加到字典中
Console.WriteLine($"找到图像控件:{img.Name}");
}
else
{
Console.WriteLine($"未找到图像控件,类型为:{child.GetType()}");
// 继续递归查找子控件
FindImagesInVisualTree(child, images);
}
}
}
// 重置其他 ToggleButton 的状态
private void ResetOtherButtons(string excludeButton)
{
if (excludeButton != "Overview") ViewModel.IsButton1Checked = false;
if (excludeButton != "AI") ViewModel.IsButton2Checked = false;
if (excludeButton != "ResetScene") ViewModel.IsButton3Checked = false;
if (excludeButton != "Recording") ViewModel.IsButton4Checked = false;
if (excludeButton != "TemporaryStorage") ViewModel.IsButton5Checked = false;
if (excludeButton != "ReadCode") ViewModel.IsButton6Checked = false;
if (excludeButton != "StartExperiment") ViewModel.IsButton7Checked = false;
}
private bool isMiniUnity = false;
private void MiniModelButton_OnClick(object? sender, RoutedEventArgs e)
{
WindowSwitcher.GetInstance().BringUnityWindowToFront();
WebSocketManager.GetInstance().SendMessage(ToolsEventEnum.Thumbnail, null);
}
public void Submit()
{
var ExperimentButton = this.FindControl<Button>("ExperimentButton");
var SubmittedButton = this.FindControl<Button>("SubmittedButton");
ExperimentButton.IsVisible = false;
SubmittedButton.IsVisible = true;
}
// public void Cancal()
// {
// var ExperimentButton = this.FindControl<Button>("ExperimentButton");
// var SubmittedButton = this.FindControl<Button>("SubmittedButton");
//
// ExperimentButton.IsVisible = true;
// SubmittedButton.IsVisible = false;
// }
//
}

View File

@ -22,6 +22,9 @@
<Setter Property="Width" Value="102" />
<Setter Property="Height" Value="589" />
</Style>
<Style Selector="ToggleButton:disabled">
<Setter Property="Opacity" Value="0.2" />
</Style>
<Style Selector="Button">
<!-- 固定按钮的前景色,确保按钮在不同状态下文字颜色不变 -->
<Setter Property="Background" Value="Transparent" />
@ -83,14 +86,15 @@
Source="avares://ToolsForm/Assets/img/Experiment/菜单2.png" />
<!-- 定义第一个 ToggleButton使用 Tag 属性传递图片基路径 -->
<ToggleButton
Canvas.Left="25"
Canvas.Top="45"
Click="OpenWindowToggleButton_Overview"
Height="52"
IsChecked="{Binding IsButton1Checked, Mode=TwoWay}"
Tag="avares://ToolsForm/Assets/img/总览"
Width="52" />
<!-- <ToggleButton -->
<!-- Canvas.Left="25" -->
<!-- Canvas.Top="45" -->
<!-- Click="OpenWindowToggleButton_Overview" -->
<!-- Height="52" -->
<!-- IsChecked="{Binding IsButton1Checked, Mode=TwoWay}" -->
<!-- Tag="avares://ToolsForm/Assets/img/总览" -->
<!-- Width="52" -->
<!-- x:Name=""/> -->
<ToggleButton
Canvas.Left="25"
@ -99,25 +103,28 @@
Height="52"
IsChecked="{Binding IsButton1Checked, Mode=TwoWay}"
Tag="avares://ToolsForm/Assets/img/总览"
Width="52" />
Width="52"
x:Name="OpenWindowToggleButton" />
<ToggleButton
Canvas.Left="25"
Canvas.Top="110"
Height="52"
Click="AIWindowToggleButton_AI"
Height="52"
IsChecked="{Binding IsButton2Checked, Mode=TwoWay}"
Tag="avares://ToolsForm/Assets/img/IDE设置"
Width="52" />
Width="52"
x:Name="AIWindowToggleButton" />
<ToggleButton
Canvas.Left="25"
Canvas.Top="180"
Height="52"
Click="APIWindowButton_OnClick"
Height="52"
IsChecked="{Binding IsButton3Checked, Mode=TwoWay}"
Tag="avares://ToolsForm/Assets/img/场景重置"
Width="52" />
Width="52"
x:Name="APIWindowButton" />
<ToggleButton
Canvas.Left="25"
@ -126,7 +133,8 @@
Height="52"
IsChecked="{Binding IsButton4Checked, Mode=TwoWay}"
Tag="avares://ToolsForm/Assets/img/录屏"
Width="52" />
Width="52"
x:Name="RecordingWindowButton" />
<ToggleButton
Canvas.Left="25"
@ -135,7 +143,8 @@
Height="52"
IsChecked="{Binding IsButton5Checked, Mode=TwoWay}"
Tag="avares://ToolsForm/Assets/img/暂存"
Width="52" />
Width="52"
x:Name="TemporaryStorageButton5" />
<ToggleButton
Canvas.Left="25"
@ -144,7 +153,8 @@
Height="52"
IsChecked="{Binding IsButton6Checked, Mode=TwoWay}"
Tag="avares://ToolsForm/Assets/img/读取"
Width="52" />
Width="52"
x:Name="ReadCodeButton6" />
<!-- 进度条 -->
<ProgressBar
@ -219,22 +229,22 @@
<!-- </Button> -->
<Button
Canvas.Left="1"
Canvas.Top="500"
Click="UploadButton_OnClick"
IsVisible="True"
x:Name="ExperimentButton">
<Image Source="../Assets/img/提交实验-默认.png" />
</Button>
<Button
Canvas.Left="1"
Canvas.Top="500"
IsVisible="False"
x:Name="SubmittedButton">
<Image Source="../Assets/img/提交实验-点击.png" />
</Button>
<!-- <Button -->
<!-- Canvas.Left="1" -->
<!-- Canvas.Top="500" -->
<!-- Click="UploadButton_OnClick" -->
<!-- IsVisible="True" -->
<!-- x:Name="ExperimentButton"> -->
<!-- <Image Source="../Assets/img/提交实验-默认.png" /> -->
<!-- </Button> -->
<!-- -->
<!-- <Button -->
<!-- Canvas.Left="1" -->
<!-- Canvas.Top="500" -->
<!-- IsVisible="False" -->
<!-- x:Name="SubmittedButton"> -->
<!-- <Image Source="../Assets/img/提交实验-点击.png" /> -->
<!-- </Button> -->
</Canvas>
</Window>

View File

@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Diagnostics;
using Avalonia;
using Avalonia.Controls;
using Avalonia.Controls.Primitives;
using Avalonia.Input;
using Avalonia.Interactivity;
using Avalonia.Markup.Xaml;
@ -14,8 +15,6 @@ using ToolsForm.Views.TemporaryStorage;
namespace ToolsForm.Views;
public partial class ExperimentWindow2 : Window
{
private ExperimentWindowViewModel ViewModel;
@ -30,38 +29,98 @@ public partial class ExperimentWindow2 : Window
PointerPressed += MainWindow_PointerPressed;
PointerPressed += ExperimentWindow_PointerReleased;
Topmost = true;
ShowInTaskbar = false;
ViewModel = new ExperimentWindowViewModel();
DataContext = ViewModel; // 设置 DataContext
var experimentButton = this.FindControl<Button>("ExperimentButton");
if (experimentButton != null)
{
// experimentButton.PointerEntered += ExperimentButton_OnPointerEntered;
// experimentButton.PointerExited += ExperimentButton_OnPointerExited;
}
// var experimentButton = this.FindControl<Button>("ExperimentButton");
// if (experimentButton != null)
// {
// // experimentButton.PointerEntered += ExperimentButton_OnPointerEntered;
// // experimentButton.PointerExited += ExperimentButton_OnPointerExited;
// }
WindowAttachment.GetInstance().Attach(this);
AppDataManager.MainType=MainType.2;
// var ExperimentButton = this.FindControl<Button>("ExperimentButton");
// var SubmittedButton = this.FindControl<Button>("SubmittedButton");
//
// ExperimentButton.IsVisible = true;
// SubmittedButton.IsVisible = false;
AppDataManager.MainType = MainType.2;
// 控制暂存按钮状态
// var temporaryStorageButton = this.FindControl<ToggleButton>("TemporaryStorageButton5");
// if (temporaryStorageButton != null)
// {
// temporaryStorageButton.IsEnabled = WindowApi.isSubmiteBttonOpen;
// }
if (AppDataManager.isUpload)
{
var ExperimentButton = this.FindControl<Button>("ExperimentButton");
var SubmittedButton = this.FindControl<Button>("SubmittedButton");
ExperimentButton.IsVisible = false;
SubmittedButton.IsVisible = true;
// var ExperimentButton = this.FindControl<Button>("ExperimentButton");
// var SubmittedButton = this.FindControl<Button>("SubmittedButton");
//
// ExperimentButton.IsVisible = false;
// SubmittedButton.IsVisible = true;
}
if (!WindowApi.isSubmiteBttonOpen)
{
var OpenWindowToggleButton = this.FindControl<ToggleButton>
("OpenWindowToggleButton");
var AIWindowToggleButton = this.FindControl<ToggleButton>
("AIWindowToggleButton");
var APIWindowButton = this.FindControl<ToggleButton>
("APIWindowButton");
var RecordingWindowButton = this.FindControl<ToggleButton>
("RecordingWindowButton");
var TemporaryStorageButton5 = this.FindControl<ToggleButton>
("TemporaryStorageButton5");
var ReadCodeButton6 = this.FindControl<ToggleButton>
("ReadCodeButton6");
ReadCodeButton6.IsEnabled = false;
TemporaryStorageButton5.IsEnabled = false;
RecordingWindowButton.IsEnabled = false;
APIWindowButton.IsEnabled = false;
AIWindowToggleButton.IsEnabled = false;
OpenWindowToggleButton.IsEnabled = false;
// var ExperimentButton = this.FindControl<Button>("ExperimentButton");
// var SubmittedButton = this.FindControl<Button>("SubmittedButton");
//
// ExperimentButton.IsVisible = false;
// SubmittedButton.IsVisible = false;
}
// if (WindowApi.isSubmiteBttonOpen)
// {
// var ExperimentButton = this.FindControl<Button>("ExperimentButton");
// var SubmittedButton = this.FindControl<Button>("SubmittedButton");
// ExperimentButton.IsVisible = false;
// SubmittedButton.IsVisible = true;
// }
// else
// {
// var ExperimentButton = this.FindControl<Button>("ExperimentButton");
// var SubmittedButton = this.FindControl<Button>("SubmittedButton");
// ExperimentButton.IsVisible = false;
// SubmittedButton.IsVisible = false;
//
//
//
//
//
//
// }
}
private void MainWindow_PointerPressed(object? sender, PointerPressedEventArgs e)
@ -106,8 +165,8 @@ public partial class ExperimentWindow2 : Window
{
ResetOtherButtons("IDE");
AppWindowManager.ToggleWindow(ref AppWindowManager.IdeWindow, () => new IDEWindow(), true,true, MainType.2);
AppWindowManager.ToggleWindow(ref AppWindowManager.IdeWindow, () => new IDEWindow(), true, true, MainType.2);
}
// 打开重置窗口
@ -115,7 +174,7 @@ public partial class ExperimentWindow2 : Window
{
ResetOtherButtons("ResetScene");
AppWindowManager.ToggleWindow(ref AppWindowManager.ResetSceneWindow, () => new ResetSceneWindow(), true,true, MainType.2);
AppWindowManager.ToggleWindow(ref AppWindowManager.ResetSceneWindow, () => new ResetSceneWindow(), true, true, MainType.2);
}
// 打开暂存窗口123123123
@ -137,9 +196,8 @@ public partial class ExperimentWindow2 : Window
AppWindowManager.RecordingWindow.Position = new PixelPoint(mainWindowPosition.X, mainWindowPosition.Y);
AppWindowManager.CloseWindow(ref AppWindowManager.ExperimentWindow2);
// AppWindowManager.MainWindow.Hide();
WebSocketManager.GetInstance().SendMessage(ToolsEventEnum.ScreenRecording, true);
WebSocketManager.GetInstance().SendMessage(ToolsEventEnum.ScreenRecording, true);
}
@ -153,24 +211,23 @@ public partial class ExperimentWindow2 : Window
//切换
private void StartExperimentButton_OnClick(object? sender, RoutedEventArgs e)
{
AppWindowManager.ToggleWindow(ref AppWindowManager.ExperimentWindow,() => new ExperimentWindow(), false,false);
AppWindowManager.ToggleWindow(ref AppWindowManager.ExperimentWindow, () => new ExperimentWindow(), false, false);
// var mainWindowPosition = Position;
// AppWindowManager.ExperimentWindow.Position = new PixelPoint(mainWindowPosition.X, mainWindowPosition.Y);
AppWindowManager.CloseWindow(ref AppWindowManager.ExperimentWindow2);
WindowSwitcher.GetInstance().SwitchWindow("code");
WebSocketManager.GetInstance().SendMessage(ToolsEventEnum.HuiFu, null);
AppWindowManager.CloseWindow(ref AppWindowManager.ExperimentWindow2);
WindowSwitcher.GetInstance().SwitchWindow("code");
WebSocketManager.GetInstance().SendMessage(ToolsEventEnum.HuiFu, null);
// AppWindowManager.ExperimentWindow.Cancal();
// AppDataManager.BringExeToFront(ChangeWindowEnum.code);
//WebSocketManager.GetInstance().SendMessage(ToolsEventEnum.MiniModel, null);
}
//开始实验
private void ExperimentButton_OnPointerEntered(object? sender, PointerEventArgs e)
{
@ -277,10 +334,10 @@ public partial class ExperimentWindow2 : Window
public void Submit()
{
var ExperimentButton = this.FindControl<Button>("ExperimentButton");
var SubmittedButton = this.FindControl<Button>("SubmittedButton");
ExperimentButton.IsVisible = false;
SubmittedButton.IsVisible = true;
// var ExperimentButton = this.FindControl<Button>("ExperimentButton");
// var SubmittedButton = this.FindControl<Button>("SubmittedButton");
//
// ExperimentButton.IsVisible = false;
// SubmittedButton.IsVisible = true;
}
}

View File

@ -13,6 +13,7 @@ public partial class IDEErrorWindow : Window
InitializeComponent();
Topmost = true;
ShowInTaskbar = false;
}

View File

@ -23,6 +23,7 @@ public partial class IDEWindow : Window
InitializeComponent();
Topmost = true;
ShowInTaskbar = false;
Loaded += IDEWindow_Loaded;
}

View File

@ -13,6 +13,7 @@ public partial class IDEWindow2 : Window
public IDEWindow2()
{
InitializeComponent();
ShowInTaskbar = false;
Topmost = true;
}

View File

@ -111,7 +111,7 @@
Tag="avares://ToolsForm/Assets/img/录屏"
Width="52"
x:Name="RecordingWindowButton" />
<ToggleButton
Canvas.Left="25"
Canvas.Top="310"
@ -155,8 +155,10 @@
Click="StartExperimentButton_OnClick"
Height="55"
IsChecked="{Binding IsButton7Checked, Mode=TwoWay}"
IsVisible="True"
Tag="avares://ToolsForm/Assets/img/开始实验"
Width="43" />
Width="43"
x:Name="SubmitButton" />
</Canvas>
</Window>

View File

@ -26,6 +26,7 @@ namespace ToolsForm.Views
ViewModel = new MainWindowViewModel();
DataContext = ViewModel; // 设置 DataContext
ShowInTaskbar = false;
WindowAttachment.GetInstance().StartAttach();
WindowAttachment.GetInstance().Attach(this);
@ -62,10 +63,32 @@ namespace ToolsForm.Views
// this.Position = new PixelPoint(screen.X, (int)screenCenterY);
//
//
ResetOtherButtons("Overview");
// ResetOtherButtons("Overview");
// //
AppWindowManager.ToggleWindow(ref AppWindowManager.OverviewWindow, () => new OverviewWindow(), true);
// AppWindowManager.ToggleWindow(ref AppWindowManager.OverviewWindow, () => new OverviewWindow(), true);
//
// AppWindowManager.MainWindow.Hide();
//
// AppWindowManager.ToggleWindow(ref AppWindowManager.ExperimentWindow, () => new ExperimentWindow(), false, false);
// var mainWindowPosition = Position;
// AppWindowManager.ExperimentWindow.Position = new PixelPoint(mainWindowPosition.X, mainWindowPosition.Y);
//StartExperimentButton_OnClick(this, new RoutedEventArgs());
this.FindControl<ToggleButton>("SubmitButton")?.SetValue(IsVisibleProperty, false);
//
// if (!WindowApi.isSubmiteBttonOpen)
// {
// this.FindControl<ToggleButton>("SubmitButton")?.SetValue(IsVisibleProperty, true);
// }
Console.WriteLine(WindowApi.isSubmiteBttonOpen);
}
private IntPtr GetWindowHandleOfAvaloniaWindow()
@ -200,7 +223,7 @@ namespace ToolsForm.Views
// 获取灰色按钮控件并设置为可用
this.FindControl<ToggleButton>("ResetSceneWindowButton")?.SetValue(IsEnabledProperty, true);
this.FindControl<ToggleButton>("RecordingWindowButton")?.SetValue(IsEnabledProperty, true);
this.FindControl<ToggleButton>("TemporaryStorageButton5")?.SetValue(IsEnabledProperty, true);
// this.FindControl<ToggleButton>("TemporaryStorageButton5")?.SetValue(IsEnabledProperty, true);
this.FindControl<ToggleButton>("ReadCodeButton6")?.SetValue(IsEnabledProperty, true);
}

View File

@ -60,17 +60,17 @@
Canvas.Left="0"
Canvas.Top="0"
Source="avares://ToolsForm/Assets/img/background/步骤指导.png" />
<Image
Canvas.Left="33"
Canvas.Top="33"
Source="avares://ToolsForm/Assets/img/实验名称.png" />
<TextBlock
Canvas.Left="70"
Canvas.Top="37"
FontFamily="{StaticResource SourceMedium}"
FontSize="16"
Foreground="Black"
Text="自由编程" />
<!-- <Image -->
<!-- Canvas.Left="33" -->
<!-- Canvas.Top="33" -->
<!-- Source="avares://ToolsForm/Assets/img/实验名称.png" /> -->
<!-- <TextBlock -->
<!-- Canvas.Left="70" -->
<!-- Canvas.Top="37" -->
<!-- FontFamily="{StaticResource SourceMedium}" -->
<!-- FontSize="16" -->
<!-- Foreground="Black" -->
<!-- Text="自由编程" /> -->
<Button
Background="Transparent"
Canvas.Left="243"

View File

@ -6,32 +6,81 @@ using Avalonia.Markup.Xaml;
using Avalonia.Media;
using Avalonia.Media.Imaging;
using Xceed.Words.NET;
using Avalonia.Layout;
using Avalonia.Platform;
using Avalonia.Threading;
using Newtonsoft.Json;
using ToolsForm.Models;
namespace ToolsForm.Views
{
public partial class OverviewWindow : Window
{
private StackPanel _scorePanel;
private TextBlock _scoreTextBlock;
public OverviewWindow()
{
InitializeComponent();
Topmost = true;
ShowInTaskbar = false;
// 获取 StackPanel 控件
var stackPanel = this.FindControl<StackPanel>("StackPanelWord");
var fenshu = this.FindControl<StackPanel>("fenshu");
fenshu.IsVisible = false;
_scorePanel = this.FindControl<StackPanel>("fenshu");
// 获取当前工作目录
string currentDirectory = Environment.CurrentDirectory;
// 找到分数文本框
if (_scorePanel != null && _scorePanel.Children.Count > 1)
{
_scoreTextBlock = _scorePanel.Children[1] as TextBlock;
}
// 显示任务列表
DisplayTasks(stackPanel);
// 设置WebSocket消息处理
WebSocketManager.GetInstance().OnMessageReceived += HandleWebSocketMessage;
// 初始显示分数(如果有)
UpdateScoreDisplay();
}
// 拼接路径,指定要读取的文件名
string filePath = Path.Combine(currentDirectory, "总览.docx");
// 指定 Word 文档路径
// string wordFilePath = "E:\\仓储\\仿真问题汇总表5.7.docx";
private void HandleWebSocketMessage(ToolsEventModel eventmodel)
{
Console.WriteLine("接收到的事件类型: " + eventmodel.eventType);
Console.WriteLine("事件数据: " + eventmodel.data);
// 加载 Word 文档内容
LoadWordDocument(filePath, stackPanel);
if (eventmodel.eventType == "score")
{
WindowApi.score = JsonConvert.DeserializeObject<ScoreModel>((string)eventmodel.data).Score;
// 更新UI上的分数显示
Dispatcher.UIThread.Post(UpdateScoreDisplay);
}
}
// 更新分数显示 // 更新分数显示
private void UpdateScoreDisplay()
{
try
{
// 显示分数面板
if (_scorePanel != null)
{
_scorePanel.IsVisible = true;
}
// 更新分数文本
if (_scoreTextBlock != null)
{
// 检查score是否为null防止空引用异常
_scoreTextBlock.Text = WindowApi.score != null ? WindowApi.score.ToString() : "0";
}
}
catch (Exception ex)
{
Console.WriteLine($"更新分数显示时出错: {ex.Message}");
}
}
private void InitializeComponent()
@ -39,6 +88,69 @@ namespace ToolsForm.Views
AvaloniaXamlLoader.Load(this);
}
// 新增方法:显示任务列表
private void DisplayTasks(StackPanel container)
{
// 清空容器
container.Children.Clear();
// 判断任务列表是否存在
if (WindowApi.Tasks != null && WindowApi.Tasks.Count > 0)
{
// 遍历任务列表并创建对应的TextBlock
for (int i = 0; i < WindowApi.Tasks.Count; i++)
{
// 创建水平布局面板,用于放置图标和文本
var panel = new StackPanel
{
Orientation = Orientation.Horizontal,
Margin = new Thickness(0, 5, 0, 5)
};
// 添加图片
var image = new Image
{
Source = new Bitmap(AssetLoader.Open(new Uri("avares://ToolsForm/Assets/img/Overview/tiao.png"))),
Width = 15,
Height = 74,
Margin = new Thickness(0, 0, 5, 0),
VerticalAlignment = VerticalAlignment.Top
};
// 添加文本
var textBlock = new TextBlock
{
Text = $"{WindowApi.Tasks[i]}",
FontSize = 15,
TextWrapping = TextWrapping.Wrap,
Foreground = Brushes.Black,
VerticalAlignment = VerticalAlignment.Center,
Width = 270 // 设置宽度以确保文本不会超出容器
};
// 将图片和文本添加到面板
panel.Children.Add(image);
panel.Children.Add(textBlock);
// 将面板添加到容器
container.Children.Add(panel);
}
}
else
{
// 如果没有任务,显示默认提示
var textBlock = new TextBlock
{
Text = "暂无任务信息",
FontSize = 15,
TextWrapping = TextWrapping.Wrap,
Foreground = Brushes.Gray,
Margin = new Thickness(0, 10, 0, 10)
};
container.Children.Add(textBlock);
}
}
public void LoadWordDocument(string filePath, StackPanel container)
{
// 检查文件是否存在
@ -90,5 +202,10 @@ namespace ToolsForm.Views
}
}
}
protected override void OnClosed(EventArgs e)
{ Console.WriteLine("窗口关闭");
WebSocketManager.GetInstance().OnMessageReceived -= HandleWebSocketMessage;
}
}
}

View File

@ -12,7 +12,8 @@ public partial class ReadCodeWindow : Window
public ReadCodeWindow()
{
InitializeComponent();
ShowInTaskbar = false;
Topmost = true;
}

View File

@ -22,6 +22,7 @@ public partial class RecordingWindow : Window
InitializeComponent();
Topmost = true;
ShowInTaskbar = false;
_rotationTimer = new Timer(16); // 约60帧每秒
_rotationTimer.Elapsed += OnRotationTimerElapsed;

View File

@ -16,7 +16,8 @@ public partial class ResetSceneWindow : Window
Topmost = true;
ShowInTaskbar = false;
// var button = this.FindControl<Button>("YourButtonName");
// var image = this.FindControl<Image>("YourImageName");
//

View File

@ -0,0 +1,22 @@
<Window xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="ToolsForm.Views.StartWindow"
Title="StartWindow">
<Window.Styles>
<Style Selector="Window">
<Setter Property="ExtendClientAreaToDecorationsHint" Value="False" />
<Setter Property="ExtendClientAreaChromeHints" Value="NoChrome" />
<Setter Property="ExtendClientAreaTitleBarHeightHint" Value="-1" />
<Setter Property="SystemDecorations" Value="None" />
<Setter Property="CanResize" Value="False" />
<Setter Property="Background" />
<Setter Property="Width" Value="358" />
<Setter Property="Height" Value="429" />
</Style>
</Window.Styles>
</Window>

View File

@ -0,0 +1,24 @@
using Avalonia;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
using ToolsForm.Models;
namespace ToolsForm.Views;
public partial class StartWindow : Window
{
public StartWindow()
{
InitializeComponent();
AppWindowManager.ToggleWindow(ref AppWindowManager.MainWindow, () => new MainWindow(), true);
AppWindowManager.MainWindow.Hide();
AppWindowManager.ToggleWindow(ref AppWindowManager.ExperimentWindow, () => new ExperimentWindow(), false);
ShowInTaskbar = false;
}
}

View File

@ -1,17 +1,22 @@
using System;
using System.Globalization;
using System.IO;
using System.Threading.Tasks;
using Avalonia;
using Avalonia.Controls;
using Avalonia.Interactivity;
using Avalonia.Markup.Xaml;
using Avalonia.Threading;
using Newtonsoft.Json;
using ToolsForm.Models;
namespace ToolsForm.Views;
public partial class TemporaryStorageMessage : Window
{
// 日志文件路径
private readonly string _logFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "websocket_log.txt");
public TemporaryStorageMessage()
{
InitializeComponent();
@ -20,29 +25,102 @@ public partial class TemporaryStorageMessage : Window
TemporarilySuccess.IsVisible = false;
Temporarily.IsVisible = true;
ShowInTaskbar = false;
WebSocketManager.GetInstance().OnMessageReceived += HandleWebSocketMessage;
// 记录应用启动日志
LogToFile("应用启动开始监听WebSocket消息");
}
private async void HandleWebSocketMessage(ToolsEventModel eventmodel)
{
Console.WriteLine("接收到的事件类型: " + eventmodel.eventType);
Console.WriteLine("事件数据: " + eventmodel.data);
// 根据接收到的数据判断是否显示成功或失败
if (eventmodel.eventType == "TemporaryStorage")
try
{
bool isSuccess = (bool)eventmodel.data;
await ProcessTemporaryStorageAsync(isSuccess);
Console.WriteLine("接收到的事件类型: " + eventmodel.eventType);
Console.WriteLine("事件数据: " + eventmodel.data);
// 将接收到的消息写入日志文件
string messageJson = JsonConvert.SerializeObject(eventmodel);
LogToFile($"收到WebSocket消息: {messageJson}");
// 显示接收到的消息
await ShowMessageAsync(eventmodel);
// 根据接收到的数据处理特定类型的事件
if (eventmodel.eventType == "TemporaryStorage")
{
// 检查data是否为布尔值或表示完成状态的字符串
if (eventmodel.data is bool boolValue)
{
await ProcessTemporaryStorageAsync(boolValue);
}
else if (eventmodel.data is string strValue && strValue.Contains("成功"))
{
await ProcessTemporaryStorageAsync(true);
}
else
{
// 其他情况仅显示消息,不处理为失败状态
}
}
}
catch (Exception e)
{
Console.WriteLine(e);
// 将异常信息写入日志文件
LogToFile($"处理WebSocket消息时发生异常: {e.Message}\n{e.StackTrace}");
}
}
// 显示接收到的消息
private async Task ShowMessageAsync(ToolsEventModel eventmodel)
{
await Dispatcher.UIThread.InvokeAsync(() =>
{
// 处理完成后切换画布
Temporarily.IsVisible = false;
TemporarilySuccess.IsVisible = true;
// // 获取消息文本并显示
// string messageText = eventmodel.data?.ToString() ?? "无数据";
// if (SuccessMessage != null)
// {
// SuccessMessage.Text = $"{eventmodel.eventType}: {messageText}";
// }
});
// 3秒后自动隐藏消息
await Task.Delay(3000);
await Dispatcher.UIThread.InvokeAsync(() =>
{
TemporarilySuccess.IsVisible = false;
});
}
// 写入日志文件的方法
private void LogToFile(string message)
{
try
{
// 创建日志内容,包含时间戳
string logEntry = $"[{DateTime.Now:yyyy-MM-dd HH:mm:ss.fff}] {message}{Environment.NewLine}";
// 追加写入文件
File.AppendAllText(_logFilePath, logEntry);
}
catch (Exception ex)
{
// 如果写入日志文件失败,至少在控制台打印错误
Console.WriteLine($"写入日志文件失败: {ex.Message}");
}
}
private async void Window_Loaded(object sender, RoutedEventArgs e)
{
// 在这里调用处理逻辑
await ProcessTemporaryStorageAsync(false);
// 记录窗口加载事件
LogToFile("窗口已加载");
}
private async Task ProcessTemporaryStorageAsync(bool isSuccess)
@ -69,11 +147,13 @@ public partial class TemporaryStorageMessage : Window
TemporarilySuccess.IsVisible = true; // 显示 TemporarilySuccess
string currentTime = DateTime.Now.ToString("HH:mm", CultureInfo.InvariantCulture);
SuccessMessage.Text = $"代码已暂存 {currentTime}"; // 更新 TextBlock 的文本
LogToFile($"代码暂存成功 {currentTime}");
}
else
{
TemporarilySuccess.IsVisible = true; // 显示 TemporarilySuccess
SuccessMessage.Text = "代码暂存失败"; // 更新 TextBlock 为失败消息
LogToFile("代码暂存失败");
}
});
@ -88,8 +168,10 @@ public partial class TemporaryStorageMessage : Window
// 确保在窗口关闭时取消订阅事件,避免潜在的内存泄漏
protected override void OnClosed(EventArgs e)
{
base.OnClosed(e);
{
Console.WriteLine("窗口关闭");
LogToFile("窗口已关闭");
WebSocketManager.GetInstance().OnMessageReceived -= HandleWebSocketMessage;
base.OnClosed(e);
}
}

View File

@ -12,6 +12,7 @@ public partial class TemporaryStorageWindow : Window
public TemporaryStorageWindow()
{
InitializeComponent();
ShowInTaskbar = false;
Topmost = true;
}
@ -30,7 +31,7 @@ public partial class TemporaryStorageWindow : Window
private void SuccessButton_OnClick(object? sender, RoutedEventArgs e)
{
AppWindowManager.ToggleWindow(ref AppWindowManager.TemporaryStorageMessage, () => new TemporaryStorageMessage(), false);
AppWindowManager.UpdateWindowPosition(AppWindowManager.TemporaryStorageMessage, 0, 300,AppDataManager.MainType);
AppWindowManager.UpdateWindowPosition(AppWindowManager.TemporaryStorageMessage, 0, 210,AppDataManager.MainType);
WebSocketManager.GetInstance().SendMessage(ToolsEventEnum.TemporaryStorage,null);
AppWindowManager.CloseWindow(ref AppWindowManager.TemporaryStorageWindow);

View File

@ -0,0 +1,87 @@
<Window
Title="UploadExperConfirmWindow2"
d:DesignHeight="202"
d:DesignWidth="453"
mc:Ignorable="d"
x:Class="ToolsForm.Views.UploadExperConfirmWindow2"
xmlns="https://github.com/avaloniaui"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Window.Styles>
<Style Selector="Window">
<Setter Property="ExtendClientAreaToDecorationsHint" Value="False" />
<Setter Property="ExtendClientAreaChromeHints" Value="NoChrome" />
<Setter Property="ExtendClientAreaTitleBarHeightHint" Value="-1" />
<Setter Property="SystemDecorations" Value="None" />
<Setter Property="CanResize" Value="False" />
<Setter Property="Background" />
<Setter Property="Width" Value="453" />
<Setter Property="Height" Value="202" />
</Style>
<Style Selector="Button">
<!-- 固定按钮的前景色,确保按钮在不同状态下文字颜色不变 -->
<Setter Property="Background" Value="Transparent" />
<!-- 移除背景 -->
<Setter Property="BorderBrush" Value="Transparent" />
<!-- 移除边框 -->
<Setter Property="Padding" Value="0" />
<!-- 清除默认内边距 -->
<Setter Property="HorizontalContentAlignment" Value="Center" />
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="FocusAdorner" Value="{x:Null}" />
<!-- 移除焦点边框 -->
<Setter Property="Foreground" Value="#C2C2C2" />
<!-- 默认文字颜色为白色 -->
<!-- 自定义模板 -->
<Setter Property="Template">
<ControlTemplate>
<Border
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
<ContentPresenter
Content="{TemplateBinding Content}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}" />
</Border>
</ControlTemplate>
</Setter>
</Style>
</Window.Styles>
<Canvas>
<Image Source="../Assets/img/UploadExperimentMessage/提交成功.png" />
<Image
Canvas.Left="140"
Canvas.Top="60"
Height="32"
Source="../Assets/img/UploadExperimentMessage/感叹号.png"
Width="32" />
<TextBlock
Canvas.Left="180"
Canvas.Top="60"
FontFamily="{StaticResource SourceMedium}"
FontSize="23"
Foreground="Black"
Text="是否要提交?" />
<Button
Background="Transparent"
Canvas.Bottom="40"
Canvas.Left="80"
Click="Upload">
<Image Source="../Assets/img/UploadExperimentMessage/提交按钮.png" />
</Button>
</Canvas>
</Window>

View File

@ -0,0 +1,63 @@
using Avalonia;
using Avalonia.Controls;
using Avalonia.Interactivity;
using Avalonia.Markup.Xaml;
using ToolsForm.Models;
namespace ToolsForm.Views;
public partial class UploadExperConfirmWindow2 : Window
{
public UploadExperConfirmWindow2()
{
InitializeComponent();
ShowInTaskbar = false;
}
private void Upload(object? sender, RoutedEventArgs e)
{
if (AppWindowManager.ExperimentWindow != null)
{
AppWindowManager.ExperimentWindow.Submit();
}
if (AppWindowManager.ExperimentWindow2 != null)
{
AppWindowManager.ExperimentWindow2.Submit();
}
// AppWindowManager.CloseWindow(ref AppWindowManager.UploadExperConfirmWindow2);
AppWindowManager.ToggleWindow(ref AppWindowManager.UploadExperimentMessageWindow, () => new UploadExperimentMessageWindow(), false);
// Point p = GetScreenCenter();
AppWindowManager.UploadExperimentMessageWindow.Position = new PixelPoint(AppWindowManager.UploadExperimentWindow.XX-200,AppWindowManager.UploadExperimentWindow.YY-200);
AppDataManager.isUpload = true;
AppWindowManager.CloseWindow(ref AppWindowManager.UploadExperimentWindow);
}
public Point GetScreenCenter()
{
var screens = Screens.All;
if (screens.Count > 0)
{
// 获取主屏幕的尺寸
var primaryScreen = screens[0];
double screenWidth = primaryScreen.Bounds.Width;
double screenHeight = primaryScreen.Bounds.Height;
double centerX = screenWidth / 2;
double centerY = screenHeight / 2;
return new Point(centerX, centerY);
}
// 如果没有找到屏幕,返回 (0, 0)
return new Point(0, 0);
}
}

View File

@ -11,6 +11,7 @@ public partial class UploadExperimentMessageWindow : Window
public UploadExperimentMessageWindow()
{
InitializeComponent();
ShowInTaskbar = false;
CloseWindow();
}

View File

@ -34,11 +34,16 @@ public partial class UploadExperimentWindow : Window
public ObservableCollection<FileSystemItem> FileItems { get; set; } = new ObservableCollection<FileSystemItem>();
public int XX;
public int YY;
public UploadExperimentWindow()
{
InitializeComponent();
DataContext = this; // 绑定数据上下文
ShowInTaskbar = false;
// 初始化旋转定时器
_rotationTimer1 = new DispatcherTimer
@ -281,26 +286,16 @@ public partial class UploadExperimentWindow : Window
private void OnSubmitButtonClick(object sender, RoutedEventArgs e)
{
if (AppWindowManager.ExperimentWindow != null)
{
AppWindowManager.ExperimentWindow.Submit();
}
if (AppWindowManager.ExperimentWindow2 != null)
{
AppWindowManager.ExperimentWindow2.Submit();
}
AppWindowManager.ToggleWindow(ref AppWindowManager.UploadExperimentMessageWindow, () => new UploadExperimentMessageWindow(), false);
AppWindowManager.ToggleWindow(ref AppWindowManager.UploadExperConfirmWindow2, () => new UploadExperConfirmWindow2(), false);
Point p = GetScreenCenter();
AppWindowManager.UploadExperimentMessageWindow.Position = new PixelPoint((int)p.X - 226, (int)(p.Y - p.Y / 2));
AppDataManager.isUpload = true;
XX = (int)p.X;
YY = (int)p.Y;
Console.WriteLine(p.X);
Console.WriteLine(p.Y);
AppWindowManager.CloseWindow(ref AppWindowManager.UploadExperimentWindow);
AppWindowManager.UploadExperConfirmWindow2.Position=new PixelPoint((int)p.X-200,(int)p.Y-200);
}
public Point GetScreenCenter()

Binary file not shown.

View File

@ -0,0 +1 @@
ws://127.0.0.1:8878/tools