#0001 初版提交
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.14.36811.4 d17.14
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XplorePlane", "XplorePlane\XplorePlane.csproj", "{07978DB9-4B88-4F42-9054-73992742BD6A}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{07978DB9-4B88-4F42-9054-73992742BD6A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{07978DB9-4B88-4F42-9054-73992742BD6A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{07978DB9-4B88-4F42-9054-73992742BD6A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{07978DB9-4B88-4F42-9054-73992742BD6A}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {DB6D69BA-49FD-432F-8069-2A8F64933CDE}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
@@ -0,0 +1,7 @@
|
||||
<Application x:Class="XplorePlane.App"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:local="clr-namespace:XplorePlane">
|
||||
<Application.Resources>
|
||||
</Application.Resources>
|
||||
</Application>
|
||||
@@ -0,0 +1,37 @@
|
||||
using System.Windows;
|
||||
using XplorePlane.Views;
|
||||
using XplorePlane.ViewModels;
|
||||
using Prism.Ioc;
|
||||
using Prism.DryIoc;
|
||||
|
||||
namespace XplorePlane
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaction logic for App.xaml
|
||||
/// </summary>
|
||||
public partial class App : Application
|
||||
{
|
||||
protected override void OnStartup(StartupEventArgs e)
|
||||
{
|
||||
base.OnStartup(e);
|
||||
|
||||
// Initialize Prism with DryIoc
|
||||
var bootstrapper = new AppBootstrapper();
|
||||
bootstrapper.Run();
|
||||
}
|
||||
}
|
||||
|
||||
public class AppBootstrapper : PrismBootstrapper
|
||||
{
|
||||
protected override Window CreateShell()
|
||||
{
|
||||
return Container.Resolve<MainWindow>();
|
||||
}
|
||||
|
||||
protected override void RegisterTypes(IContainerRegistry containerRegistry)
|
||||
{
|
||||
containerRegistry.RegisterForNavigation<MainWindow>();
|
||||
containerRegistry.Register<MainViewModel>();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,287 @@
|
||||
using System;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.ComponentModel;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Windows.Input;
|
||||
|
||||
namespace XplorePlane.Models
|
||||
{
|
||||
// ── Navigation Tree Models ────────────────────────────────────────
|
||||
public class NavGroupNode : INotifyPropertyChanged
|
||||
{
|
||||
public event PropertyChangedEventHandler PropertyChanged;
|
||||
|
||||
private string _name;
|
||||
public string Name
|
||||
{
|
||||
get => _name;
|
||||
set { _name = value; OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
private ObservableCollection<object> _children;
|
||||
public ObservableCollection<object> Children
|
||||
{
|
||||
get => _children;
|
||||
set { _children = value; OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
public NavGroupNode(string name)
|
||||
{
|
||||
Name = name;
|
||||
Children = new ObservableCollection<object>();
|
||||
}
|
||||
|
||||
protected void OnPropertyChanged([CallerMemberName] string name = null)
|
||||
=> PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
|
||||
}
|
||||
|
||||
public class NavLeafNode : INotifyPropertyChanged
|
||||
{
|
||||
public event PropertyChangedEventHandler PropertyChanged;
|
||||
|
||||
private string _name;
|
||||
public string Name
|
||||
{
|
||||
get => _name;
|
||||
set { _name = value; OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
private string _iconColor;
|
||||
public string IconColor
|
||||
{
|
||||
get => _iconColor;
|
||||
set { _iconColor = value; OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
private bool _isSelected;
|
||||
public bool IsSelected
|
||||
{
|
||||
get => _isSelected;
|
||||
set { _isSelected = value; OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
public NavLeafNode(string name, string IconColor = "#888888", bool IsSelected = false)
|
||||
{
|
||||
Name = name;
|
||||
this.IconColor = IconColor;
|
||||
this.IsSelected = IsSelected;
|
||||
}
|
||||
|
||||
protected void OnPropertyChanged([CallerMemberName] string name = null)
|
||||
=> PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
|
||||
}
|
||||
|
||||
// ── Inspection Callout Models ─────────────────────────────────────
|
||||
public class InspectionCalloutVM : INotifyPropertyChanged
|
||||
{
|
||||
public event PropertyChangedEventHandler PropertyChanged;
|
||||
|
||||
private string _featureName;
|
||||
public string FeatureName
|
||||
{
|
||||
get => _featureName;
|
||||
set { _featureName = value; OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
private double _x;
|
||||
public double X
|
||||
{
|
||||
get => _x;
|
||||
set { _x = value; OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
private double _y;
|
||||
public double Y
|
||||
{
|
||||
get => _y;
|
||||
set { _y = value; OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
private ObservableCollection<CalloutRowVM> _rows;
|
||||
public ObservableCollection<CalloutRowVM> Rows
|
||||
{
|
||||
get => _rows;
|
||||
set { _rows = value; OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
public InspectionCalloutVM(string featureName, double x, double y, CalloutRowVM[] rows)
|
||||
{
|
||||
FeatureName = featureName;
|
||||
X = x;
|
||||
Y = y;
|
||||
Rows = new ObservableCollection<CalloutRowVM>(rows);
|
||||
}
|
||||
|
||||
protected void OnPropertyChanged([CallerMemberName] string name = null)
|
||||
=> PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
|
||||
}
|
||||
|
||||
public class CalloutRowVM : INotifyPropertyChanged
|
||||
{
|
||||
public event PropertyChangedEventHandler PropertyChanged;
|
||||
|
||||
private string _label;
|
||||
public string Label
|
||||
{
|
||||
get => _label;
|
||||
set { _label = value; OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
private string _nominal;
|
||||
public string Nominal
|
||||
{
|
||||
get => _nominal;
|
||||
set { _nominal = value; OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
private string _measured;
|
||||
public string Measured
|
||||
{
|
||||
get => _measured;
|
||||
set { _measured = value; OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
private string _tolerance;
|
||||
public string Tolerance
|
||||
{
|
||||
get => _tolerance;
|
||||
set { _tolerance = value; OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
private string _deviation;
|
||||
public string Deviation
|
||||
{
|
||||
get => _deviation;
|
||||
set { _deviation = value; OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
private bool _isPass;
|
||||
public bool IsPass
|
||||
{
|
||||
get => _isPass;
|
||||
set { _isPass = value; OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
public CalloutRowVM(string label, string nominal, string measured, string tolerance, string deviation, bool isPass)
|
||||
{
|
||||
Label = label;
|
||||
Nominal = nominal;
|
||||
Measured = measured;
|
||||
Tolerance = tolerance;
|
||||
Deviation = deviation;
|
||||
IsPass = isPass;
|
||||
}
|
||||
|
||||
protected void OnPropertyChanged([CallerMemberName] string name = null)
|
||||
=> PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
|
||||
}
|
||||
|
||||
// ── Feature Properties Model ──────────────────────────────────────
|
||||
public class FeatureProperties : INotifyPropertyChanged
|
||||
{
|
||||
public event PropertyChangedEventHandler PropertyChanged;
|
||||
|
||||
private string _name;
|
||||
public string Name
|
||||
{
|
||||
get => _name;
|
||||
set { _name = value; OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
private string _datumLabel;
|
||||
public string DatumLabel
|
||||
{
|
||||
get => _datumLabel;
|
||||
set { _datumLabel = value; OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
private double _x;
|
||||
public double X
|
||||
{
|
||||
get => _x;
|
||||
set { _x = value; OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
private double _y;
|
||||
public double Y
|
||||
{
|
||||
get => _y;
|
||||
set { _y = value; OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
private double _z;
|
||||
public double Z
|
||||
{
|
||||
get => _z;
|
||||
set { _z = value; OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
private double _nrX;
|
||||
public double NrX
|
||||
{
|
||||
get => _nrX;
|
||||
set { _nrX = value; OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
private double _nrY;
|
||||
public double NrY
|
||||
{
|
||||
get => _nrY;
|
||||
set { _nrY = value; OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
private double _nrZ;
|
||||
public double NrZ
|
||||
{
|
||||
get => _nrZ;
|
||||
set { _nrZ = value; OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
private double _height;
|
||||
public double Height
|
||||
{
|
||||
get => _height;
|
||||
set { _height = value; OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
private double _radius;
|
||||
public double Radius
|
||||
{
|
||||
get => _radius;
|
||||
set { _radius = value; OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
private double _diameter;
|
||||
public double Diameter
|
||||
{
|
||||
get => _diameter;
|
||||
set { _diameter = value; OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
protected void OnPropertyChanged([CallerMemberName] string name = null)
|
||||
=> PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
|
||||
}
|
||||
|
||||
// ── RelayCommand Implementation ───────────────────────────────────
|
||||
public class RelayCommand : ICommand
|
||||
{
|
||||
private readonly Action<object> _execute;
|
||||
private readonly Predicate<object> _canExecute;
|
||||
|
||||
public event EventHandler CanExecuteChanged
|
||||
{
|
||||
add { CommandManager.RequerySuggested += value; }
|
||||
remove { CommandManager.RequerySuggested -= value; }
|
||||
}
|
||||
|
||||
public RelayCommand(Action<object> execute, Predicate<object> canExecute = null)
|
||||
{
|
||||
_execute = execute ?? throw new ArgumentNullException(nameof(execute));
|
||||
_canExecute = canExecute;
|
||||
}
|
||||
|
||||
public bool CanExecute(object parameter) => _canExecute?.Invoke(parameter) ?? true;
|
||||
|
||||
public void Execute(object parameter) => _execute(parameter);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,312 @@
|
||||
// MainViewModel.cs
|
||||
using System;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.ComponentModel;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Windows.Input;
|
||||
using XplorePlane.Models;
|
||||
|
||||
namespace XplorePlane.ViewModels
|
||||
{
|
||||
/// <summary>
|
||||
/// Root ViewModel for the MainWindow.
|
||||
/// Implements INotifyPropertyChanged for two-way data binding.
|
||||
/// </summary>
|
||||
public class MainViewModel : INotifyPropertyChanged
|
||||
{
|
||||
// ── INotifyPropertyChanged ────────────────────────────────────
|
||||
public event PropertyChangedEventHandler PropertyChanged;
|
||||
protected void OnPropertyChanged([CallerMemberName] string name = null)
|
||||
=> PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
|
||||
|
||||
// ── Constructor ───────────────────────────────────────────────
|
||||
public MainViewModel()
|
||||
{
|
||||
// Seed navigation tree
|
||||
NavigationTree = new ObservableCollection<NavGroupNode>
|
||||
{
|
||||
new NavGroupNode("参考模型")
|
||||
{
|
||||
Children = new ObservableCollection<object>
|
||||
{
|
||||
new NavGroupNode("007模型.stp")
|
||||
{
|
||||
Children = new ObservableCollection<object>
|
||||
{
|
||||
new NavLeafNode("圆柱 2 -ref", IconColor: "#00AAFF"),
|
||||
new NavLeafNode("圆柱 1 -ref", IconColor: "#00AAFF"),
|
||||
new NavLeafNode("球 1 -ref", IconColor: "#FFAA00"),
|
||||
new NavLeafNode("圆 1 -ref", IconColor: "#888888"),
|
||||
new NavLeafNode("圆 2 -ref", IconColor: "#888888"),
|
||||
new NavLeafNode("圆 3 -ref", IconColor: "#888888"),
|
||||
new NavLeafNode("圆 4 -ref", IconColor: "#888888"),
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
new NavGroupNode("目标模型")
|
||||
{
|
||||
Children = new ObservableCollection<object>
|
||||
{
|
||||
new NavGroupNode("007数据.sti")
|
||||
{
|
||||
Children = new ObservableCollection<object>
|
||||
{
|
||||
new NavLeafNode("圆柱 2 -tgt", IconColor: "#00AAFF"),
|
||||
new NavLeafNode("圆柱 1 -tgt", IconColor: "#00AAFF", IsSelected: true),
|
||||
new NavLeafNode("球 1 -tgt", IconColor: "#FFAA00"),
|
||||
new NavLeafNode("圆 1 -tgt", IconColor: "#888888"),
|
||||
new NavLeafNode("圆 2 -tgt", IconColor: "#888888"),
|
||||
new NavLeafNode("圆 3 -tgt", IconColor: "#888888"),
|
||||
new NavLeafNode("圆 4 -tgt", IconColor: "#888888"),
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
new NavGroupNode("特征分类")
|
||||
{
|
||||
Children = new ObservableCollection<object>
|
||||
{
|
||||
new NavLeafNode("默认特征分页", IconColor: "#888888")
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// Seed inspection callouts
|
||||
InspectionCallouts = new ObservableCollection<InspectionCalloutVM>
|
||||
{
|
||||
new InspectionCalloutVM("圆柱 1 -ref", 310, 270,
|
||||
new[]
|
||||
{
|
||||
new CalloutRowVM("X", "20.0001", "19.7591", "±0.1000", "-0.2410", false),
|
||||
new CalloutRowVM("Y", "79.9998", "79.2057", "±0.1000", "-0.7941", false),
|
||||
new CalloutRowVM("Z", "12.0000", "12.6008", "±0.1000", "0.6008", false),
|
||||
new CalloutRowVM("半径","5.0000", "4.9933", "±0.1000", "-0.0067", true),
|
||||
new CalloutRowVM("圆3","300", "9.9866", "±0.1000", "-0.0134", true),
|
||||
new CalloutRowVM("高度","15.0001","15.0028", "±0.1000", "0.0027", true),
|
||||
}),
|
||||
new InspectionCalloutVM("圆柱 2 -ref", 665, 270,
|
||||
new[]
|
||||
{
|
||||
new CalloutRowVM("X", "180.0000","179.8487","±0.1000","-0.1513", false),
|
||||
new CalloutRowVM("Y", "79.9999", "81.0710", "±0.1000", "1.0711", false),
|
||||
new CalloutRowVM("Z", "35.0000", "27.3757", "±0.1000","-7.6243", false),
|
||||
new CalloutRowVM("半径","5.0000", "4.9656", "±0.1000","-0.0344", true),
|
||||
new CalloutRowVM("直径","10.0000","9.9311", "±0.1000","-0.0689", true),
|
||||
new CalloutRowVM("高度","15.0001","15.0014", "±0.1000", "0.0013", true),
|
||||
}),
|
||||
new InspectionCalloutVM("球 1 -ref", 455, 415,
|
||||
new[]
|
||||
{
|
||||
new CalloutRowVM("X", "60.0000","60.0000","±0.1000", "0.0000", true),
|
||||
new CalloutRowVM("Y", "20.0000","20.0000","±0.1000","-0.0000",true),
|
||||
new CalloutRowVM("Z", "20.0000","20.0000","±0.1000", "0.0000", true),
|
||||
new CalloutRowVM("半径","12.0000","11.8959","±0.1000","-0.1041",false),
|
||||
}),
|
||||
};
|
||||
|
||||
// Selected feature (matches 圆柱 1)
|
||||
SelectedFeature = new FeatureProperties
|
||||
{
|
||||
Name = "圆柱 1",
|
||||
DatumLabel = "空",
|
||||
X = 19.7591,
|
||||
Y = 79.2067,
|
||||
Z = 12.6008,
|
||||
NrX = 0.0163,
|
||||
NrY = 0.1049,
|
||||
NrZ = 0.9943,
|
||||
Height = 15.0028,
|
||||
Radius = 4.9933,
|
||||
Diameter = 9.9866,
|
||||
};
|
||||
|
||||
// Status bar defaults
|
||||
LicenseInfo = "软件购买类型: 通用;截止日期: 2025/6/30";
|
||||
ConnectionStatus = "Polyworks未连接";
|
||||
FpsInfo = "Fps = 0";
|
||||
TempInfo = "TempS = 0 ℃";
|
||||
CurrentTime = "AM 38%";
|
||||
ZoomLevel = 38;
|
||||
}
|
||||
|
||||
// ── Navigation Tree ───────────────────────────────────────────
|
||||
public ObservableCollection<NavGroupNode> NavigationTree { get; }
|
||||
|
||||
// ── Inspection Callouts ───────────────────────────────────────
|
||||
public ObservableCollection<InspectionCalloutVM> InspectionCallouts { get; }
|
||||
|
||||
// ── Selected Feature Properties ───────────────────────────────
|
||||
private FeatureProperties _selectedFeature = new();
|
||||
public FeatureProperties SelectedFeature
|
||||
{
|
||||
get => _selectedFeature;
|
||||
set { _selectedFeature = value; OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
// ── Status Bar ────────────────────────────────────────────────
|
||||
private string _licenseInfo = string.Empty;
|
||||
public string LicenseInfo
|
||||
{
|
||||
get => _licenseInfo;
|
||||
set { _licenseInfo = value; OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
private string _connectionStatus = string.Empty;
|
||||
public string ConnectionStatus
|
||||
{
|
||||
get => _connectionStatus;
|
||||
set { _connectionStatus = value; OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
private string _fpsInfo = string.Empty;
|
||||
public string FpsInfo
|
||||
{
|
||||
get => _fpsInfo;
|
||||
set { _fpsInfo = value; OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
private string _tempInfo = string.Empty;
|
||||
public string TempInfo
|
||||
{
|
||||
get => _tempInfo;
|
||||
set { _tempInfo = value; OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
private string _currentTime = string.Empty;
|
||||
public string CurrentTime
|
||||
{
|
||||
get => _currentTime;
|
||||
set { _currentTime = value; OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
private int _zoomLevel = 100;
|
||||
public int ZoomLevel
|
||||
{
|
||||
get => _zoomLevel;
|
||||
set { _zoomLevel = value; OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
// ── Geometry Selection Flags ──────────────────────────────────
|
||||
private bool _isPointSelected;
|
||||
public bool IsPointSelected
|
||||
{
|
||||
get => _isPointSelected;
|
||||
set { _isPointSelected = value; OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
private bool _isPlaneSelected;
|
||||
public bool IsPlaneSelected
|
||||
{
|
||||
get => _isPlaneSelected;
|
||||
set { _isPlaneSelected = value; OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
private bool _isCylinderSelected;
|
||||
public bool IsCylinderSelected
|
||||
{
|
||||
get => _isCylinderSelected;
|
||||
set { _isCylinderSelected = value; OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
private bool _isSurfacePointSelected;
|
||||
public bool IsSurfacePointSelected
|
||||
{
|
||||
get => _isSurfacePointSelected;
|
||||
set { _isSurfacePointSelected = value; OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
private bool _isCircleSelected;
|
||||
public bool IsCircleSelected
|
||||
{
|
||||
get => _isCircleSelected;
|
||||
set { _isCircleSelected = value; OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
private bool _isSphereSelected;
|
||||
public bool IsSphereSelected
|
||||
{
|
||||
get => _isSphereSelected;
|
||||
set { _isSphereSelected = value; OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
private bool _isLineSelected;
|
||||
public bool IsLineSelected
|
||||
{
|
||||
get => _isLineSelected;
|
||||
set { _isLineSelected = value; OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
private bool _isSlotSelected;
|
||||
public bool IsSlotSelected
|
||||
{
|
||||
get => _isSlotSelected;
|
||||
set { _isSlotSelected = value; OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
private bool _isFaceSelected;
|
||||
public bool IsFaceSelected
|
||||
{
|
||||
get => _isFaceSelected;
|
||||
set { _isFaceSelected = value; OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
// ── Commands ──────────────────────────────────────────────────
|
||||
public ICommand OpenFileCommand => new RelayCommand(_ => OpenFile());
|
||||
public ICommand ExportCommand => new RelayCommand(_ => Export());
|
||||
public ICommand ClearCommand => new RelayCommand(_ => Clear());
|
||||
public ICommand OpenTemplateCommand => new RelayCommand(_ => OpenTemplate());
|
||||
public ICommand SaveTemplateCommand => new RelayCommand(_ => SaveTemplate());
|
||||
public ICommand TemplateInspectCommand => new RelayCommand(_ => TemplateInspect());
|
||||
public ICommand GdtInspectCommand => new RelayCommand(_ => GdtInspect());
|
||||
public ICommand AutoAlignCommand => new RelayCommand(_ => AutoAlign());
|
||||
public ICommand NPointAlignCommand => new RelayCommand(_ => NPointAlign());
|
||||
public ICommand FeatureAlignCommand => new RelayCommand(_ => FeatureAlign());
|
||||
public ICommand RpsAlignCommand => new RelayCommand(_ => RpsAlign());
|
||||
public ICommand AxisAlignCommand => new RelayCommand(_ => AxisAlign());
|
||||
public ICommand ImportMatrixCommand => new RelayCommand(_ => ImportMatrix());
|
||||
public ICommand CalcColorDiffCommand => new RelayCommand(_ => CalcColorDiff());
|
||||
public ICommand AnnotateCommand => new RelayCommand(_ => Annotate());
|
||||
public ICommand ReportInfoCommand => new RelayCommand(_ => ReportInfo());
|
||||
public ICommand SavePdfCommand => new RelayCommand(_ => SavePdf());
|
||||
public ICommand SaveCsvCommand => new RelayCommand(_ => SaveCsv());
|
||||
public ICommand NavigateHomeCommand => new RelayCommand(_ => NavigateHome());
|
||||
public ICommand NavigateInspectCommand => new RelayCommand(_ => NavigateInspect());
|
||||
public ICommand ToggleFullScreenCommand=> new RelayCommand(_ => ToggleFullScreen());
|
||||
public ICommand OpenOptionsCommand => new RelayCommand(_ => OpenOptions());
|
||||
public ICommand CollapseNavCommand => new RelayCommand(_ => CollapseNav());
|
||||
public ICommand EditPropertiesCommand => new RelayCommand(_ => EditProperties());
|
||||
public ICommand ClosePropertiesCommand => new RelayCommand(_ => CloseProperties());
|
||||
public ICommand ClearAnnotationsCommand=> new RelayCommand(_ => ClearAnnotations());
|
||||
public ICommand DeleteSelectionCommand => new RelayCommand(_ => DeleteSelection());
|
||||
|
||||
// ── Command Handlers (stub — wire up your services here) ──────
|
||||
private void OpenFile() { /* Open file dialog */ }
|
||||
private void Export() { /* Export dialog */ }
|
||||
private void Clear() { /* Clear scene */ }
|
||||
private void OpenTemplate() { /* Load template project */ }
|
||||
private void SaveTemplate() { /* Save template project */ }
|
||||
private void TemplateInspect() { /* Run template inspection */ }
|
||||
private void GdtInspect() { /* GD&T inspection dialog */ }
|
||||
private void AutoAlign() { /* Auto alignment */ }
|
||||
private void NPointAlign() { /* N-point alignment dialog */ }
|
||||
private void FeatureAlign() { /* Feature alignment */ }
|
||||
private void RpsAlign() { /* RPS alignment */ }
|
||||
private void AxisAlign() { /* Axis alignment */ }
|
||||
private void ImportMatrix() { /* Import alignment matrix */ }
|
||||
private void CalcColorDiff() { /* Calculate color difference */ }
|
||||
private void Annotate() { /* Add annotation */ }
|
||||
private void ReportInfo() { /* Report info dialog */ }
|
||||
private void SavePdf() { /* Save PDF report */ }
|
||||
private void SaveCsv() { /* Save CSV report */ }
|
||||
private void NavigateHome() { /* Switch to Home tab */ }
|
||||
private void NavigateInspect() { /* Switch to Inspect tab */ }
|
||||
private void ToggleFullScreen(){ /* Toggle fullscreen */ }
|
||||
private void OpenOptions() { /* Open options dialog */ }
|
||||
private void CollapseNav() { /* Collapse navigation panel */ }
|
||||
private void EditProperties() { /* Edit selected feature props */ }
|
||||
private void CloseProperties() { /* Close properties panel */ }
|
||||
private void ClearAnnotations(){ /* Clear all viewport annotations */ }
|
||||
private void DeleteSelection() { /* Delete selected item */ }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
using Prism.Mvvm;
|
||||
|
||||
namespace XplorePlane.ViewModels
|
||||
{
|
||||
public class MainWindowViewModel : BindableBase
|
||||
{
|
||||
private string _title = "Prism Application";
|
||||
public string Title
|
||||
{
|
||||
get { return _title; }
|
||||
set { SetProperty(ref _title, value); }
|
||||
}
|
||||
|
||||
public MainWindowViewModel()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,151 @@
|
||||
<Window x:Class="XplorePlane.Views.MainWindow"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:vm="clr-namespace:XplorePlane.ViewModels"
|
||||
mc:Ignorable="d"
|
||||
Title="检测系统"
|
||||
Height="768" Width="1136"
|
||||
Background="#F5F5F5"
|
||||
WindowStartupLocation="CenterScreen">
|
||||
|
||||
<Window.DataContext>
|
||||
<vm:MainViewModel />
|
||||
</Window.DataContext>
|
||||
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="26"/>
|
||||
<RowDefinition Height="82"/>
|
||||
<RowDefinition Height="*"/>
|
||||
<RowDefinition Height="24"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<!-- Row 0: Tab Menu Bar -->
|
||||
<Grid Grid.Row="0" Background="#E8E8E8">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<StackPanel Grid.Column="0" Orientation="Horizontal">
|
||||
<Button Content="主页" Command="{Binding NavigateHomeCommand}" Width="60" Background="#FFFFFF" Foreground="#333333" BorderBrush="#CCCCCC"/>
|
||||
<Button Content="检测" Command="{Binding NavigateInspectCommand}" Width="60" Background="#0078D4" Foreground="White" BorderBrush="#0078D4"/>
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Grid.Column="1" Orientation="Horizontal" VerticalAlignment="Center" Margin="0,0,6,0">
|
||||
<Button Content="全屏" Command="{Binding ToggleFullScreenCommand}" Width="46" Background="Transparent" Foreground="#333333" BorderBrush="#CCCCCC"/>
|
||||
<Button Content="选项" Command="{Binding OpenOptionsCommand}" Width="46" Background="Transparent" Foreground="#333333" BorderBrush="#CCCCCC"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
|
||||
<!-- Row 1: Toolbar -->
|
||||
<Border Grid.Row="1" Background="#FAFAFA" BorderBrush="#DDDDDD" BorderThickness="0,0,0,1">
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center" Margin="4,2">
|
||||
<Button Content="打开" Command="{Binding OpenFileCommand}" Width="44" Background="#FFFFFF" Foreground="#333333" BorderBrush="#CCCCCC" Margin="2"/>
|
||||
<Button Content="导出" Command="{Binding ExportCommand}" Width="44" Background="#FFFFFF" Foreground="#333333" BorderBrush="#CCCCCC" Margin="2"/>
|
||||
<Button Content="清空" Command="{Binding ClearCommand}" Width="44" Background="#FFFFFF" Foreground="#333333" BorderBrush="#CCCCCC" Margin="2"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
<!-- Row 2: Main Content -->
|
||||
<Grid Grid.Row="2">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="180" MinWidth="120"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="180" MinWidth="140"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<!-- Navigation Panel -->
|
||||
<Grid Grid.Column="0" Background="#FFFFFF">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="26"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Border Grid.Row="0" Background="#F0F0F0" BorderBrush="#DDDDDD" BorderThickness="0,0,0,1">
|
||||
<TextBlock Text="导航" Foreground="#333333" VerticalAlignment="Center" Margin="8,0" FontWeight="SemiBold"/>
|
||||
</Border>
|
||||
|
||||
<TreeView Grid.Row="1" ItemsSource="{Binding NavigationTree}" Background="Transparent" BorderThickness="0" Foreground="#333333"/>
|
||||
</Grid>
|
||||
|
||||
<!-- 3D Viewport -->
|
||||
<Grid Grid.Column="1" Background="#E8E8E8">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="*"/>
|
||||
<RowDefinition Height="90"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Border Grid.Row="0" Background="#FFFFFF" BorderBrush="#DDDDDD" BorderThickness="1">
|
||||
<TextBlock Text="3D Viewport" Foreground="#666666" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="16"/>
|
||||
</Border>
|
||||
|
||||
<Border Grid.Row="1" Background="#F5F5F5" BorderBrush="#DDDDDD" BorderThickness="0,1,0,0">
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center" Margin="16,0">
|
||||
<TextBlock Text="旋转" Foreground="#666666"/>
|
||||
<TextBlock Text="平移" Foreground="#666666" Margin="16,0,0,0"/>
|
||||
<TextBlock Text="缩放" Foreground="#666666" Margin="16,0,0,0"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</Grid>
|
||||
|
||||
<!-- Properties Panel -->
|
||||
<Grid Grid.Column="2" Background="#FFFFFF">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="26"/>
|
||||
<RowDefinition Height="*"/>
|
||||
<RowDefinition Height="28"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Border Grid.Row="0" Background="#F0F0F0" BorderBrush="#DDDDDD" BorderThickness="0,0,0,1">
|
||||
<TextBlock Text="属性" Foreground="#333333" VerticalAlignment="Center" Margin="8,0" FontWeight="SemiBold"/>
|
||||
</Border>
|
||||
|
||||
<ScrollViewer Grid.Row="1" VerticalScrollBarVisibility="Auto">
|
||||
<StackPanel Margin="4">
|
||||
<Grid Margin="0,1">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0" Text="名称" Foreground="#666666"/>
|
||||
<TextBlock Grid.Column="1" Text="{Binding SelectedFeature.Name}" Foreground="#333333"/>
|
||||
</Grid>
|
||||
<Grid Margin="0,1">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Column="0" Text="X" Foreground="#666666"/>
|
||||
<TextBlock Grid.Column="1" Text="{Binding SelectedFeature.X, StringFormat=F4}" Foreground="#333333"/>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</ScrollViewer>
|
||||
|
||||
<StackPanel Grid.Row="2" Orientation="Horizontal" HorizontalAlignment="Right" Margin="4,2">
|
||||
<Button Content="修改属性" Command="{Binding EditPropertiesCommand}" Margin="0,0,4,0" Background="#0078D4" Foreground="White" BorderBrush="#0078D4"/>
|
||||
<Button Content="关闭" Command="{Binding ClosePropertiesCommand}" Background="#FFFFFF" Foreground="#333333" BorderBrush="#CCCCCC"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Grid>
|
||||
|
||||
<!-- Row 3: Status Bar -->
|
||||
<Border Grid.Row="3" Background="#F0F0F0" BorderBrush="#DDDDDD" BorderThickness="0,1,0,0">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<TextBlock Grid.Column="0" Text="{Binding LicenseInfo}" Foreground="#666666" Margin="8,0" VerticalAlignment="Center"/>
|
||||
<TextBlock Grid.Column="1" Text="{Binding ConnectionStatus}" Foreground="#666666" Margin="8,0" VerticalAlignment="Center"/>
|
||||
<Border Grid.Column="2" Background="#0078D4" CornerRadius="2" Margin="4,3">
|
||||
<TextBlock Text="{Binding ZoomLevel, StringFormat={}{0}%}" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center" Padding="4,0"/>
|
||||
</Border>
|
||||
</Grid>
|
||||
</Border>
|
||||
</Grid>
|
||||
</Window>
|
||||
@@ -0,0 +1,15 @@
|
||||
using System.Windows;
|
||||
|
||||
namespace XplorePlane.Views
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaction logic for MainWindow.xaml
|
||||
/// </summary>
|
||||
public partial class MainWindow : Window
|
||||
{
|
||||
public MainWindow()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<TargetFramework>net6.0-windows</TargetFramework>
|
||||
<UseWPF>true</UseWPF>
|
||||
<RootNamespace>XplorePlane</RootNamespace>
|
||||
<AssemblyName>XplorePlane</AssemblyName>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Prism.DryIoc" Version="8.1.97" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup />
|
||||
</Project>
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,109 @@
|
||||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v6.0",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v6.0": {
|
||||
"XplorePlane/1.0.0": {
|
||||
"dependencies": {
|
||||
"Prism.DryIoc": "8.1.97"
|
||||
},
|
||||
"runtime": {
|
||||
"XplorePlane.dll": {}
|
||||
}
|
||||
},
|
||||
"DryIoc.dll/4.7.7": {
|
||||
"runtime": {
|
||||
"lib/netstandard2.0/DryIoc.dll": {
|
||||
"assemblyVersion": "4.7.7.0",
|
||||
"fileVersion": "4.7.7.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Xaml.Behaviors.Wpf/1.1.31": {
|
||||
"runtime": {
|
||||
"lib/net5.0-windows7.0/Microsoft.Xaml.Behaviors.dll": {
|
||||
"assemblyVersion": "1.1.0.0",
|
||||
"fileVersion": "1.1.31.10800"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Prism.Core/8.1.97": {
|
||||
"runtime": {
|
||||
"lib/net5.0/Prism.dll": {
|
||||
"assemblyVersion": "8.1.97.5141",
|
||||
"fileVersion": "8.1.97.5141"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Prism.DryIoc/8.1.97": {
|
||||
"dependencies": {
|
||||
"DryIoc.dll": "4.7.7",
|
||||
"Prism.Wpf": "8.1.97"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net5.0-windows7.0/Prism.DryIoc.Wpf.dll": {
|
||||
"assemblyVersion": "8.1.97.5141",
|
||||
"fileVersion": "8.1.97.5141"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Prism.Wpf/8.1.97": {
|
||||
"dependencies": {
|
||||
"Microsoft.Xaml.Behaviors.Wpf": "1.1.31",
|
||||
"Prism.Core": "8.1.97"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net5.0-windows7.0/Prism.Wpf.dll": {
|
||||
"assemblyVersion": "8.1.97.5141",
|
||||
"fileVersion": "8.1.97.5141"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"XplorePlane/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"DryIoc.dll/4.7.7": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-GC2JdW0mN3wTcbcteP7LWwfU1eao0If/vMozCXSbcNZbHQD7kBjcKFO82g0OLssr7gGPWS4+vWpNZ1oOy54JKw==",
|
||||
"path": "dryioc.dll/4.7.7",
|
||||
"hashPath": "dryioc.dll.4.7.7.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Xaml.Behaviors.Wpf/1.1.31": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-LZpuf82ACZWldmfMuv3CTUMDh3o0xo0uHUaybR5HgqVLDBJJ9RZLykplQ/bTJd0/VDt3EhD4iDgUgbdIUAM+Kg==",
|
||||
"path": "microsoft.xaml.behaviors.wpf/1.1.31",
|
||||
"hashPath": "microsoft.xaml.behaviors.wpf.1.1.31.nupkg.sha512"
|
||||
},
|
||||
"Prism.Core/8.1.97": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-EP5zrvWddw3eSq25Y7hHnDYdmLZEC2Z/gMrvmHzUuLbitmA1UaS7wQUlSwNr9Km8lzJNCvytFnaGBEFukHgoHg==",
|
||||
"path": "prism.core/8.1.97",
|
||||
"hashPath": "prism.core.8.1.97.nupkg.sha512"
|
||||
},
|
||||
"Prism.DryIoc/8.1.97": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-8hdeAoZ+x1eBNIg+nMzox01uGUR4HnbCCR1iClNKwDfCWQ4ZtjEjsyeTXHcXKtG45xXqiERmJVew5tJmCdVPWw==",
|
||||
"path": "prism.dryioc/8.1.97",
|
||||
"hashPath": "prism.dryioc.8.1.97.nupkg.sha512"
|
||||
},
|
||||
"Prism.Wpf/8.1.97": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-ZEa6S1mK35h8/blyb0uR0ed3wkpHtPdhB4eniXINJnTiJMWlGl/As6SVlFFdOPD+qsEdWNYV3xgyQD/ue5cvBA==",
|
||||
"path": "prism.wpf/8.1.97",
|
||||
"hashPath": "prism.wpf.8.1.97.nupkg.sha512"
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"runtimeOptions": {
|
||||
"tfm": "net6.0",
|
||||
"frameworks": [
|
||||
{
|
||||
"name": "Microsoft.NETCore.App",
|
||||
"version": "6.0.0"
|
||||
},
|
||||
{
|
||||
"name": "Microsoft.WindowsDesktop.App",
|
||||
"version": "6.0.0"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
// <autogenerated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v6.0", FrameworkDisplayName = ".NET 6.0")]
|
||||
@@ -0,0 +1,55 @@
|
||||
#pragma checksum "..\..\..\App.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "29E506DCACBE5B68283BEFEAB2660A0DF4EC4E29"
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Windows;
|
||||
using System.Windows.Automation;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Controls.Primitives;
|
||||
using System.Windows.Controls.Ribbon;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Ink;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Markup;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Animation;
|
||||
using System.Windows.Media.Effects;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Media.Media3D;
|
||||
using System.Windows.Media.TextFormatting;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
using System.Windows.Shell;
|
||||
using XplorePlane;
|
||||
|
||||
|
||||
namespace XplorePlane {
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// App
|
||||
/// </summary>
|
||||
public partial class App : System.Windows.Application {
|
||||
|
||||
/// <summary>
|
||||
/// Application Entry Point.
|
||||
/// </summary>
|
||||
[System.STAThreadAttribute()]
|
||||
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "10.0.1.0")]
|
||||
public static void Main() {
|
||||
XplorePlane.App app = new XplorePlane.App();
|
||||
app.Run();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,75 @@
|
||||
#pragma checksum "..\..\..\..\Views\MainWindow.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "CC4673611DE44ABFBA8B04D808735390B2CF0671"
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Windows;
|
||||
using System.Windows.Automation;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Controls.Primitives;
|
||||
using System.Windows.Controls.Ribbon;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Ink;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Markup;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Animation;
|
||||
using System.Windows.Media.Effects;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Media.Media3D;
|
||||
using System.Windows.Media.TextFormatting;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
using System.Windows.Shell;
|
||||
using XplorePlane.ViewModels;
|
||||
|
||||
|
||||
namespace XplorePlane.Views {
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// MainWindow
|
||||
/// </summary>
|
||||
public partial class MainWindow : System.Windows.Window, System.Windows.Markup.IComponentConnector {
|
||||
|
||||
private bool _contentLoaded;
|
||||
|
||||
/// <summary>
|
||||
/// InitializeComponent
|
||||
/// </summary>
|
||||
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "10.0.1.0")]
|
||||
public void InitializeComponent() {
|
||||
if (_contentLoaded) {
|
||||
return;
|
||||
}
|
||||
_contentLoaded = true;
|
||||
System.Uri resourceLocater = new System.Uri("/XplorePlane;component/views/mainwindow.xaml", System.UriKind.Relative);
|
||||
|
||||
#line 1 "..\..\..\..\Views\MainWindow.xaml"
|
||||
System.Windows.Application.LoadComponent(this, resourceLocater);
|
||||
|
||||
#line default
|
||||
#line hidden
|
||||
}
|
||||
|
||||
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "10.0.1.0")]
|
||||
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
|
||||
void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
|
||||
this._contentLoaded = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
using System;
|
||||
using System.Reflection;
|
||||
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("XplorePlane")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("XplorePlane")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("XplorePlane")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")]
|
||||
[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")]
|
||||
|
||||
// 由 MSBuild WriteCodeFragment 类生成。
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
ba1aa2b628af9362fa0d453fd8ab75213c6a6e2b2a8f3b40eb811522fb2e83ef
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
is_global = true
|
||||
build_property.TargetFramework = net6.0-windows
|
||||
build_property.TargetFrameworkIdentifier = .NETCoreApp
|
||||
build_property.TargetFrameworkVersion = v6.0
|
||||
build_property.TargetPlatformMinVersion = 7.0
|
||||
build_property.UsingMicrosoftNETSdkWeb =
|
||||
build_property.ProjectTypeGuids =
|
||||
build_property.InvariantGlobalization =
|
||||
build_property.PlatformNeutralAssembly =
|
||||
build_property.EnforceExtendedAnalyzerRules =
|
||||
build_property._SupportedPlatformList = Linux,macOS,Windows
|
||||
build_property.RootNamespace = XplorePlane
|
||||
build_property.ProjectDir = C:\Users\zhengxuan.zhang\source\repos\BlankApp1\XplorePlane\
|
||||
build_property.EnableComHosting =
|
||||
build_property.EnableGeneratedComInterfaceComImportInterop =
|
||||
build_property.CsWinRTUseWindowsUIXamlProjections = false
|
||||
build_property.EffectiveAnalysisLevelStyle = 6.0
|
||||
build_property.EnableCodeStyleSeverity =
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1 @@
|
||||
01f95940c0fa45050b1d6bb5a9bf1bb0a8865ed99950cc8529b1ca6298179f57
|
||||
@@ -0,0 +1,28 @@
|
||||
C:\Users\zhengxuan.zhang\source\repos\BlankApp1\XplorePlane\bin\Debug\net6.0-windows\XplorePlane.exe
|
||||
C:\Users\zhengxuan.zhang\source\repos\BlankApp1\XplorePlane\bin\Debug\net6.0-windows\XplorePlane.deps.json
|
||||
C:\Users\zhengxuan.zhang\source\repos\BlankApp1\XplorePlane\bin\Debug\net6.0-windows\XplorePlane.runtimeconfig.json
|
||||
C:\Users\zhengxuan.zhang\source\repos\BlankApp1\XplorePlane\bin\Debug\net6.0-windows\XplorePlane.dll
|
||||
C:\Users\zhengxuan.zhang\source\repos\BlankApp1\XplorePlane\bin\Debug\net6.0-windows\XplorePlane.pdb
|
||||
C:\Users\zhengxuan.zhang\source\repos\BlankApp1\XplorePlane\bin\Debug\net6.0-windows\DryIoc.dll
|
||||
C:\Users\zhengxuan.zhang\source\repos\BlankApp1\XplorePlane\bin\Debug\net6.0-windows\Microsoft.Xaml.Behaviors.dll
|
||||
C:\Users\zhengxuan.zhang\source\repos\BlankApp1\XplorePlane\bin\Debug\net6.0-windows\Prism.dll
|
||||
C:\Users\zhengxuan.zhang\source\repos\BlankApp1\XplorePlane\bin\Debug\net6.0-windows\Prism.DryIoc.Wpf.dll
|
||||
C:\Users\zhengxuan.zhang\source\repos\BlankApp1\XplorePlane\bin\Debug\net6.0-windows\Prism.Wpf.dll
|
||||
C:\Users\zhengxuan.zhang\source\repos\BlankApp1\XplorePlane\obj\Debug\net6.0-windows\XplorePlane.csproj.AssemblyReference.cache
|
||||
C:\Users\zhengxuan.zhang\source\repos\BlankApp1\XplorePlane\obj\Debug\net6.0-windows\Views\MainWindow.g.cs
|
||||
C:\Users\zhengxuan.zhang\source\repos\BlankApp1\XplorePlane\obj\Debug\net6.0-windows\App.g.cs
|
||||
C:\Users\zhengxuan.zhang\source\repos\BlankApp1\XplorePlane\obj\Debug\net6.0-windows\GeneratedInternalTypeHelper.g.cs
|
||||
C:\Users\zhengxuan.zhang\source\repos\BlankApp1\XplorePlane\obj\Debug\net6.0-windows\XplorePlane_MarkupCompile.cache
|
||||
C:\Users\zhengxuan.zhang\source\repos\BlankApp1\XplorePlane\obj\Debug\net6.0-windows\XplorePlane_MarkupCompile.lref
|
||||
C:\Users\zhengxuan.zhang\source\repos\BlankApp1\XplorePlane\obj\Debug\net6.0-windows\Views\MainWindow.baml
|
||||
C:\Users\zhengxuan.zhang\source\repos\BlankApp1\XplorePlane\obj\Debug\net6.0-windows\XplorePlane.g.resources
|
||||
C:\Users\zhengxuan.zhang\source\repos\BlankApp1\XplorePlane\obj\Debug\net6.0-windows\XplorePlane.GeneratedMSBuildEditorConfig.editorconfig
|
||||
C:\Users\zhengxuan.zhang\source\repos\BlankApp1\XplorePlane\obj\Debug\net6.0-windows\XplorePlane.AssemblyInfoInputs.cache
|
||||
C:\Users\zhengxuan.zhang\source\repos\BlankApp1\XplorePlane\obj\Debug\net6.0-windows\XplorePlane.AssemblyInfo.cs
|
||||
C:\Users\zhengxuan.zhang\source\repos\BlankApp1\XplorePlane\obj\Debug\net6.0-windows\XplorePlane.csproj.CoreCompileInputs.cache
|
||||
C:\Users\zhengxuan.zhang\source\repos\BlankApp1\XplorePlane\obj\Debug\net6.0-windows\XplorePl.321B731D.Up2Date
|
||||
C:\Users\zhengxuan.zhang\source\repos\BlankApp1\XplorePlane\obj\Debug\net6.0-windows\XplorePlane.dll
|
||||
C:\Users\zhengxuan.zhang\source\repos\BlankApp1\XplorePlane\obj\Debug\net6.0-windows\refint\XplorePlane.dll
|
||||
C:\Users\zhengxuan.zhang\source\repos\BlankApp1\XplorePlane\obj\Debug\net6.0-windows\XplorePlane.pdb
|
||||
C:\Users\zhengxuan.zhang\source\repos\BlankApp1\XplorePlane\obj\Debug\net6.0-windows\XplorePlane.genruntimeconfig.cache
|
||||
C:\Users\zhengxuan.zhang\source\repos\BlankApp1\XplorePlane\obj\Debug\net6.0-windows\ref\XplorePlane.dll
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1 @@
|
||||
d6134c01254919f927d21dc49cf0a049d99b315044f5276c0c67f526ba6ebd4d
|
||||
Binary file not shown.
@@ -0,0 +1,20 @@
|
||||
XplorePlane
|
||||
|
||||
|
||||
winexe
|
||||
C#
|
||||
.cs
|
||||
C:\Users\zhengxuan.zhang\source\repos\BlankApp1\XplorePlane\obj\Debug\net6.0-windows\
|
||||
XplorePlane
|
||||
none
|
||||
false
|
||||
TRACE;DEBUG;NET;NET6_0;NETCOREAPP;WINDOWS;WINDOWS7_0;NET5_0_OR_GREATER;NET6_0_OR_GREATER;NETCOREAPP3_0_OR_GREATER;NETCOREAPP3_1_OR_GREATER;WINDOWS7_0_OR_GREATER
|
||||
C:\Users\zhengxuan.zhang\source\repos\BlankApp1\XplorePlane\App.xaml
|
||||
1-1644662438
|
||||
|
||||
5-1233227688
|
||||
1991178502162
|
||||
Views\MainWindow.xaml;
|
||||
|
||||
False
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
C:\Users\zhengxuan.zhang\source\repos\BlankApp1\XplorePlane\obj\Debug\net6.0-windows\GeneratedInternalTypeHelper.g.cs
|
||||
|
||||
FC:\Users\zhengxuan.zhang\source\repos\BlankApp1\XplorePlane\Views\MainWindow.xaml;;
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
using System;
|
||||
using System.Reflection;
|
||||
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("XplorePlane")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("XplorePlane")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("XplorePlane")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")]
|
||||
[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")]
|
||||
|
||||
// 由 MSBuild WriteCodeFragment 类生成。
|
||||
|
||||
+1
@@ -0,0 +1 @@
|
||||
ba1aa2b628af9362fa0d453fd8ab75213c6a6e2b2a8f3b40eb811522fb2e83ef
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
is_global = true
|
||||
build_property.TargetFramework = net6.0-windows
|
||||
build_property.TargetFrameworkIdentifier = .NETCoreApp
|
||||
build_property.TargetFrameworkVersion = v6.0
|
||||
build_property.TargetPlatformMinVersion = 7.0
|
||||
build_property.UsingMicrosoftNETSdkWeb =
|
||||
build_property.ProjectTypeGuids =
|
||||
build_property.InvariantGlobalization =
|
||||
build_property.PlatformNeutralAssembly =
|
||||
build_property.EnforceExtendedAnalyzerRules =
|
||||
build_property._SupportedPlatformList = Linux,macOS,Windows
|
||||
build_property.RootNamespace = XplorePlane
|
||||
build_property.ProjectDir = C:\Users\zhengxuan.zhang\source\repos\BlankApp1\XplorePlane\
|
||||
build_property.EnableComHosting =
|
||||
build_property.EnableGeneratedComInterfaceComImportInterop =
|
||||
build_property.CsWinRTUseWindowsUIXamlProjections = false
|
||||
build_property.EffectiveAnalysisLevelStyle = 6.0
|
||||
build_property.EnableCodeStyleSeverity =
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,82 @@
|
||||
{
|
||||
"format": 1,
|
||||
"restore": {
|
||||
"C:\\Users\\zhengxuan.zhang\\source\\repos\\BlankApp1\\XplorePlane\\XplorePlane.csproj": {}
|
||||
},
|
||||
"projects": {
|
||||
"C:\\Users\\zhengxuan.zhang\\source\\repos\\BlankApp1\\XplorePlane\\XplorePlane.csproj": {
|
||||
"version": "1.0.0",
|
||||
"restore": {
|
||||
"projectUniqueName": "C:\\Users\\zhengxuan.zhang\\source\\repos\\BlankApp1\\XplorePlane\\XplorePlane.csproj",
|
||||
"projectName": "XplorePlane",
|
||||
"projectPath": "C:\\Users\\zhengxuan.zhang\\source\\repos\\BlankApp1\\XplorePlane\\XplorePlane.csproj",
|
||||
"packagesPath": "C:\\Users\\zhengxuan.zhang\\.nuget\\packages\\",
|
||||
"outputPath": "C:\\Users\\zhengxuan.zhang\\source\\repos\\BlankApp1\\XplorePlane\\obj\\",
|
||||
"projectStyle": "PackageReference",
|
||||
"fallbackFolders": [
|
||||
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
|
||||
],
|
||||
"configFilePaths": [
|
||||
"C:\\Users\\zhengxuan.zhang\\AppData\\Roaming\\NuGet\\NuGet.Config",
|
||||
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
|
||||
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
|
||||
],
|
||||
"originalTargetFrameworks": [
|
||||
"net6.0-windows"
|
||||
],
|
||||
"sources": {
|
||||
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
|
||||
"https://api.nuget.org/v3/index.json": {}
|
||||
},
|
||||
"frameworks": {
|
||||
"net6.0-windows7.0": {
|
||||
"targetAlias": "net6.0-windows",
|
||||
"projectReferences": {}
|
||||
}
|
||||
},
|
||||
"warningProperties": {
|
||||
"warnAsError": [
|
||||
"NU1605"
|
||||
]
|
||||
},
|
||||
"restoreAuditProperties": {
|
||||
"enableAudit": "true",
|
||||
"auditLevel": "low",
|
||||
"auditMode": "direct"
|
||||
},
|
||||
"SdkAnalysisLevel": "10.0.100"
|
||||
},
|
||||
"frameworks": {
|
||||
"net6.0-windows7.0": {
|
||||
"targetAlias": "net6.0-windows",
|
||||
"dependencies": {
|
||||
"Prism.DryIoc": {
|
||||
"target": "Package",
|
||||
"version": "[8.1.97, )"
|
||||
}
|
||||
},
|
||||
"imports": [
|
||||
"net461",
|
||||
"net462",
|
||||
"net47",
|
||||
"net471",
|
||||
"net472",
|
||||
"net48",
|
||||
"net481"
|
||||
],
|
||||
"assetTargetFallback": true,
|
||||
"warn": true,
|
||||
"frameworkReferences": {
|
||||
"Microsoft.NETCore.App": {
|
||||
"privateAssets": "all"
|
||||
},
|
||||
"Microsoft.WindowsDesktop.App.WPF": {
|
||||
"privateAssets": "none"
|
||||
}
|
||||
},
|
||||
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\10.0.101\\RuntimeIdentifierGraph.json"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
|
||||
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
|
||||
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
|
||||
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
|
||||
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\zhengxuan.zhang\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages</NuGetPackageFolders>
|
||||
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
|
||||
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">7.0.0</NuGetToolVersion>
|
||||
</PropertyGroup>
|
||||
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<SourceRoot Include="C:\Users\zhengxuan.zhang\.nuget\packages\" />
|
||||
<SourceRoot Include="C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\" />
|
||||
</ItemGroup>
|
||||
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<PkgMicrosoft_Xaml_Behaviors_Wpf Condition=" '$(PkgMicrosoft_Xaml_Behaviors_Wpf)' == '' ">C:\Users\zhengxuan.zhang\.nuget\packages\microsoft.xaml.behaviors.wpf\1.1.31</PkgMicrosoft_Xaml_Behaviors_Wpf>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"version": 2,
|
||||
"dgSpecHash": "KjD9lSKskd0=",
|
||||
"success": true,
|
||||
"projectFilePath": "C:\\Users\\zhengxuan.zhang\\source\\repos\\BlankApp1\\XplorePlane\\XplorePlane.csproj",
|
||||
"expectedPackageFiles": [
|
||||
"C:\\Users\\zhengxuan.zhang\\.nuget\\packages\\dryioc.dll\\4.7.7\\dryioc.dll.4.7.7.nupkg.sha512",
|
||||
"C:\\Users\\zhengxuan.zhang\\.nuget\\packages\\microsoft.netcore.platforms\\1.1.0\\microsoft.netcore.platforms.1.1.0.nupkg.sha512",
|
||||
"C:\\Users\\zhengxuan.zhang\\.nuget\\packages\\microsoft.netcore.targets\\1.1.0\\microsoft.netcore.targets.1.1.0.nupkg.sha512",
|
||||
"C:\\Users\\zhengxuan.zhang\\.nuget\\packages\\microsoft.xaml.behaviors.wpf\\1.1.31\\microsoft.xaml.behaviors.wpf.1.1.31.nupkg.sha512",
|
||||
"C:\\Users\\zhengxuan.zhang\\.nuget\\packages\\prism.core\\8.1.97\\prism.core.8.1.97.nupkg.sha512",
|
||||
"C:\\Users\\zhengxuan.zhang\\.nuget\\packages\\prism.dryioc\\8.1.97\\prism.dryioc.8.1.97.nupkg.sha512",
|
||||
"C:\\Users\\zhengxuan.zhang\\.nuget\\packages\\prism.wpf\\8.1.97\\prism.wpf.8.1.97.nupkg.sha512",
|
||||
"C:\\Users\\zhengxuan.zhang\\.nuget\\packages\\system.io\\4.3.0\\system.io.4.3.0.nupkg.sha512",
|
||||
"C:\\Users\\zhengxuan.zhang\\.nuget\\packages\\system.reflection\\4.3.0\\system.reflection.4.3.0.nupkg.sha512",
|
||||
"C:\\Users\\zhengxuan.zhang\\.nuget\\packages\\system.reflection.emit.ilgeneration\\4.3.0\\system.reflection.emit.ilgeneration.4.3.0.nupkg.sha512",
|
||||
"C:\\Users\\zhengxuan.zhang\\.nuget\\packages\\system.reflection.emit.lightweight\\4.3.0\\system.reflection.emit.lightweight.4.3.0.nupkg.sha512",
|
||||
"C:\\Users\\zhengxuan.zhang\\.nuget\\packages\\system.reflection.primitives\\4.3.0\\system.reflection.primitives.4.3.0.nupkg.sha512",
|
||||
"C:\\Users\\zhengxuan.zhang\\.nuget\\packages\\system.runtime\\4.3.0\\system.runtime.4.3.0.nupkg.sha512",
|
||||
"C:\\Users\\zhengxuan.zhang\\.nuget\\packages\\system.text.encoding\\4.3.0\\system.text.encoding.4.3.0.nupkg.sha512",
|
||||
"C:\\Users\\zhengxuan.zhang\\.nuget\\packages\\system.threading.tasks\\4.3.0\\system.threading.tasks.4.3.0.nupkg.sha512"
|
||||
],
|
||||
"logs": []
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
InspectionApp/
|
||||
├── InspectionApp.csproj # .NET 8 WPF project file
|
||||
│
|
||||
├── App.xaml # Application + global ResourceDictionary
|
||||
├── App.xaml.cs
|
||||
│
|
||||
├── Views/
|
||||
│ └── MainWindow.xaml # Main window (Grid + StackPanel layout)
|
||||
│ └── MainWindow.xaml.cs # Code-behind (minimal – only TreeView event)
|
||||
│
|
||||
├── ViewModels/
|
||||
│ └── MainViewModel.cs # Root VM: navigation, callouts, props, commands
|
||||
│ └── NavGroupNode.cs # Tree group node VM
|
||||
│ └── NavLeafNode.cs # Tree leaf node VM
|
||||
│ └── InspectionCalloutVM.cs # Overlay callout card VM
|
||||
│ └── CalloutRowVM.cs # Single callout data row VM
|
||||
│ └── RelayCommand.cs # ICommand implementation
|
||||
│
|
||||
├── Models/
|
||||
│ └── FeatureProperties.cs # Bindable domain model for right panel
|
||||
│
|
||||
└── Assets/
|
||||
└── Icons/ # 28×28 toolbar icon PNGs
|
||||
├── open.png
|
||||
├── export.png
|
||||
├── clear.png
|
||||
├── template_open.png
|
||||
├── template_save.png
|
||||
├── template_inspect.png
|
||||
├── gdt.png
|
||||
├── auto_align.png
|
||||
├── npoint.png
|
||||
├── feature_align.png
|
||||
├── rps.png
|
||||
├── axis_align.png
|
||||
├── matrix.png
|
||||
├── color_diff.png
|
||||
├── annotate.png
|
||||
├── report_info.png
|
||||
├── pdf.png
|
||||
├── csv.png
|
||||
├── distance.png
|
||||
├── angle.png
|
||||
└── mouse_rotate.png
|
||||
Reference in New Issue
Block a user