This commit is contained in:
yzx 2024-11-12 13:32:45 +08:00
parent ce230a2c74
commit 54bef2635f
30 changed files with 515 additions and 28 deletions

View File

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RiderProjectSettingsUpdater">
<option name="vcsConfiguration" value="2" />
<option name="singleClickDiffPreview" value="1" />
<option name="vcsConfiguration" value="3" />
</component>
</project>

View File

@ -8,17 +8,10 @@
</component>
<component name="ChangeListManager">
<list default="true" id="0ae961c9-2aa8-4465-9e53-e04d62044e0d" name="更改" comment="">
<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$/ToolsForm/Views/AIWindow.axaml.cs" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/Views/AIWindow.axaml.cs" 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/MainWindow.axaml.cs" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/Views/MainWindow.axaml.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/Views/RecordingWindow.axaml" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/Views/RecordingWindow.axaml" 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/obj/Debug/net8.0/Avalonia/Resources.Inputs.cache" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/obj/Debug/net8.0/Avalonia/Resources.Inputs.cache" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/obj/Debug/net8.0/Avalonia/ToolsForm.dll" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/obj/Debug/net8.0/Avalonia/ToolsForm.dll" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/obj/Debug/net8.0/Avalonia/ToolsForm.pdb" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/obj/Debug/net8.0/Avalonia/ToolsForm.pdb" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/obj/Debug/net8.0/Avalonia/resources" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/obj/Debug/net8.0/Avalonia/resources" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/obj/Debug/net8.0/ToolsForm.AssemblyInfo.cs" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/obj/Debug/net8.0/ToolsForm.AssemblyInfo.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/obj/Debug/net8.0/ToolsForm.AssemblyInfoInputs.cache" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/obj/Debug/net8.0/ToolsForm.AssemblyInfoInputs.cache" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ToolsForm/obj/Debug/net8.0/ToolsForm.dll" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/obj/Debug/net8.0/ToolsForm.dll" afterDir="false" />
@ -27,6 +20,12 @@
<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" />
<change beforePath="$PROJECT_DIR$/ToolsForm/obj/Debug/net8.0/refint/ToolsForm.dll" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/obj/Debug/net8.0/refint/ToolsForm.dll" 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/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.restore.info" beforeDir="false" afterPath="$PROJECT_DIR$/ToolsForm/obj/rider.project.restore.info" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -56,9 +55,6 @@
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/e19a3561362418612f26d627aeb21e9f2065cf15b9986a129ec586d68de23de/Viewbox.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/../../ICT_IntelligentICTVirtualSimulation/U.P.A/Assets/Runtime/UnityMainThreadDispatcher.cs" root0="SKIP_HIGHLIGHTING" />
</component>
<component name="PerforceDirect.Settings">
<option name="CHARSET" value="无" />
</component>
<component name="ProjectColorInfo">{
&quot;customColor&quot;: &quot;&quot;,
&quot;associatedIndex&quot;: 1
@ -88,13 +84,6 @@
"发布到文件夹.Publish ToolsForm to folder (1).executor": "Run",
"发布到文件夹.Publish ToolsForm to folder (2).executor": "Run",
"发布到文件夹.Publish ToolsForm to folder.executor": "Run"
},
"keyToStringList": {
"rider.external.source.directories": [
"C:\\Users\\PC\\AppData\\Roaming\\JetBrains\\Rider2024.1\\resharper-host\\DecompilerCache",
"C:\\Users\\PC\\AppData\\Roaming\\JetBrains\\Rider2024.1\\resharper-host\\SourcesCache",
"C:\\Users\\PC\\AppData\\Local\\Symbols\\src"
]
}
}]]></component>
<component name="RunManager" selected=".NET 项目.ToolsForm">
@ -152,6 +141,7 @@
<workItem from="1730681938757" duration="3441000" />
<workItem from="1730699973923" duration="388000" />
<workItem from="1730713065050" duration="12030000" />
<workItem from="1731044720069" duration="1745000" />
</task>
<servers />
</component>

View File

@ -34,6 +34,7 @@ namespace ToolsForm.Models
public static UploadExperimentWindow? UploadExperimentWindow; //暂存
public static UploadExperimentMessageWindow? UploadExperimentMessageWindow; //暂存
public static AIWindow? AiWindow; //AI
public static ExperimentWindow2? ExperimentWindow2; //切换窗口
/// <summary>
/// 创建窗口

View File

