添加项目文件。

This commit is contained in:
2026-04-30 11:34:41 +08:00
parent a8539ccaac
commit 80635aa46e
181 changed files with 16378 additions and 0 deletions

View File

@@ -0,0 +1,280 @@
using MaterialDesignThemes.Wpf;
using SamplePre.Models.Tables;
using SamplePre.UIWpf;
using SamplePre.UIWpf.ConfigManager;
using SamplePre.UIWpf.ParamManager;
using SamplePre.UIWpf.QueryManager;
using SamplePre.UIWpf.SampleManager;
using SamplePreSystem.UI;
using SamplePreSystem.UI.ConfigManager;
using SamplePreSystem.UI.ViewModel.Login;
using SamplePreSystem.UI.Views;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
namespace SamplePreSystemApp
{
/// <summary>
/// AppMainView.xaml 的交互逻辑
/// </summary>
public partial class AppMainView : Window
{
private bool _isMaximized = false; // 窗口是否最大化
private Rect _normalWindowRect; // 记录还原时的位置大小
private MonitorView monitorView;
public AppMainView()
{
InitializeComponent();
AppMainViewModel vm = new AppMainViewModel();
this.DataContext = vm;
var view = CollectionViewSource.GetDefaultView(vm.MenuBars) as ListCollectionView;
//按照Name分组
view.GroupDescriptions.Add(new PropertyGroupDescription("description"));
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
MaximizeWindow();
//打开样品监控
OpenSampleMonitor();
}
private void btnMin_Click(object sender, RoutedEventArgs e)
{
this.WindowState = WindowState.Minimized;
//MaximizeWindow();
}
private void btnMax_Click(object sender, RoutedEventArgs e)
{
MaximizeWindow();
}
private void btnClose_Click(object sender, RoutedEventArgs e)
{
if (MessageBox.Show("是否退出系统?", "退出提示", MessageBoxButton.OKCancel) == MessageBoxResult.OK)
{
this.Close();
}
}
private void btnUserInfo_Click(object sender, RoutedEventArgs e)
{
// 打开用户信息窗口
UserInfoWindow userInfoWindow = new UserInfoWindow();
userInfoWindow.ShowDialog();
}
public void MaximizeWindow()
{
if (_isMaximized)
{
// 还原
this.WindowState = WindowState.Normal;
this.Left = _normalWindowRect.Left;
this.Top = _normalWindowRect.Top;
this.Width = _normalWindowRect.Width;
this.Height = _normalWindowRect.Height;
//BtnMaximize.Content = new PackIcon { Kind = PackIconKind.WindowMaximize, Width = 16, Height = 16, Foreground = Brushes.White };
}
else
{
// 先记录当前位置
_normalWindowRect = new Rect(this.Left, this.Top, this.Width, this.Height);
// 工作区最大化(不挡任务栏)
var workArea = SystemParameters.WorkArea;
this.Left = workArea.Left;
this.Top = workArea.Top;
this.Width = workArea.Width;
this.Height = workArea.Height;
//BtnMaximize.Content = new PackIcon { Kind = PackIconKind.WindowRestore, Width = 16, Height = 16, Foreground = Brushes.White };
}
_isMaximized = !_isMaximized;
}
/// <summary>
/// 拖拽标题栏
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void ColorZone_MouseMove(object sender, MouseEventArgs e)
{
if (e.LeftButton == MouseButtonState.Pressed)
{
this.DragMove();
}
}
/// <summary>
/// 打开功能界面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void FuncListbox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
// 获取 ListBox 本身
ListBox listBox = sender as ListBox;
// 获取选中项
var selectedItem = listBox.SelectedItem as MenuBarFuc;
//this.txt_currFunc.Text = selectedItem.name;
switch (selectedItem.id)
{
case 5:
OpenSampleMonitor();
break;
case 6:
this.MainFrame.Navigate(new SampleExecView());
break;
case 8:
this.MainFrame.Navigate(new SampleQueryView());
break;
case 9:
break;
case 10:
this.MainFrame.Navigate(new ParamManagerView());
break;
case 11:
this.MainFrame.Navigate(new ActionManagerView());
break;
case 12:
this.MainFrame.Navigate(new SopManagerView());
break;
case 13:
this.MainFrame.Navigate(new UsersView());
break;
case 14:
this.MainFrame.Navigate(new RoleView());
break;
case 15:
this.MainFrame.Navigate(new SysConfigMangerView());
break;
default:
break;
}
}
/// <summary>
/// 打开首页,监控界面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnMonitor_Click(object sender, RoutedEventArgs e)
{
OpenSampleMonitor();
}
public void OpenSampleMonitor()
{
if (monitorView == null)
{
monitorView = new MonitorView();
}
this.MainFrame.Navigate(monitorView);
}
// 收缩菜单:宽度=0内容隐藏
private void MenuToggleButton_Checked(object sender, RoutedEventArgs e)
{
MenuContent.Visibility = Visibility.Collapsed;
MenuContainer.BeginAnimation(Grid.WidthProperty, new DoubleAnimation(0, TimeSpan.FromMilliseconds(200)));
//MenuToggleButton.Foreground = new SolidColorBrush(Color.FromArgb(1,0,113,203));
MenuToggleButton.Foreground = new SolidColorBrush(Color.FromRgb(0, 113, 203));
}
// 展开菜单:宽度=220内容显示
private void MenuToggleButton_Unchecked(object sender, RoutedEventArgs e)
{
MenuContainer.BeginAnimation(Grid.WidthProperty, new DoubleAnimation(200, TimeSpan.FromMilliseconds(200)));
MenuContent.Visibility = Visibility.Visible;
MenuToggleButton.Foreground = new SolidColorBrush(Colors.White);
}
/// <summary>
/// 分组标题点击事件 → 折叠/展开子项
/// </summary>
private void GroupHeader_MouseLeftButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
// 获取点击的标题容器
var border = sender as Border;
if (border == null) return;
// 获取箭头图标
var icon = FindVisualChild<PackIcon>(border);
// 获取子项容器
var itemsPresenter = FindVisualChild<ItemsPresenter>(border.Parent as FrameworkElement);
if (icon == null || itemsPresenter == null) return;
// 切换折叠/展开状态
if (icon.Tag.ToString() == "Expanded")
{
// 折叠
icon.Kind = PackIconKind.ChevronRight;
icon.Tag = "Collapsed";
itemsPresenter.Visibility = Visibility.Collapsed;
}
else
{
// 展开
icon.Kind = PackIconKind.ChevronDown;
icon.Tag = "Expanded";
itemsPresenter.Visibility = Visibility.Visible;
}
}
/// <summary>
/// 可视化树查找子元素(通用工具方法)
/// </summary>
private T FindVisualChild<T>(DependencyObject parent) where T : DependencyObject
{
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(parent); i++)
{
var child = VisualTreeHelper.GetChild(parent, i);
if (child is T result) return result;
var childResult = FindVisualChild<T>(child);
if (childResult != null) return childResult;
}
return null;
}
}
}