@ -0,0 +1,217 @@
<Window
Title="ExperimentWindow2"
d:DesignHeight="589"
d:DesignWidth="102"
mc:Ignorable="d"
x:Class="ToolsForm.Views.ExperimentWindow2"
x:DataType="viewModels:ExperimentWindowViewModel"
xmlns="https://github.com/avaloniaui"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:viewModels="clr-namespace:ToolsForm.ViewModels"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Window.Styles>
<Style Selector="Window">
<Setter Property="ExtendClientAreaToDecorationsHint" Value="True" />
<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="102" />
<Setter Property="Height" Value="589" />
</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>
<Style Selector="ToggleButton">
<Setter Property="Background" Value="Transparent" />
<Setter Property="BorderBrush" Value="Transparent" />
<Setter Property="Template">
<ControlTemplate>
<Grid>
<!-- 未选中状态图片 -->
<Image Source="{Binding Tag, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource ImagePathConverter}, ConverterParameter='默认'}" />
<!-- 选中状态图片 -->
<Image IsVisible="{Binding IsChecked, RelativeSource={RelativeSource TemplatedParent}}" Source="{Binding Tag, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource ImagePathConverter}, ConverterParameter='悬浮'}" />
<!-- 鼠标悬浮状态图片 -->
<Image IsVisible="{Binding IsPointerOver, RelativeSource={RelativeSource TemplatedParent}}" Source="{Binding Tag, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource ImagePathConverter}, ConverterParameter='悬浮'}" />
</Grid>
</ControlTemplate>
</Setter>
</Style>
</Window.Styles>
<!-- 布局 -->
<Canvas>
<!-- 工具栏背景图片 -->
<Image
Canvas.Left="0"
Canvas.Top="0"
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="110"
Click="AIWindowToggleButton_AI"
Height="52"
IsChecked="{Binding IsButton2Checked, Mode=TwoWay}"
Tag="avares://ToolsForm/Assets/img/ai"
Width="52" />
<ToggleButton
Canvas.Left="25"
Canvas.Top="180"
Click="APIWindowButton_OnClick"
Height="52"
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"
IsChecked="{Binding IsButton4Checked, Mode=TwoWay}"
Tag="avares://ToolsForm/Assets/img/代码重置"
Width="52" />
<ToggleButton
Canvas.Left="25"
Canvas.Top="310"
Click="TemporaryStorageButton5_OnClick"
Height="52"
IsChecked="{Binding IsButton5Checked, Mode=TwoWay}"
Tag="avares://ToolsForm/Assets/img/暂存"
Width="52" />
<ToggleButton
Canvas.Left="25"
Canvas.Top="370"
Click="ReadCodeButton6_OnClick"
Height="52"
IsChecked="{Binding IsButton6Checked, Mode=TwoWay}"
Tag="avares://ToolsForm/Assets/img/读取"
Width="52" />
<!-- ~1~ 进度条 @1@ -->
<!-- <ProgressBar -->
<!-- Background="LightGray" -->
<!-- Canvas.Bottom="110" -->
<!-- Canvas.Left="30" -->
<!-- Foreground="Green" -->
<!-- Height="5" -->
<!-- IsVisible="True" -->
<!-- Maximum="100" -->
<!-- MinWidth="0" -->
<!-- Minimum="0" -->
<!-- Value="22" -->
<!-- Width="40" /> -->
<ToggleButton
Canvas.Left="29"
Canvas.Top="435"
Click="StartExperimentButton_OnClick"
Height="55"
IsChecked="{Binding IsButton7Checked, Mode=TwoWay}"
Tag="avares://ToolsForm/Assets/img/切换"
Width="43" />
<Button
Canvas.Left="65"
Canvas.Top="418"
Click="MiniModelButton_OnClick"
Height="20"
Width="10">
<Image
Height="20"
Source="../Assets/img/Experiment/箭头.png"
Width="10" />
</Button>
<!-- <Button -->
<!-- Canvas.Left="1" -->
<!-- Canvas.Top="500" -->
<!-- Click="UploadButton_OnClick" -->
<!-- Name="ExperimentButton"> -->
<!-- <Button.Template> -->
<!-- <ControlTemplate> -->
<!-- <Grid x:Name="TemplateRoot"> -->
<!-- <Image Source="../Assets/img/提交实验-默认.png" x:Name="DefaultImage" /> -->
<!-- <Image -->
<!-- IsVisible="False" -->
<!-- Source="../Assets/img/提交实验-悬浮.png" -->
<!-- x:Name="HoverImage" /> -->
<!-- <Image -->
<!-- IsVisible="False" -->
<!-- Source="../Assets/img/提交实验-点击.png" -->
<!-- x:Name="ClickedImage" /> -->
<!-- </Grid> -->
<!-- </ControlTemplate> -->
<!-- </Button.Template> -->
<!-- </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

@ -0,0 +1,259 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using Avalonia;
using Avalonia.Controls;
using Avalonia.Input;
using Avalonia.Interactivity;
using Avalonia.Markup.Xaml;
using Avalonia.VisualTree;
using ToolsForm.Models;
using ToolsForm.ViewModels;
using ToolsForm.Views.TemporaryStorage;
namespace ToolsForm.Views;
public partial class ExperimentWindow2 : Window
{
private ExperimentWindowViewModel ViewModel;
private bool _isHovering = false;
private bool _isClicked = false;
private ButtonState _currentState = ButtonState.Default;
public ExperimentWindow2()
{
InitializeComponent();
PositionChanged += OnPositionChanged;
PointerPressed += MainWindow_PointerPressed;
PointerPressed += ExperimentWindow_PointerReleased;
Topmost = true;
ViewModel = new ExperimentWindowViewModel();
DataContext = ViewModel; // 设置 DataContext
var experimentButton = this.FindControl<Button>("ExperimentButton");
if (experimentButton != null)
{
// experimentButton.PointerEntered += ExperimentButton_OnPointerEntered;
// experimentButton.PointerExited += ExperimentButton_OnPointerExited;
}
}
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.);
}
// 打开 IDE 窗口
public void AIWindowToggleButton_AI(object sender, RoutedEventArgs e)
{
ResetOtherButtons("AI");
AppWindowManager.ToggleWindow(ref AppWindowManager.AiWindow, () => new AIWindow(), true,true, MainType.);
}
// 打开重置窗口
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(), false, true, MainType.);
var mainWindowPosition = Position;
AppWindowManager.RecordingWindow.Position = new PixelPoint(mainWindowPosition.X, mainWindowPosition.Y);
AppWindowManager.MainWindow.Hide();
}
// 读取窗口
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.CloseWindow(ref AppWindowManager.ExperimentWindow);
AppWindowManager.MainWindow.Show();
}
//开始实验
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 void MiniModelButton_OnClick(object? sender, RoutedEventArgs e)
{
WebSocketManager.GetInstance().SendMessage(ToolsEventEnum.MiniModel, null);
}
public void Submit()
{
var ExperimentButton = this.FindControl<Button>("ExperimentButton");
var SubmittedButton = this.FindControl<Button>("SubmittedButton");
ExperimentButton.IsVisible = false;
SubmittedButton.IsVisible = true;
}
}

View File

@ -38,6 +38,12 @@ namespace ToolsForm.Views
var screen = Screens.Primary.WorkingArea;
var screenCenterY = (screen.Height - this.Height) / 2;
this.Position = new PixelPoint(screen.X, (int)screenCenterY);
ResetOtherButtons("Overview");
AppWindowManager.ToggleWindow(ref AppWindowManager.OverviewWindow, () => new OverviewWindow(), true);
}
private void InitializeComponent()

View File

@ -1 +1 @@
4a5a1716e3da100771dd999f3310d502a0248642532e880b7ce035b3ca04d50e
66e24ebeb3564455da55826f41ec3eca81a8ed51b0303556b388c3bfa342bb8d

View File

@ -13,7 +13,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("ToolsForm")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+8517865d78f70c665c94ae0dd12ce39c80cc9076")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+ce230a2c7443d6b251a222f783e7a1a4ae7637eb")]
[assembly: System.Reflection.AssemblyProductAttribute("ToolsForm")]
[assembly: System.Reflection.AssemblyTitleAttribute("ToolsForm")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]

View File

@ -1 +1 @@
cfd9a9ba7503e7e70137cdb8fa9ba0416648d563737d5c1d82e5c2ceb2a687b1
5a1e081e8ed9ce2285fbf9f5bb276b1d3fc92746b98b2a29c33f9fee2d8f54f0

View File

@ -31,6 +31,9 @@ build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
[E:/Unity Projects/GitLab/2024/ICT_ToolsForm/ToolsForm/ToolsForm/Views/ExperimentWindow.axaml]
build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
[E:/Unity Projects/GitLab/2024/ICT_ToolsForm/ToolsForm/ToolsForm/Views/ExperimentWindow2.axaml]
build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
[E:/Unity Projects/GitLab/2024/ICT_ToolsForm/ToolsForm/ToolsForm/Views/IDEErrorWindow.axaml]
build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml

View File

@ -1 +1 @@
9fb7436273386345ad7568271cc196a11cf18d5aadf391ba706c7b48ebe9b994
c6b8baf88ed6d1fe9e3c5bbd78fbd93b4d68a39f4a78547ed389c3b35f733227

View File

@ -38,6 +38,11 @@
"warnAsError": [
"NU1605"
]
},
"restoreAuditProperties": {
"enableAudit": "true",
"auditLevel": "low",
"auditMode": "direct"
}
},
"frameworks": {

View File

@ -7,7 +7,7 @@
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\PC\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.9.1</NuGetToolVersion>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.10.1</NuGetToolVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="C:\Users\PC\.nuget\packages\" />

View File

@ -1817,6 +1817,11 @@
"warnAsError": [
"NU1605"
]
},
"restoreAuditProperties": {
"enableAudit": "true",
"auditLevel": "low",
"auditMode": "direct"
}
},
"frameworks": {

View File

@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "hIUTER161GxhWTBg4AF42xwm2khws+DeO7tznBZ2aMo5KrhReGSL/YtdVTlANx5q3xnEuPEoveINR+EV7XcXrQ==",
"dgSpecHash": "Vh3EiUg7xcs=",
"success": true,
"projectFilePath": "E:\\Unity Projects\\GitLab\\2024\\ICT_ToolsForm\\ToolsForm\\ToolsForm\\ToolsForm.csproj",
"expectedPackageFiles": [

View File

@ -1 +1 @@
"restore":{"projectUniqueName":"E:\\Unity Projects\\GitLab\\2024\\ICT_ToolsForm\\ToolsForm\\ToolsForm\\ToolsForm.csproj","projectName":"ToolsForm","projectPath":"E:\\Unity Projects\\GitLab\\2024\\ICT_ToolsForm\\ToolsForm\\ToolsForm\\ToolsForm.csproj","outputPath":"E:\\Unity Projects\\GitLab\\2024\\ICT_ToolsForm\\ToolsForm\\ToolsForm\\obj\\","projectStyle":"PackageReference","fallbackFolders":["C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"],"originalTargetFrameworks":["net8.0"],"sources":{"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\":{},"https://api.nuget.org/v3/index.json":{}},"frameworks":{"net8.0":{"targetAlias":"net8.0","projectReferences":{}}},"warningProperties":{"warnAsError":["NU1605"]}}"frameworks":{"net8.0":{"targetAlias":"net8.0","dependencies":{"Avalonia":{"target":"Package","version":"[11.1.0, )"},"Avalonia.Desktop":{"target":"Package","version":"[11.1.0, )"},"Avalonia.Diagnostics":{"target":"Package","version":"[11.1.0, )"},"Avalonia.Fonts.Inter":{"target":"Package","version":"[11.1.0, )"},"Avalonia.Themes.Fluent":{"target":"Package","version":"[11.1.0, )"},"CommunityToolkit.Mvvm":{"target":"Package","version":"[8.2.1, )"},"DocX":{"target":"Package","version":"[3.0.1, )"},"Newtonsoft.Json":{"target":"Package","version":"[13.0.3, )"}},"imports":["net461","net462","net47","net471","net472","net48","net481"],"assetTargetFallback":true,"warn":true,"frameworkReferences":{"Microsoft.NETCore.App":{"privateAssets":"all"}},"runtimeIdentifierGraphPath":"C:\\Program Files\\dotnet\\sdk\\8.0.204/PortableRuntimeIdentifierGraph.json"}}
"restore":{"projectUniqueName":"E:\\Unity Projects\\GitLab\\2024\\ICT_ToolsForm\\ToolsForm\\ToolsForm\\ToolsForm.csproj","projectName":"ToolsForm","projectPath":"E:\\Unity Projects\\GitLab\\2024\\ICT_ToolsForm\\ToolsForm\\ToolsForm\\ToolsForm.csproj","outputPath":"E:\\Unity Projects\\GitLab\\2024\\ICT_ToolsForm\\ToolsForm\\ToolsForm\\obj\\","projectStyle":"PackageReference","fallbackFolders":["C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"],"originalTargetFrameworks":["net8.0"],"sources":{"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\":{},"https://api.nuget.org/v3/index.json":{}},"frameworks":{"net8.0":{"targetAlias":"net8.0","projectReferences":{}}},"warningProperties":{"warnAsError":["NU1605"]},"restoreAuditProperties":{"enableAudit":"true","auditLevel":"low","auditMode":"direct"}}"frameworks":{"net8.0":{"targetAlias":"net8.0","dependencies":{"Avalonia":{"target":"Package","version":"[11.1.0, )"},"Avalonia.Desktop":{"target":"Package","version":"[11.1.0, )"},"Avalonia.Diagnostics":{"target":"Package","version":"[11.1.0, )"},"Avalonia.Fonts.Inter":{"target":"Package","version":"[11.1.0, )"},"Avalonia.Themes.Fluent":{"target":"Package","version":"[11.1.0, )"},"CommunityToolkit.Mvvm":{"target":"Package","version":"[8.2.1, )"},"DocX":{"target":"Package","version":"[3.0.1, )"},"Newtonsoft.Json":{"target":"Package","version":"[13.0.3, )"}},"imports":["net461","net462","net47","net471","net472","net48","net481"],"assetTargetFallback":true,"warn":true,"frameworkReferences":{"Microsoft.NETCore.App":{"privateAssets":"all"}},"runtimeIdentifierGraphPath":"C:\\Program Files\\dotnet\\sdk\\8.0.204/PortableRuntimeIdentifierGraph.json"}}

View File

@ -1 +1 @@
17302702315650109
17310447302619037

View File

@ -1 +1 @@
17302702315650109
17310447302619037