重构初版
360
.gitignore
vendored
Normal file
@ -0,0 +1,360 @@
|
|||||||
|
## Ignore Visual Studio temporary files, build results, and
|
||||||
|
## files generated by popular Visual Studio add-ons.
|
||||||
|
##
|
||||||
|
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
|
||||||
|
|
||||||
|
# User-specific files
|
||||||
|
*.rsuser
|
||||||
|
*.suo
|
||||||
|
*.user
|
||||||
|
*.userosscache
|
||||||
|
*.sln.docstates
|
||||||
|
libs/*
|
||||||
|
# User-specific files (MonoDevelop/Xamarin Studio)
|
||||||
|
*.userprefs
|
||||||
|
|
||||||
|
# Mono auto generated files
|
||||||
|
mono_crash.*
|
||||||
|
|
||||||
|
# Build results
|
||||||
|
[Dd]ebug/
|
||||||
|
[Dd]ebugPublic/
|
||||||
|
[Rr]elease/
|
||||||
|
[Rr]eleases/
|
||||||
|
x64/
|
||||||
|
x86/
|
||||||
|
[Ww][Ii][Nn]32/
|
||||||
|
[Aa][Rr][Mm]/
|
||||||
|
[Aa][Rr][Mm]64/
|
||||||
|
bld/
|
||||||
|
[Bb]in/
|
||||||
|
[Oo]bj/
|
||||||
|
[Ll]og/
|
||||||
|
[Ll]ogs/
|
||||||
|
|
||||||
|
# Visual Studio 2015/2017 cache/options directory
|
||||||
|
.vs/
|
||||||
|
# Uncomment if you have tasks that create the project's static files in wwwroot
|
||||||
|
#wwwroot/
|
||||||
|
|
||||||
|
# Visual Studio 2017 auto generated files
|
||||||
|
Generated\ Files/
|
||||||
|
|
||||||
|
# MSTest test Results
|
||||||
|
[Tt]est[Rr]esult*/
|
||||||
|
[Bb]uild[Ll]og.*
|
||||||
|
|
||||||
|
# NUnit
|
||||||
|
*.VisualState.xml
|
||||||
|
TestResult.xml
|
||||||
|
nunit-*.xml
|
||||||
|
|
||||||
|
# Build Results of an ATL Project
|
||||||
|
[Dd]ebugPS/
|
||||||
|
[Rr]eleasePS/
|
||||||
|
dlldata.c
|
||||||
|
|
||||||
|
# Benchmark Results
|
||||||
|
BenchmarkDotNet.Artifacts/
|
||||||
|
|
||||||
|
# .NET Core
|
||||||
|
project.lock.json
|
||||||
|
project.fragment.lock.json
|
||||||
|
artifacts/
|
||||||
|
|
||||||
|
# ASP.NET Scaffolding
|
||||||
|
ScaffoldingReadMe.txt
|
||||||
|
|
||||||
|
# StyleCop
|
||||||
|
StyleCopReport.xml
|
||||||
|
|
||||||
|
# Files built by Visual Studio
|
||||||
|
*_i.c
|
||||||
|
*_p.c
|
||||||
|
*_h.h
|
||||||
|
*.ilk
|
||||||
|
*.meta
|
||||||
|
*.obj
|
||||||
|
*.iobj
|
||||||
|
*.pch
|
||||||
|
*.pdb
|
||||||
|
*.ipdb
|
||||||
|
*.pgc
|
||||||
|
*.pgd
|
||||||
|
*.rsp
|
||||||
|
*.sbr
|
||||||
|
*.tlb
|
||||||
|
*.tli
|
||||||
|
*.tlh
|
||||||
|
*.tmp
|
||||||
|
*.tmp_proj
|
||||||
|
*_wpftmp.csproj
|
||||||
|
*.log
|
||||||
|
*.vspscc
|
||||||
|
*.vssscc
|
||||||
|
.builds
|
||||||
|
*.pidb
|
||||||
|
*.svclog
|
||||||
|
*.scc
|
||||||
|
|
||||||
|
# Chutzpah Test files
|
||||||
|
_Chutzpah*
|
||||||
|
|
||||||
|
# Visual C++ cache files
|
||||||
|
ipch/
|
||||||
|
*.aps
|
||||||
|
*.ncb
|
||||||
|
*.opendb
|
||||||
|
*.opensdf
|
||||||
|
*.sdf
|
||||||
|
*.cachefile
|
||||||
|
*.VC.db
|
||||||
|
*.VC.VC.opendb
|
||||||
|
|
||||||
|
# Visual Studio profiler
|
||||||
|
*.psess
|
||||||
|
*.vsp
|
||||||
|
*.vspx
|
||||||
|
*.sap
|
||||||
|
|
||||||
|
# Visual Studio Trace Files
|
||||||
|
*.e2e
|
||||||
|
|
||||||
|
# TFS 2012 Local Workspace
|
||||||
|
$tf/
|
||||||
|
|
||||||
|
# Guidance Automation Toolkit
|
||||||
|
*.gpState
|
||||||
|
|
||||||
|
# ReSharper is a .NET coding add-in
|
||||||
|
_ReSharper*/
|
||||||
|
*.[Rr]e[Ss]harper
|
||||||
|
*.DotSettings.user
|
||||||
|
|
||||||
|
# TeamCity is a build add-in
|
||||||
|
_TeamCity*
|
||||||
|
|
||||||
|
# DotCover is a Code Coverage Tool
|
||||||
|
*.dotCover
|
||||||
|
|
||||||
|
# AxoCover is a Code Coverage Tool
|
||||||
|
.axoCover/*
|
||||||
|
!.axoCover/settings.json
|
||||||
|
|
||||||
|
# Coverlet is a free, cross platform Code Coverage Tool
|
||||||
|
coverage*[.json, .xml, .info]
|
||||||
|
|
||||||
|
# Visual Studio code coverage results
|
||||||
|
*.coverage
|
||||||
|
*.coveragexml
|
||||||
|
|
||||||
|
# NCrunch
|
||||||
|
_NCrunch_*
|
||||||
|
.*crunch*.local.xml
|
||||||
|
nCrunchTemp_*
|
||||||
|
|
||||||
|
# MightyMoose
|
||||||
|
*.mm.*
|
||||||
|
AutoTest.Net/
|
||||||
|
|
||||||
|
# Web workbench (sass)
|
||||||
|
.sass-cache/
|
||||||
|
|
||||||
|
# Installshield output folder
|
||||||
|
[Ee]xpress/
|
||||||
|
|
||||||
|
# DocProject is a documentation generator add-in
|
||||||
|
DocProject/buildhelp/
|
||||||
|
DocProject/Help/*.HxT
|
||||||
|
DocProject/Help/*.HxC
|
||||||
|
DocProject/Help/*.hhc
|
||||||
|
DocProject/Help/*.hhk
|
||||||
|
DocProject/Help/*.hhp
|
||||||
|
DocProject/Help/Html2
|
||||||
|
DocProject/Help/html
|
||||||
|
|
||||||
|
# Click-Once directory
|
||||||
|
publish/
|
||||||
|
|
||||||
|
# Publish Web Output
|
||||||
|
*.[Pp]ublish.xml
|
||||||
|
*.azurePubxml
|
||||||
|
# Note: Comment the next line if you want to checkin your web deploy settings,
|
||||||
|
# but database connection strings (with potential passwords) will be unencrypted
|
||||||
|
*.pubxml
|
||||||
|
*.publishproj
|
||||||
|
|
||||||
|
# Microsoft Azure Web App publish settings. Comment the next line if you want to
|
||||||
|
# checkin your Azure Web App publish settings, but sensitive information contained
|
||||||
|
# in these scripts will be unencrypted
|
||||||
|
PublishScripts/
|
||||||
|
|
||||||
|
# NuGet Packages
|
||||||
|
*.nupkg
|
||||||
|
# NuGet Symbol Packages
|
||||||
|
*.snupkg
|
||||||
|
# The packages folder can be ignored because of Package Restore
|
||||||
|
**/[Pp]ackages/*
|
||||||
|
# except build/, which is used as an MSBuild target.
|
||||||
|
!**/[Pp]ackages/build/
|
||||||
|
# Uncomment if necessary however generally it will be regenerated when needed
|
||||||
|
#!**/[Pp]ackages/repositories.config
|
||||||
|
# NuGet v3's project.json files produces more ignorable files
|
||||||
|
*.nuget.props
|
||||||
|
*.nuget.targets
|
||||||
|
|
||||||
|
# Microsoft Azure Build Output
|
||||||
|
csx/
|
||||||
|
*.build.csdef
|
||||||
|
|
||||||
|
# Microsoft Azure Emulator
|
||||||
|
ecf/
|
||||||
|
rcf/
|
||||||
|
|
||||||
|
# Windows Store app package directories and files
|
||||||
|
AppPackages/
|
||||||
|
BundleArtifacts/
|
||||||
|
Package.StoreAssociation.xml
|
||||||
|
_pkginfo.txt
|
||||||
|
*.appx
|
||||||
|
*.appxbundle
|
||||||
|
*.appxupload
|
||||||
|
|
||||||
|
# Visual Studio cache files
|
||||||
|
# files ending in .cache can be ignored
|
||||||
|
*.[Cc]ache
|
||||||
|
# but keep track of directories ending in .cache
|
||||||
|
!?*.[Cc]ache/
|
||||||
|
|
||||||
|
# Others
|
||||||
|
ClientBin/
|
||||||
|
~$*
|
||||||
|
*~
|
||||||
|
*.dbmdl
|
||||||
|
*.dbproj.schemaview
|
||||||
|
*.jfm
|
||||||
|
*.pfx
|
||||||
|
*.publishsettings
|
||||||
|
orleans.codegen.cs
|
||||||
|
|
||||||
|
# Including strong name files can present a security risk
|
||||||
|
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
|
||||||
|
#*.snk
|
||||||
|
|
||||||
|
# Since there are multiple workflows, uncomment next line to ignore bower_components
|
||||||
|
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
|
||||||
|
#bower_components/
|
||||||
|
|
||||||
|
# RIA/Silverlight projects
|
||||||
|
Generated_Code/
|
||||||
|
|
||||||
|
# Backup & report files from converting an old project file
|
||||||
|
# to a newer Visual Studio version. Backup files are not needed,
|
||||||
|
# because we have git ;-)
|
||||||
|
_UpgradeReport_Files/
|
||||||
|
Backup*/
|
||||||
|
UpgradeLog*.XML
|
||||||
|
UpgradeLog*.htm
|
||||||
|
ServiceFabricBackup/
|
||||||
|
*.rptproj.bak
|
||||||
|
|
||||||
|
# SQL Server files
|
||||||
|
*.mdf
|
||||||
|
*.ldf
|
||||||
|
*.ndf
|
||||||
|
|
||||||
|
# Business Intelligence projects
|
||||||
|
*.rdl.data
|
||||||
|
*.bim.layout
|
||||||
|
*.bim_*.settings
|
||||||
|
*.rptproj.rsuser
|
||||||
|
*- [Bb]ackup.rdl
|
||||||
|
*- [Bb]ackup ([0-9]).rdl
|
||||||
|
*- [Bb]ackup ([0-9][0-9]).rdl
|
||||||
|
|
||||||
|
# Microsoft Fakes
|
||||||
|
FakesAssemblies/
|
||||||
|
|
||||||
|
# GhostDoc plugin setting file
|
||||||
|
*.GhostDoc.xml
|
||||||
|
|
||||||
|
# Node.js Tools for Visual Studio
|
||||||
|
.ntvs_analysis.dat
|
||||||
|
node_modules/
|
||||||
|
|
||||||
|
# Visual Studio 6 build log
|
||||||
|
*.plg
|
||||||
|
|
||||||
|
# Visual Studio 6 workspace options file
|
||||||
|
*.opt
|
||||||
|
|
||||||
|
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
|
||||||
|
*.vbw
|
||||||
|
|
||||||
|
# Visual Studio LightSwitch build output
|
||||||
|
**/*.HTMLClient/GeneratedArtifacts
|
||||||
|
**/*.DesktopClient/GeneratedArtifacts
|
||||||
|
**/*.DesktopClient/ModelManifest.xml
|
||||||
|
**/*.Server/GeneratedArtifacts
|
||||||
|
**/*.Server/ModelManifest.xml
|
||||||
|
_Pvt_Extensions
|
||||||
|
|
||||||
|
# Paket dependency manager
|
||||||
|
.paket/paket.exe
|
||||||
|
paket-files/
|
||||||
|
|
||||||
|
# FAKE - F# Make
|
||||||
|
.fake/
|
||||||
|
|
||||||
|
# CodeRush personal settings
|
||||||
|
.cr/personal
|
||||||
|
|
||||||
|
# Python Tools for Visual Studio (PTVS)
|
||||||
|
__pycache__/
|
||||||
|
*.pyc
|
||||||
|
|
||||||
|
# Cake - Uncomment if you are using it
|
||||||
|
# tools/**
|
||||||
|
# !tools/packages.config
|
||||||
|
|
||||||
|
# Tabs Studio
|
||||||
|
*.tss
|
||||||
|
|
||||||
|
# Telerik's JustMock configuration file
|
||||||
|
*.jmconfig
|
||||||
|
|
||||||
|
# BizTalk build output
|
||||||
|
*.btp.cs
|
||||||
|
*.btm.cs
|
||||||
|
*.odx.cs
|
||||||
|
*.xsd.cs
|
||||||
|
|
||||||
|
# OpenCover UI analysis results
|
||||||
|
OpenCover/
|
||||||
|
|
||||||
|
# Azure Stream Analytics local run output
|
||||||
|
ASALocalRun/
|
||||||
|
|
||||||
|
# MSBuild Binary and Structured Log
|
||||||
|
*.binlog
|
||||||
|
|
||||||
|
# NVidia Nsight GPU debugger configuration file
|
||||||
|
*.nvuser
|
||||||
|
|
||||||
|
# MFractors (Xamarin productivity tool) working folder
|
||||||
|
.mfractor/
|
||||||
|
|
||||||
|
# Local History for Visual Studio
|
||||||
|
.localhistory/
|
||||||
|
|
||||||
|
# BeatPulse healthcheck temp database
|
||||||
|
healthchecksdb
|
||||||
|
|
||||||
|
# Backup folder for Package Reference Convert tool in Visual Studio 2017
|
||||||
|
MigrationBackup/
|
||||||
|
|
||||||
|
# Ionide (cross platform F# VS Code tools) working folder
|
||||||
|
.ionide/
|
||||||
|
|
||||||
|
# Fody - auto-generated XML schema
|
||||||
|
FodyWeavers.xsd
|
65
src/PBAnaly.sln
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio Version 17
|
||||||
|
VisualStudioVersion = 17.8.34330.188
|
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PBAnaly", "PBAnaly\PBAnaly.csproj", "{B9CEF793-3D50-48A7-8B1A-3F121ECABE12}"
|
||||||
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PBBiology", "PBBiology\PBBiology.vcxproj", "{EC5572D1-750B-4F4B-ADC2-02B9827E0647}"
|
||||||
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PBBiologyVC", "PBBiologyVC\PBBiologyVC.vcxproj", "{C1DD8A06-7351-4C8D-BD7F-B2BE76BB3903}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
Debug|x64 = Debug|x64
|
||||||
|
Debug|x86 = Debug|x86
|
||||||
|
Release|Any CPU = Release|Any CPU
|
||||||
|
Release|x64 = Release|x64
|
||||||
|
Release|x86 = Release|x86
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{B9CEF793-3D50-48A7-8B1A-3F121ECABE12}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{B9CEF793-3D50-48A7-8B1A-3F121ECABE12}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{B9CEF793-3D50-48A7-8B1A-3F121ECABE12}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{B9CEF793-3D50-48A7-8B1A-3F121ECABE12}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{B9CEF793-3D50-48A7-8B1A-3F121ECABE12}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{B9CEF793-3D50-48A7-8B1A-3F121ECABE12}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{B9CEF793-3D50-48A7-8B1A-3F121ECABE12}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{B9CEF793-3D50-48A7-8B1A-3F121ECABE12}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{B9CEF793-3D50-48A7-8B1A-3F121ECABE12}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{B9CEF793-3D50-48A7-8B1A-3F121ECABE12}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{B9CEF793-3D50-48A7-8B1A-3F121ECABE12}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{B9CEF793-3D50-48A7-8B1A-3F121ECABE12}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{EC5572D1-750B-4F4B-ADC2-02B9827E0647}.Debug|Any CPU.ActiveCfg = Debug|x64
|
||||||
|
{EC5572D1-750B-4F4B-ADC2-02B9827E0647}.Debug|Any CPU.Build.0 = Debug|x64
|
||||||
|
{EC5572D1-750B-4F4B-ADC2-02B9827E0647}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{EC5572D1-750B-4F4B-ADC2-02B9827E0647}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{EC5572D1-750B-4F4B-ADC2-02B9827E0647}.Debug|x86.ActiveCfg = Debug|Win32
|
||||||
|
{EC5572D1-750B-4F4B-ADC2-02B9827E0647}.Debug|x86.Build.0 = Debug|Win32
|
||||||
|
{EC5572D1-750B-4F4B-ADC2-02B9827E0647}.Release|Any CPU.ActiveCfg = Release|x64
|
||||||
|
{EC5572D1-750B-4F4B-ADC2-02B9827E0647}.Release|Any CPU.Build.0 = Release|x64
|
||||||
|
{EC5572D1-750B-4F4B-ADC2-02B9827E0647}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{EC5572D1-750B-4F4B-ADC2-02B9827E0647}.Release|x64.Build.0 = Release|x64
|
||||||
|
{EC5572D1-750B-4F4B-ADC2-02B9827E0647}.Release|x86.ActiveCfg = Release|Win32
|
||||||
|
{EC5572D1-750B-4F4B-ADC2-02B9827E0647}.Release|x86.Build.0 = Release|Win32
|
||||||
|
{C1DD8A06-7351-4C8D-BD7F-B2BE76BB3903}.Debug|Any CPU.ActiveCfg = Debug|x64
|
||||||
|
{C1DD8A06-7351-4C8D-BD7F-B2BE76BB3903}.Debug|Any CPU.Build.0 = Debug|x64
|
||||||
|
{C1DD8A06-7351-4C8D-BD7F-B2BE76BB3903}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{C1DD8A06-7351-4C8D-BD7F-B2BE76BB3903}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{C1DD8A06-7351-4C8D-BD7F-B2BE76BB3903}.Debug|x86.ActiveCfg = Debug|Win32
|
||||||
|
{C1DD8A06-7351-4C8D-BD7F-B2BE76BB3903}.Debug|x86.Build.0 = Debug|Win32
|
||||||
|
{C1DD8A06-7351-4C8D-BD7F-B2BE76BB3903}.Release|Any CPU.ActiveCfg = Release|x64
|
||||||
|
{C1DD8A06-7351-4C8D-BD7F-B2BE76BB3903}.Release|Any CPU.Build.0 = Release|x64
|
||||||
|
{C1DD8A06-7351-4C8D-BD7F-B2BE76BB3903}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{C1DD8A06-7351-4C8D-BD7F-B2BE76BB3903}.Release|x64.Build.0 = Release|x64
|
||||||
|
{C1DD8A06-7351-4C8D-BD7F-B2BE76BB3903}.Release|x86.ActiveCfg = Release|Win32
|
||||||
|
{C1DD8A06-7351-4C8D-BD7F-B2BE76BB3903}.Release|x86.Build.0 = Release|Win32
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
|
SolutionGuid = {C1622B5B-B88B-4DE1-8CE7-A4398F04AE53}
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
6
src/PBAnaly/App.config
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<configuration>
|
||||||
|
<startup>
|
||||||
|
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
|
||||||
|
</startup>
|
||||||
|
</configuration>
|
194
src/PBAnaly/DataProcessForm.Designer.cs
generated
Normal file
@ -0,0 +1,194 @@
|
|||||||
|
namespace PBAnaly
|
||||||
|
{
|
||||||
|
partial class DataProcessForm
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(DataProcessForm));
|
||||||
|
this.PictureBoxpanel = new System.Windows.Forms.Panel();
|
||||||
|
this.pictureBox1 = new System.Windows.Forms.PictureBox();
|
||||||
|
this.Control_panel = new System.Windows.Forms.Panel();
|
||||||
|
this.panel2 = new System.Windows.Forms.Panel();
|
||||||
|
this.materialButton_Load = new MaterialSkin.Controls.MaterialButton();
|
||||||
|
this.panel1 = new System.Windows.Forms.Panel();
|
||||||
|
this.materialLabel1 = new MaterialSkin.Controls.MaterialLabel();
|
||||||
|
this.materialFloatingActionButton_Plus = new MaterialSkin.Controls.MaterialFloatingActionButton();
|
||||||
|
this.materialFloatingActionButton_Minus = new MaterialSkin.Controls.MaterialFloatingActionButton();
|
||||||
|
this.PictureBoxpanel.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
|
||||||
|
this.Control_panel.SuspendLayout();
|
||||||
|
this.panel2.SuspendLayout();
|
||||||
|
this.panel1.SuspendLayout();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// PictureBoxpanel
|
||||||
|
//
|
||||||
|
this.PictureBoxpanel.Controls.Add(this.pictureBox1);
|
||||||
|
this.PictureBoxpanel.Dock = System.Windows.Forms.DockStyle.Bottom;
|
||||||
|
this.PictureBoxpanel.Location = new System.Drawing.Point(3, 72);
|
||||||
|
this.PictureBoxpanel.Margin = new System.Windows.Forms.Padding(0);
|
||||||
|
this.PictureBoxpanel.Name = "PictureBoxpanel";
|
||||||
|
this.PictureBoxpanel.Size = new System.Drawing.Size(408, 351);
|
||||||
|
this.PictureBoxpanel.TabIndex = 0;
|
||||||
|
//
|
||||||
|
// pictureBox1
|
||||||
|
//
|
||||||
|
this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
|
||||||
|
this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.pictureBox1.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.pictureBox1.Name = "pictureBox1";
|
||||||
|
this.pictureBox1.Size = new System.Drawing.Size(408, 351);
|
||||||
|
this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
|
||||||
|
this.pictureBox1.TabIndex = 0;
|
||||||
|
this.pictureBox1.TabStop = false;
|
||||||
|
//
|
||||||
|
// Control_panel
|
||||||
|
//
|
||||||
|
this.Control_panel.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
|
||||||
|
this.Control_panel.Controls.Add(this.panel2);
|
||||||
|
this.Control_panel.Controls.Add(this.panel1);
|
||||||
|
this.Control_panel.Dock = System.Windows.Forms.DockStyle.Top;
|
||||||
|
this.Control_panel.Location = new System.Drawing.Point(3, 24);
|
||||||
|
this.Control_panel.Name = "Control_panel";
|
||||||
|
this.Control_panel.Size = new System.Drawing.Size(408, 44);
|
||||||
|
this.Control_panel.TabIndex = 1;
|
||||||
|
//
|
||||||
|
// panel2
|
||||||
|
//
|
||||||
|
this.panel2.Controls.Add(this.materialButton_Load);
|
||||||
|
this.panel2.Dock = System.Windows.Forms.DockStyle.Left;
|
||||||
|
this.panel2.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.panel2.Name = "panel2";
|
||||||
|
this.panel2.Size = new System.Drawing.Size(42, 40);
|
||||||
|
this.panel2.TabIndex = 1;
|
||||||
|
//
|
||||||
|
// materialButton_Load
|
||||||
|
//
|
||||||
|
this.materialButton_Load.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||||
|
this.materialButton_Load.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default;
|
||||||
|
this.materialButton_Load.Depth = 0;
|
||||||
|
this.materialButton_Load.Dock = System.Windows.Forms.DockStyle.Left;
|
||||||
|
this.materialButton_Load.HighEmphasis = true;
|
||||||
|
this.materialButton_Load.Icon = ((System.Drawing.Image)(resources.GetObject("materialButton_Load.Icon")));
|
||||||
|
this.materialButton_Load.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.materialButton_Load.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6);
|
||||||
|
this.materialButton_Load.MouseState = MaterialSkin.MouseState.HOVER;
|
||||||
|
this.materialButton_Load.Name = "materialButton_Load";
|
||||||
|
this.materialButton_Load.NoAccentTextColor = System.Drawing.Color.Empty;
|
||||||
|
this.materialButton_Load.Size = new System.Drawing.Size(64, 40);
|
||||||
|
this.materialButton_Load.TabIndex = 0;
|
||||||
|
this.materialButton_Load.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained;
|
||||||
|
this.materialButton_Load.UseAccentColor = true;
|
||||||
|
this.materialButton_Load.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// panel1
|
||||||
|
//
|
||||||
|
this.panel1.Controls.Add(this.materialLabel1);
|
||||||
|
this.panel1.Controls.Add(this.materialFloatingActionButton_Plus);
|
||||||
|
this.panel1.Controls.Add(this.materialFloatingActionButton_Minus);
|
||||||
|
this.panel1.Dock = System.Windows.Forms.DockStyle.Right;
|
||||||
|
this.panel1.Location = new System.Drawing.Point(259, 0);
|
||||||
|
this.panel1.Name = "panel1";
|
||||||
|
this.panel1.Size = new System.Drawing.Size(145, 40);
|
||||||
|
this.panel1.TabIndex = 0;
|
||||||
|
//
|
||||||
|
// materialLabel1
|
||||||
|
//
|
||||||
|
this.materialLabel1.AutoSize = true;
|
||||||
|
this.materialLabel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||||
|
this.materialLabel1.Depth = 0;
|
||||||
|
this.materialLabel1.Font = new System.Drawing.Font("Roboto", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel);
|
||||||
|
this.materialLabel1.FontType = MaterialSkin.MaterialSkinManager.fontType.Caption;
|
||||||
|
this.materialLabel1.ForeColor = System.Drawing.SystemColors.Desktop;
|
||||||
|
this.materialLabel1.Location = new System.Drawing.Point(54, 12);
|
||||||
|
this.materialLabel1.MouseState = MaterialSkin.MouseState.HOVER;
|
||||||
|
this.materialLabel1.Name = "materialLabel1";
|
||||||
|
this.materialLabel1.Size = new System.Drawing.Size(16, 14);
|
||||||
|
this.materialLabel1.TabIndex = 2;
|
||||||
|
this.materialLabel1.Text = "1X";
|
||||||
|
//
|
||||||
|
// materialFloatingActionButton_Plus
|
||||||
|
//
|
||||||
|
this.materialFloatingActionButton_Plus.Depth = 0;
|
||||||
|
this.materialFloatingActionButton_Plus.Icon = ((System.Drawing.Image)(resources.GetObject("materialFloatingActionButton_Plus.Icon")));
|
||||||
|
this.materialFloatingActionButton_Plus.Location = new System.Drawing.Point(88, 2);
|
||||||
|
this.materialFloatingActionButton_Plus.Mini = true;
|
||||||
|
this.materialFloatingActionButton_Plus.MouseState = MaterialSkin.MouseState.HOVER;
|
||||||
|
this.materialFloatingActionButton_Plus.Name = "materialFloatingActionButton_Plus";
|
||||||
|
this.materialFloatingActionButton_Plus.Size = new System.Drawing.Size(40, 40);
|
||||||
|
this.materialFloatingActionButton_Plus.TabIndex = 1;
|
||||||
|
this.materialFloatingActionButton_Plus.Text = "materialFloatingActionButton2";
|
||||||
|
this.materialFloatingActionButton_Plus.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// materialFloatingActionButton_Minus
|
||||||
|
//
|
||||||
|
this.materialFloatingActionButton_Minus.Depth = 0;
|
||||||
|
this.materialFloatingActionButton_Minus.Icon = ((System.Drawing.Image)(resources.GetObject("materialFloatingActionButton_Minus.Icon")));
|
||||||
|
this.materialFloatingActionButton_Minus.Location = new System.Drawing.Point(2, 2);
|
||||||
|
this.materialFloatingActionButton_Minus.Mini = true;
|
||||||
|
this.materialFloatingActionButton_Minus.MouseState = MaterialSkin.MouseState.HOVER;
|
||||||
|
this.materialFloatingActionButton_Minus.Name = "materialFloatingActionButton_Minus";
|
||||||
|
this.materialFloatingActionButton_Minus.Size = new System.Drawing.Size(40, 40);
|
||||||
|
this.materialFloatingActionButton_Minus.TabIndex = 0;
|
||||||
|
this.materialFloatingActionButton_Minus.Text = "materialFloatingActionButton1";
|
||||||
|
this.materialFloatingActionButton_Minus.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// DataProcessForm
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(414, 426);
|
||||||
|
this.Controls.Add(this.PictureBoxpanel);
|
||||||
|
this.Controls.Add(this.Control_panel);
|
||||||
|
this.FormStyle = MaterialSkin.Controls.MaterialForm.FormStyles.ActionBar_None;
|
||||||
|
this.Name = "DataProcessForm";
|
||||||
|
this.Padding = new System.Windows.Forms.Padding(3, 24, 3, 3);
|
||||||
|
this.Text = "DataProcessForm";
|
||||||
|
this.PictureBoxpanel.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
|
||||||
|
this.Control_panel.ResumeLayout(false);
|
||||||
|
this.panel2.ResumeLayout(false);
|
||||||
|
this.panel2.PerformLayout();
|
||||||
|
this.panel1.ResumeLayout(false);
|
||||||
|
this.panel1.PerformLayout();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private System.Windows.Forms.Panel PictureBoxpanel;
|
||||||
|
private System.Windows.Forms.PictureBox pictureBox1;
|
||||||
|
private System.Windows.Forms.Panel Control_panel;
|
||||||
|
private System.Windows.Forms.Panel panel2;
|
||||||
|
private MaterialSkin.Controls.MaterialButton materialButton_Load;
|
||||||
|
private System.Windows.Forms.Panel panel1;
|
||||||
|
private MaterialSkin.Controls.MaterialLabel materialLabel1;
|
||||||
|
private MaterialSkin.Controls.MaterialFloatingActionButton materialFloatingActionButton_Plus;
|
||||||
|
private MaterialSkin.Controls.MaterialFloatingActionButton materialFloatingActionButton_Minus;
|
||||||
|
}
|
||||||
|
}
|
228
src/PBAnaly/DataProcessForm.cs
Normal file
@ -0,0 +1,228 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using MaterialSkin;
|
||||||
|
using MaterialSkin.Controls;
|
||||||
|
using OpenCvSharp;
|
||||||
|
using OpenCvSharp.Extensions;
|
||||||
|
using PBAnaly.Module;
|
||||||
|
using static System.Windows.Forms.VisualStyles.VisualStyleElement.Rebar;
|
||||||
|
|
||||||
|
namespace PBAnaly
|
||||||
|
{
|
||||||
|
public partial class DataProcessForm : MaterialForm
|
||||||
|
{
|
||||||
|
private Mat image = null;
|
||||||
|
private string filePath = "";
|
||||||
|
private List<PBAnalyCommMannager.band_infos> bands = new List<PBAnalyCommMannager.band_infos>();
|
||||||
|
private Cursor cursor = null;
|
||||||
|
private int bands_index = -1;
|
||||||
|
|
||||||
|
public DataProcessForm(MaterialSkinManager materialSkinManager,string filePath)
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
UIInit();
|
||||||
|
Inn_materialSkinManager = materialSkinManager;
|
||||||
|
this.filePath = filePath;
|
||||||
|
image = Cv2.ImRead(filePath, ImreadModes.Unchanged);
|
||||||
|
|
||||||
|
if (image.Depth() != MatType.CV_8U)
|
||||||
|
{
|
||||||
|
Mat convertedImage = new Mat();
|
||||||
|
image.ConvertTo(convertedImage, MatType.CV_8U, 0.00390625);
|
||||||
|
pictureBox1.Image = convertedImage.ToBitmap();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pictureBox1.Image = image.ToBitmap();
|
||||||
|
}
|
||||||
|
this.MouseDown += DataProcessForm_MouseDown;
|
||||||
|
this.pictureBox1.MouseMove += PictureBox1_MouseMove;
|
||||||
|
this.pictureBox1.MouseDown += PictureBox1_MouseDown;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void PictureBox1_MouseDown(object sender, MouseEventArgs e)
|
||||||
|
{
|
||||||
|
if (cursor != null)
|
||||||
|
{
|
||||||
|
if (cursor == Cursors.SizeAll)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < bands.Count(); i++)
|
||||||
|
{
|
||||||
|
PBAnalyCommMannager.band_infos _band= bands[i];
|
||||||
|
if (bands_index == i)
|
||||||
|
{
|
||||||
|
_band.thick = 2;
|
||||||
|
if(PBAnalyCommMannager.laneChartForm!=null)
|
||||||
|
PBAnalyCommMannager.laneChartForm.Draw(_band);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_band.thick = 1;
|
||||||
|
}
|
||||||
|
bands[i] = _band;
|
||||||
|
}
|
||||||
|
Draw();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void PictureBox1_MouseMove(object sender, MouseEventArgs e)
|
||||||
|
{
|
||||||
|
if (pictureBox1.Image == null) return;
|
||||||
|
#region
|
||||||
|
// 获取PictureBox的尺寸和图像的原始尺寸
|
||||||
|
float imageWidth = pictureBox1.Image.Width;
|
||||||
|
float imageHeight = pictureBox1.Image.Height;
|
||||||
|
float pictureBoxWidth = pictureBox1.Width;
|
||||||
|
float pictureBoxHeight = pictureBox1.Height;
|
||||||
|
|
||||||
|
// 计算缩放比例
|
||||||
|
float scaleX = pictureBoxWidth / imageWidth;
|
||||||
|
float scaleY = pictureBoxHeight / imageHeight;
|
||||||
|
float scale = Math.Min(scaleX, scaleY);
|
||||||
|
|
||||||
|
// 计算图像实际显示的尺寸
|
||||||
|
float displayWidth = imageWidth * scale;
|
||||||
|
float displayHeight = imageHeight * scale;
|
||||||
|
|
||||||
|
// 计算图像在PictureBox中的位置偏移
|
||||||
|
float offsetX = (pictureBoxWidth - displayWidth) / 2;
|
||||||
|
float offsetY = (pictureBoxHeight - displayHeight) / 2;
|
||||||
|
|
||||||
|
// 转换坐标
|
||||||
|
int actualX = (int)Math.Floor((e.X - offsetX) / scale);
|
||||||
|
int actualY = (int)Math.Floor((e.Y - offsetY) / scale);
|
||||||
|
|
||||||
|
this.pictureBox1.Cursor = Cursors.Default;
|
||||||
|
// 确保坐标在有效范围内
|
||||||
|
if (actualX >= 0 && actualX <= imageWidth && actualY >= 0 && actualY <= imageHeight)
|
||||||
|
{
|
||||||
|
int index = 0;
|
||||||
|
foreach (var item in bands)
|
||||||
|
{
|
||||||
|
if (actualX >= item.startX - 3 && actualX <= item.startX + 3)
|
||||||
|
{
|
||||||
|
bands_index = index;
|
||||||
|
cursor = Cursors.SizeWE;
|
||||||
|
this.pictureBox1.Cursor = Cursors.SizeWE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else if (actualX > item.startX + 3 && actualX < item.endX - 3)
|
||||||
|
{
|
||||||
|
bands_index = index;
|
||||||
|
cursor = Cursors.SizeAll;
|
||||||
|
this.pictureBox1.Cursor = Cursors.SizeAll;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else if (actualX >= item.endX - 3 && actualX <= item.endX + 3)
|
||||||
|
{
|
||||||
|
bands_index = index;
|
||||||
|
cursor = Cursors.SizeWE;
|
||||||
|
this.pictureBox1.Cursor = Cursors.SizeWE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
index++;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region 根据获得到的图像索引去找是那个矩形
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DataProcessForm_MouseDown(object sender, MouseEventArgs e)
|
||||||
|
{
|
||||||
|
|
||||||
|
PBAnalyCommMannager.processForm = this;
|
||||||
|
Console.WriteLine("切换form:"+filePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
public MaterialSkinManager Inn_materialSkinManager;
|
||||||
|
|
||||||
|
public void UIInit()
|
||||||
|
{
|
||||||
|
this.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw | ControlStyles.AllPaintingInWmPaint, true);
|
||||||
|
Inn_materialSkinManager = MaterialSkinManager.Instance; // 初始化 MaterialSkinManager 实例
|
||||||
|
Inn_materialSkinManager.AddFormToManage(this); // 将要应用 Material Design 的窗体添加到管理列表中
|
||||||
|
//Inn_materialSkinManager.Theme = MaterialSkinManager.Themes.DARK; // Theme 属性用来设置整体的主题
|
||||||
|
//Inn_materialSkinManager.ColorScheme = new ColorScheme(Primary.BlueGrey800, Primary.BlueGrey900, Primary.BlueGrey500, Accent.Cyan700, TextShade.WHITE); // ColorScheme 属性来设置配色方案
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#region 对外接口
|
||||||
|
public Mat getImage
|
||||||
|
{
|
||||||
|
get { return image; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public Mat SetImage
|
||||||
|
{
|
||||||
|
set
|
||||||
|
{
|
||||||
|
|
||||||
|
var bitmapImage = OpenCvSharp.Extensions.BitmapConverter.ToBitmap(value);
|
||||||
|
pictureBox1.Image = bitmapImage;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<PBAnalyCommMannager.band_infos> SetBands
|
||||||
|
{
|
||||||
|
set
|
||||||
|
{
|
||||||
|
this.bands = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 在原图基础上绘制泳道或者条带
|
||||||
|
/// </summary>
|
||||||
|
public void Draw()
|
||||||
|
{
|
||||||
|
Mat input_cn1 = new Mat();
|
||||||
|
image.ConvertTo(input_cn1, MatType.CV_8U, 0.00390625);
|
||||||
|
if (input_cn1.Channels() == 1)
|
||||||
|
{
|
||||||
|
Cv2.CvtColor(input_cn1, input_cn1, ColorConversionCodes.GRAY2BGR);
|
||||||
|
}
|
||||||
|
foreach (var _band in bands)
|
||||||
|
{
|
||||||
|
|
||||||
|
OpenCvSharp.Point rectStart = new OpenCvSharp.Point(_band.startX, _band.startY);
|
||||||
|
OpenCvSharp.Point rectEnd = new OpenCvSharp.Point(_band.endX, _band.endY);
|
||||||
|
Cv2.Rectangle(input_cn1, rectStart, rectEnd, _band.color, _band.thick); // 线条粗细为2
|
||||||
|
|
||||||
|
|
||||||
|
// 绘制十字形
|
||||||
|
// 十字线长度
|
||||||
|
int lineLength = 5; // 可以根据实际需求调整
|
||||||
|
float centerX = (float)(rectStart.X +(rectEnd.X - rectStart.X)/2.0);
|
||||||
|
float centerY = rectStart.Y + _band._Info.band_point[0][0];
|
||||||
|
int thickness = 1;
|
||||||
|
Scalar crossColor = new Scalar(0, 0, 255); // 红色
|
||||||
|
// 水平线
|
||||||
|
Cv2.Line(input_cn1, new OpenCvSharp.Point(centerX - lineLength, centerY), new OpenCvSharp.Point(centerX + lineLength, centerY), crossColor, thickness);
|
||||||
|
// 垂直线
|
||||||
|
Cv2.Line(input_cn1, new OpenCvSharp.Point(centerX, centerY - lineLength), new OpenCvSharp.Point(centerX, centerY + lineLength), crossColor, thickness);
|
||||||
|
|
||||||
|
// 绘制条带矩形
|
||||||
|
crossColor = new Scalar(255, 0, 0); // 蓝色
|
||||||
|
OpenCvSharp.Point rectStart1 = new OpenCvSharp.Point(_band.startX, rectStart.Y + _band._Info.band_point[0][1]);
|
||||||
|
OpenCvSharp.Point rectEnd1 = new OpenCvSharp.Point(_band.endX, rectStart.Y + _band._Info.band_point[0][2]);
|
||||||
|
Cv2.Rectangle(input_cn1, rectStart1, rectEnd1, crossColor, thickness); // 线条粗细为2
|
||||||
|
}
|
||||||
|
SetImage = input_cn1;
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
429
src/PBAnaly/DataProcessForm.resx
Normal file
@ -0,0 +1,429 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="materialButton_Load.Icon" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
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
|
||||||
|
AJIZACRJkiSNyAAAyQwAkiRJkkZkAIBkBgBJkiRJIzIAQDIDgCRJkqQRGQAgmQFAkiRJ0ogMAJDMACBJ
|
||||||
|
kiRpRAYASGYAkCRJkjQiAwAkMwBIkiRJGpEBAJIZACRJkiSNyAAAyQwAkiRJkkZkAIBkBgBJkiRJIzIA
|
||||||
|
QDIDgCRJkqQRGQAgmQFAkiRJ0ogMAJDMACBJkiRpRAYASGYAkCRJkjQiAwAkMwBIkiRJGpEBAJIZACRJ
|
||||||
|
kiSNyAAAyQwAkiRJkkZkAIBkBgBJkiRJIzIAQDIDgCRJkqQRGQAgmQFAkiRJ0ogMAJDMACBJkiRpRAYA
|
||||||
|
SGYAkCRJkjQiAwAkMwBIkiRJGpEBAJIZACRJkiSNyAAAyQwAkiRJkkZkAIBkBgBJkiRJIzIAQDIDgCRJ
|
||||||
|
kqQRGQAgmQFAkiRJ0ogMAJDMACBJkiRpRAYASGYAkCRJkjQiAwAkMwBIkiRJGpEBAJIZACRJkiSNyAAA
|
||||||
|
yQwAkiRJkkZkAIBkBgBJkiRJIzIAQDIDgCRJkqQRGQAgmQFAkiRJ0ogMAJDMACBJkiRpRAYASGYAkCRJ
|
||||||
|
kjQiAwAkMwBIkiRJGpEBAJIZACRJkiSNyAAAyQwAkiRJkkZkAIBkBgBJkiRJIzIAQDIDgCRJkqQRGQAg
|
||||||
|
mQFAkiRJ0ogMAJDMACBJkiRpRAYASGYAkCRJkjQiAwAkMwBIkiRJGpEBAJIZACRJkiSNyAAAyQwAkiRJ
|
||||||
|
kkZkAIBkBgBJkiRJIzIAQDIDgCRJkqQRGQAgmQFAkiRJ0ogMAJDMACBJkiRpRAYASGYAkCRJkjQiAwAk
|
||||||
|
MwBIkiRJGpEBAJIZACRJkiSNyAAAyQwAkiRJkkZkAIBkBgBJkiRJIzIAQDIDgCRJkqQRGQAgmQFAkiRJ
|
||||||
|
0ogMAJDMACBJkiRpRAYASGYAkCRJkjQiAwAkMwBIkiRJGpEBAJIZACRJkiSNyAAAyQwAkiRJkkZkAIBk
|
||||||
|
BgBJkiRJIzIAQDIDgCRJkqQRGQAgmQFAkiRJ0ogMAJDMACBJkiRpRAYASGYAkCRJkjQiAwAkMwBIkiRJ
|
||||||
|
GpEBAJIZACRJkiSNyAAAyQwAkiRJkkZkAIBkBgBJkiRJIzIAQDIDgCRJkqQRGQAgmQFAkiRJ0ogMAJDM
|
||||||
|
ACBJkiRpRAYASGYAkCRJkjQiAwAkMwBIkiRJGpEBAJIZACRJkiSNyAAAyQwAc/dL0b+I/nb0lOgLoidK
|
||||||
|
kiQdpM+Nnhw9I/qu6BXR+6Kt90WqnwEAkhkA5usd0bOjj4sAAFbzB6OnRa+Jtt4rqW4GAEhmAJin90an
|
||||||
|
w/8+EQDA6m6Kvjh6S7T13kn1MgBAMgPAHL0tekIEAMCd3S96cbT1Hkq1MgBAMgNA/V4dPSwCAGDb3aPn
|
||||||
|
RFvvpVQnAwAkMwDU7rXR6e/cAAC4sedFW++pVCMDACQzANTt9GV/j44AALic0ycBfizaem+l/AwAkMwA
|
||||||
|
ULfPiwAAuJr7R6fvT9p6f6XcDACQzABQsx+KAABo86XR1nss5WYAgGQGgHrdFn18BABAm5ujn4+23msp
|
||||||
|
LwMAJDMA1OsnIgAA+nx1tPVeS3kZACCZAaBeXxkBANDngdGt0db7LeVkAIBkBoB6+c1/AIB9/Ey09X5L
|
||||||
|
ORkAIJkBoFanb6wFAGAf/yzaes+lnAwAkMwAUKv/GgEAsI+vibbecyknAwAkMwDU6kciAAD28eXR1nsu
|
||||||
|
5WQAgGQGgFr9YAQAwD7+UrT1nks5GQAgmQGgVj8QAQCwDwNArQwAkMwAUCsDAADAfgwAtTIAQDIDQK0M
|
||||||
|
AAAA+zEA1MoAAMkMALUyAAAA7McAUCsDACQzANTKAAAAsB8DQK0MAJDMAFArAwAAwH4MALUyAEAyA0Ct
|
||||||
|
DAAAAPsxANTKAADJDAC1MgAAAOzHAFArAwAkMwDUygAAALAfA0CtDACQzABQKwMAAMB+DAC1MgBAMgNA
|
||||||
|
rQwAAAD7MQDUygAAyQwAtTIAAADsxwBQKwMAJDMA1MoAAACwHwNArQwAkMwAUCsDAADAfgwAtTIAQDID
|
||||||
|
QK0MAAAA+zEA1MoAAMkMALUyAAAA7McAUCsDACQzANTKAAAAsJ/HRN94gH462nrvOFsGAEhmAKiVAQAA
|
||||||
|
gIu+N9p67zhbBgBIZgColQEAAICLDADALgwAtTIAAABwkQEA2IUBoFYGAAAALjIAALswANTKAAAAwEUG
|
||||||
|
AGAXBoBaGQAAALjIAADswgBQKwMAAAAXGQCAXRgAamUAAADgIgMAsAsDQK0MAAAAXGQAAHZhAKiVAQAA
|
||||||
|
gIsMAMAuDAC1MgAAAHCRAQDYhQGgVgYAAAAuMgAAuzAA1MoAAADARQYAYBcGgFoZAAAAuMgAAOzCAFAr
|
||||||
|
AwAAABcZAIBdGABqZQAAAOAiAwCwCwNArQwAAABcZAAAdmEAqJUBAACAiwwAwC4MALUyAAAAcJEBANiF
|
||||||
|
AaBWBgAAAC4yAAC7MADUygAAAMBFBgBgFwaAWhkAAAC4yAAA7MIAUCsDAAAAFxkAgF0YAGplAAAA4CID
|
||||||
|
ALALA0CtDAAAAFxkAAB2YQColQEAAICLDADALgwAtTIAAABwkQEA2IUBoFYGAAAALjIAALswANTKAAAA
|
||||||
|
wEUGAGAXBoBaGQAAALjIAADswgBQKwMAAAAXGQCAXRgAamUAAADgIgMAsAsDQK0MAAAAXGQAAHZhAKiV
|
||||||
|
AQAAgIsMAMAuDAC1MgAAAHCRAQDYhQGgVgYAAAAuMgAAuzAA1MoAADCHn4x+VtJy/YMogwEA2IUBoFYG
|
||||||
|
AIA5/J9o6zku6dh9f5TBAADswgBQKwMAwBwMANKaGQD6MgBAMgNArQwAAHMwAEhrZgDoywAAyQwAtTIA
|
||||||
|
AMzBACCtmQGgLwMAJDMA1MoAADAHA4C0ZgaAvgwAkMwAUCsDAMAcDADSmhkA+jIAQDIDQK0MAABzMABI
|
||||||
|
a2YA6MsAAMkMALUyAADMwQAgrZkBoC8DACQzANTKAAAwBwOAtGYGgL4MAJDMAFArAwDAHAwA0poZAPoy
|
||||||
|
AEAyA0CtDAAAczAASGtmAOjLAADJDAC1MgAAzMEAIK2ZAaAvAwAkMwDUygAAMAcDgLRmBoC+DACQzABQ
|
||||||
|
KwMAwBwMANKaGQD6MgBAMgNArQwAAHMwAEhrZgDoywAAyQwAtTIAAMzBACCtmQGgLwMAJDMA1MoAADAH
|
||||||
|
A4C0ZgaAvgwAkMwAUCsDAMAcDADSmhkA+jIAQDIDQK0MAABzMABIa2YA6MsAAMkMALUyAADMwQAgrZkB
|
||||||
|
oC8DACQzANTKAAAwBwOAtGYGgL4MAJDMAFArAwDAHAwA0poZAPoyAEAyA0CtDAAAczAASGtmAOjLAADJ
|
||||||
|
DAC1MgAAzMEAIK2ZAaAvAwAkMwDUygAAMAcDgLRmBoC+DACQzABQKwMAwBwMANKaGQD6MgBAMgNArQwA
|
||||||
|
AHMwAEhrZgDoywAAyQwAtTIAAMzBACCtmQGgLwMAJDMA1MoAADAHA4C0ZgaAvgwAkMwAUCsDAMAcDADS
|
||||||
|
mhkA+jIAQDIDQK0MAABzMABIa2YA6MsAAMkMALUyAADMwQAgrZkBoC8DACQzANTKAAAwBwOAtGYGgL4M
|
||||||
|
AJDMAFArAwDAHAwA0poZAPoyAEAyA0CtDAAAczAASGtmAOjLAADJDAC1MgAAzMEAIK2ZAaAvAwAkMwDU
|
||||||
|
ygAAMAcDgLRmBoC+DACQzABQKwMAwBwMANKaGQD6MgBAMgNArQwAAHMwAEhrZgDoywAAyQwAtTIAAMzB
|
||||||
|
ACCtmQGgLwMAJDMA1MoAADAHA4C0ZgaAvgwAkMwAUCsDAMAcDADSmhkA+jIAQDIDQK0MAABzMABIa2YA
|
||||||
|
6MsAAMkMALUyAADMwQAgrZkBoC8DACQzANTKAAAwBwOAtGYGgL4MAJDMAFArAwDAHAwA0poZAPoyAEAy
|
||||||
|
A0CtDAAAczAASGtmAOjLAADJDAC1MgAAzMEAIK2ZAaAvAwAkMwDUygAAMAcDgLRmBoC+DACQzABQKwMA
|
||||||
|
wBwMANKaGQD6MgBAMgNArQwAAHMwAEhrZgDoywAAyQwAtTIAAMzBACCtmQGgLwMAJDMA1MoAADAHA4C0
|
||||||
|
ZgaAvgwAkMwAUCsDAMAcDADSmhkA+jIAQDIDQK0MAABzMABIa2YA6MsAAMkMALUyAADMwQAgrZkBoC8D
|
||||||
|
ACQzANTKAAAwBwOAtGYGgL4MAJDMAFArAwDAHAwA0poZAPoyAEAyA0CtDAAAczAASGtmAOjLAADJDAC1
|
||||||
|
MgAAzMEAIK2ZAaAvAwAkMwDUygAAMAcDgLRmBoC+DACQzABQKwMAwBwMANKaGQD6MgBAMgNArQwAAHMw
|
||||||
|
AEhrZgDoywAAyQwAtTIAAMzBACCtmQGgLwMAJDMA1MoAADAHA4C0ZgaAvgwAkMwAUCsDAMAcDADSmhkA
|
||||||
|
+jIAQDIDQK0MAABzMABIa2YA6MsAAMkMALUyAADMwQAgrZkBoC8DACQzANTKAAAwBwOAtGYGgL4MAJDM
|
||||||
|
AFArAwDAHAwA0poZAPoyAEAyA0CtDAAAczAASGtmAOjLAADJDAC1MgAAzMEAIK2ZAaAvAwAkMwDUygAA
|
||||||
|
MAcDgLRmBoC+DACQzABQKwMAwBwMANKaGQD6MgBAMgNArQwAAHMwAEhrZgDoywAAyQwAtTIAAMzBACCt
|
||||||
|
mQGgLwMAJDMA1MoAADAHA4C0ZgaAvgwAkMwAUCsDAMAcDADSmhkA+jIAQDIDQK0MAABzMABIa2YA6MsA
|
||||||
|
AMkMALUyAADMwQAgrZkBoC8DACQzANTKAAAwBwOAtGYGgL4MAJDMAFArAwDAHAwA0poZAPoyAEAyA0Ct
|
||||||
|
DAAAczAASGtmAOjLAADJDAC1MgAAzMEAIK2ZAaAvAwAkMwDUygAAMAcDgLRmBoC+DACQzABQKwMAwBwM
|
||||||
|
ANKaGQD6MgBAMgNArQwAAHMwAEhrZgDoywAAyQwAtTIAAMzBACCtmQGgLwMAJDMA1MoAADAHA4C0ZgaA
|
||||||
|
vgwAkMwAUCsDAMAcDADSmhkA+jIAQDIDQK0MAABzMABIa2YA6MsAAMkMALUyAADMwQAgrZkBoC8DACQz
|
||||||
|
ANTKAAAwBwOAtGYGgL4MAJDMAFArAwDAHAwA0poZAPoyAEAyA0CtDAAAczAASGtmAOjLAADJDAC1MgAA
|
||||||
|
zMEAIK2ZAaAvAwAkMwDUygAAMAcDgLRmBoC+DACQzABQKwMAwBwMANKaGQD6MgBAMgNArQwAAHMwAEhr
|
||||||
|
ZgDoywAAyQwAtTIAAMzBACCtmQGgLwMAJDMA1MoAADAHA4C0ZgaAvgwAkMwAUCsDAMAcDADSmhkA+jIA
|
||||||
|
QDIDQK0MAABzMABIa2YA6MsAAMkMALUyAADMwQAgrZkBoC8DACQzANTKAAAwBwOAtGYGgL4MAJDMAFAr
|
||||||
|
AwDAHAwA0poZAPoyAEAyA0CtDAAAczAASGtmAOjLAADJDAC1MgAAzMEAIK2ZAaAvAwAkMwDUygAAMAcD
|
||||||
|
gLRmBoC+DACQzABQKwMAwBwMANKaGQD6MgBAMgNArQwAAHMwAEhrZgDoywAAyQwAtTIAAMzBACCtmQGg
|
||||||
|
LwMAJDMA1MoAADAHA4C0ZgaAvgwAkMwAUCsDAMAcDADSmhkA+jIAQDIDQK0MAABzMABIa2YA6MsAAMkM
|
||||||
|
ALUyAADMwQAgrZkBoC8DACQzANTKAAAwBwOAtGYGgL4MAJDMAFArAwDAHAwA0poZAPoyAEAyA0CtDAAA
|
||||||
|
czAASGtmAOjLAADJDAC1MgAAzMEAIK2ZAaAvAwAkMwDUygAAMAcDgLRmBoC+DACQzABQKwMAwBwMANKa
|
||||||
|
GQD6MgBAMgNArQwAAHMwAEhrZgDoywAAyQwAtTIAAMzBACCtmQGgLwMAJDMA1MoAADAHA4C0ZgaAvgwA
|
||||||
|
kMwAUCsDAMAcDADSmhkA+jIAQDIDQK0MAABzMABIa2YA6MsAAMkMALUyAADMwQAgrZkBoC8DACQzANTK
|
||||||
|
AAAwBwOAtGYGgL4MAJDMAFArAwDAHAwA0poZAPoyAEAyA0CtDAAAczAASGtmAOjLAADJDAC1MgAAzMEA
|
||||||
|
IK2ZAaAvAwAkMwDUygAAMAcDgLRmBoC+DACQzABQKwMAwBwMANKaGQD6MgBAMgNArQwAAHMwAEhrZgDo
|
||||||
|
ywAAyQwAtTIAAMzBACCtmQGgLwMAJDMA1MoAADAHA4C0ZgaAvgwAkMwAUCsDAMAcDADSmhkA+jIAQDID
|
||||||
|
QK0MAABzMABIa2YA6MsAAMkMALUyAADMwQAgrZkBoC8DACQzANTKAAAwBwOAtGYGgL4MAJDMAFArAwDA
|
||||||
|
HAwA0poZAPoyAEAyA0CtDAAAczAASGtmAOjLAADJDAC1MgAAzMEAIK2ZAaAvAwAkMwDUygAAMAcDgLRm
|
||||||
|
BoC+DACQzABQKwMAwBwMANKaGQD6MgBAMgNArQwAAHMwAEhrZgDoywAAyQwAtTIAAMzBACCtmQGgLwMA
|
||||||
|
JDMA1MoAADAHA4C0ZgaAvgwAkMwAUCsDAMAcDADSmhkA+jIAQDIDQK0MAABzMABIa2YA6MsAAMkMALUy
|
||||||
|
AADMwQAgrZkBoC8DACQzANTKAAAwBwOAtGYGgL4MAJDMAFArAwDAHAwA0poZAPoyAEAyA0CtDAAAczAA
|
||||||
|
SGtmAOjLAADJDAC1MgAAzMEAIK2ZAaAvAwAkMwDUygAAMAcDgLRmBoC+DACQzABQKwMAwBwMANKaGQD6
|
||||||
|
MgBAMgNArQwAAHMwAEhrZgDoywAAyQwAtTIAAMzBACCtmQGgLwMAJDMA1MoAADAHA4C0ZgaAvgwAkMwA
|
||||||
|
UCsDAMAcDADSmhkA+jIAQDIDQK0MAABzMABIa2YA6MsAAMkMALUyAADMwQAgrZkBoC8DACQzANTKAAAw
|
||||||
|
BwOAtGYGgL4MAJDMAFArAwDAHAwA0poZAPoyAEAyA0CtDAAAczAASGtmAOjLAADJDAC1MgAAzMEAIK2Z
|
||||||
|
AaAvAwAkMwDUygAAMAcDgLRmBoC+DACQzABQKwMAwBwMANKaGQD6MgBAMgNArQwAAHMwAEhrZgDoywAA
|
||||||
|
yQwAtTIAAMzBACCtmQGgLwMAJDMA1MoAADAHA4C0ZgaAvgwAkMwAUCsDAMAcDADSmhkA+jIAQDIDQK0M
|
||||||
|
AABzMABIa2YA6MsAAMkMALUyAADMwQAgrZkBoC8DACQzANTKAAAwBwOAtGYGgL4MAJDMAFArAwDAHAwA
|
||||||
|
0poZAPoyAEAyA0CtDAAAczAASGtmAOjLAADJDAC1MgAAzMEAIK2ZAaAvAwAkMwDUygAAMAcDgLRmBoC+
|
||||||
|
DACQzABQKwMAwBwMANKaGQD6MgBAMgNArQwAAHMwAEhrZgDoywAAyQwAtTIAAMzBACCtmQGgLwMAJDMA
|
||||||
|
1MoAADAHA4C0ZgaAvgwAkMwAUCsDAMAcDADSmhkA+jIAQDIDQK0MAABzMABIa2YA6MsAAMkMALUyAADM
|
||||||
|
wQAgrZkBoC8DACQzANTKAAAwBwOAtGYGgL4MAJDMAFArAwDAHAwA0poZAPoyAEAyA0CtDAAAczAASGtm
|
||||||
|
AOjLAADJDAC1MgAAzMEAIK2ZAaAvAwAkMwDUygAAMAcDgLRmBoC+DACQzABQKwMAwBwMANKaGQD6MgBA
|
||||||
|
MgNArQwAAHMwAEhrZgDoywAAyQwAtTIAAMzBACCtmQGgLwMAJDMA1MoAADAHA4C0ZgaAvgwAkMwAUCsD
|
||||||
|
AMAcDADSmhkA+jIAQDIDQK0MAABzMABIa2YA6MsAAMkMALUyAADMwQAgrZkBoC8DACQzANTKAAAwBwOA
|
||||||
|
tGYGgL4MAJDMAFArAwDAHAwA0poZAPoyAEAyA0CtDAAAczAASGtmAOjLAADJDAC1MgAAzMEAIK2ZAaAv
|
||||||
|
AwAkMwDUygAAMAcDgLRmBoC+DACQzABQKwMAwBwMANKaGQD6MgBAMgNArQwAAHMwAEhrZgDoywAAyQwA
|
||||||
|
tTIAAMzBACCtmQGgLwMAJDMA1MoAADAHA4C0ZgaAvgwAkMwAUCsDAMAcDADSmhkA+jIAQDIDQK0MAABz
|
||||||
|
MABIa2YA6MsAAMkMALUyAADMwQAgrZkBoC8DACQzANTKAAAwBwOAtGYGgL4MAJDMAFArAwDAHAwA0poZ
|
||||||
|
APoyAEAyA0CtDAAAczAASGtmAOjLAADJDAC1MgAAzMEAIK2ZAaAvAwAkMwDUygAAMAcDgLRmBoC+DACQ
|
||||||
|
zABQKwMAwBwMANKaGQD6MgBAMgNArQwAAHMwAEhrZgDoywAAyQwAtTIAAMzBACCtmQGgLwMAJDMA1MoA
|
||||||
|
ADAHA4C0ZgaAvgwAkMwAUCsDAMAcDADSmhkA+jIAQDIDQK0MAABzMABIa2YA6MsAAMkMALUyAADMwQAg
|
||||||
|
rZkBoC8DACQzANTKAAAwBwOAtGYGgL4MAJDMAFArAwDAHAwA0poZAPoyAEAyA0CtDAAAczAASGtmAOjL
|
||||||
|
AADJDAC1MgAAzMEAIK2ZAaAvAwAkMwDUygAAMAcDgLRmBoC+DACQzABQKwMAwBwMANKaGQD6MgBAMgNA
|
||||||
|
rQwAAHMwAEhrZgDoywAAyQwAtTIAAMzBACCtmQGgLwMAJDMA1MoAADAHA4C0ZgaAvgwAkMwAUCsDAMAc
|
||||||
|
DADSmhkA+jIAQDIDQK0MAABzMABIa2YA6MsAAMkMALUyAADMwQAgrZkBoC8DACQzANTKAAAwBwOAtGYG
|
||||||
|
gL4MAJDMAFArAwDAHAwA0pplDQD/MPrlA/S1EZDIAFArAwDAHAwA0pplDQAAuzAA1MoAADAHA4C0ZgYA
|
||||||
|
YGoGgFoZAADmYACQ1swAAEzNAFArAwDAHAwA0poZAICpGQBqZQAAmIMBQFozAwAwNQNArQwAAHMwAEhr
|
||||||
|
ZgAApmYAqJUBAGAOBgBpzQwAwNQMALUyAADMwQAgrZkBAJiaAaBWBgCAORgApDUzAABTMwDUygAAMAcD
|
||||||
|
gLRmBgBgagaAWhkAAOZgAJDWzAAATM0AUCsDAMAcDADSmhkAgKkZAGplAACYgwFAWjMDADA1A0CtDAAA
|
||||||
|
czAASGtmAACmZgColQEAYA4GAGnNDADA1AwAtTIAAMzBACCtmQEAmJoBoFYGAJjH46Inatl+J9p6jks6
|
||||||
|
dv852nomaI0eFMHUDAC1MgDAPB4W/XK09X/LkiTpWP3H6J4RTM0AUCsDAMzFCCBJ0vFz/HMYBoBaGQBg
|
||||||
|
PkYASZKOm+OfQzEA1MoAAHMyAkiSdLwc/xyOAaBWBgCYlxFAkqTj5PjnkAwAtTIAwNyMAJIkzZ/jn8My
|
||||||
|
ANTKAADzMwJIkjRvjn8OzQBQKwMAHIMRQJKk+XL8c3gGgFoZAOA4jACSJM2T458lGABqZQCAYzECSJJU
|
||||||
|
P8c/yzAA1MoAAMdjBJAkqW6Of5ZiAKiVAQCOyQggSVK9HP8sxwBQKwMAHJcRQJKkOjn+WZIBoFYGADg2
|
||||||
|
I4AkSfk5/lmWAaBWBgA4PiOAJEl5Of5ZmgGgVgYAWIMRQJKk8Tn+WZ4BoFYGAFiHEUCSpHE5/iEYAGpl
|
||||||
|
AIC1GAEkSTp/jn/4IANArQwAsB4jgCRJ58vxD3dgAKiVAQDWZASQJGn/HP9wgQGgVgYAWJcRQJKk/XL8
|
||||||
|
wwYDQK0MALA2I4AkSf05/uEaDAC1MgAARgBJktpz/MN1GABqZQAATowAkiRdPcc/3IABoFYGAOB2RgBJ
|
||||||
|
ki6f4x8uwQBQKwMAcEdGAEmSbpzjHy7JAFArAwBwkRFAkqRr5/iHKzAA1MoAAGwxAkiSdNcc/3BFBoBa
|
||||||
|
GQCAazECSJL04Rz/0MAAUCsDAHA9RgBJkhz/0MwAUCsDAHAjRgBJ0so5/qGDAaBWBgDgMowAkqQVc/xD
|
||||||
|
JwNArQwAwGUZASRJK+X4hx0YAGplAACuwgggSVohxz/sxABQKwMAcFVGAEnSkXP8w44MALUyAAAtjACS
|
||||||
|
pCPm+IedGQBqZQAAWhkBJElHyvEPZ2AAqJUBAOhhBJAkHSHHP5yJAaBWBgCglxFAkjRzjn84IwNArQwA
|
||||||
|
wB6MAJKkGXP8w5kZAGplAAD2YgSQJM2U4x8GMADUygAA7MkIIEmaIcc/DGIAqJUBANibEUCSVDnHPwxk
|
||||||
|
AKiVAQA4ByOAJKlijn8YzABQKwMAcC5GAElSpRz/kMAAUCsDAHBORgBJUoUc/5DEAFArAwBwbkYASVJm
|
||||||
|
jn9IZAColQEAGMEIIEnKyPEPyQwAtTIAAKMYASRJI3P8QwEGgFoZAICRjACSpBE5/qEIA0CtDADAaEYA
|
||||||
|
SdI5c/xDIQaAWhkAgAxGAEnSOXL8QzEGgFoZAIAsRgBJ0p45/qEgA0CtDABAJiOAJGmPHP9QlAGgVgYA
|
||||||
|
IJsRQJLUk+MfCjMA1MoAAFRgBJAkteT4h+IMALUyAABVGAEkSVfJ8Q8TMADU6gcjgCo+NvqVaOt5JUnS
|
||||||
|
7Tn+YRIGgFq9KAKoxCcBJEnXy/EPEzEA1OqnIoBqfBJAkrSV4x8mYwCo1a9HABUZASRJd8zxDxMyANTr
|
||||||
|
4RFARf4cQJJ0yvEPkzIA1OvpEUBVPgkgSWvn+IeJGQDq9fIIoDIjgCStmeMfJmcAqNmfiAAq8+cAkrRW
|
||||||
|
jn84AANAzV4SAVTnkwCStEaOfzgIA0DdnhwBVGcEkKRj5/iHAzEA1O1d0SdEANX5cwBJOmaOfzgYA0Dt
|
||||||
|
Tm+oHxgBVOeTAJJ0rBz/cEAGgPq9LvqjEUB1PgkgScfI8Q8HZQCYo3dEnxUBVOeTAJI0d45/ODADwDy9
|
||||||
|
P/qe6EERQGVGAEmaM8c/HJwBYL7eHf3z6JOjmyKAiowAkjRXjn9YgAFg7n49Oj2svz16RvSl0ennAyWp
|
||||||
|
tT8c7cUIIElz5PiHRRgAJEl37PXRQ6O9+GJASaqd4x8WYgCQJF3MCCBJa+T4h8UYACRJWxkBJOnYOf5h
|
||||||
|
QQYASdK1MgJI0jFz/MOiDACSpOtlBJCkY+X4h4UZACRJN8oIIEnHyPEPizMASJIukxFAkubO8Q8YACRJ
|
||||||
|
l84IIElz5vgHfp8BQJJ0lYwAkjRXjn/gQwwAkqSrZgSQpDly/AN3YgCQJLVkBJCk2jn+gbswAEiSWjMC
|
||||||
|
SFLNHP/AJgOAJKknI4Ak1crxD1yTAUCS1JsRQJJq5PgHrssAIEnaIyOAJOXm+AduyAAgSdorI4Ak5eT4
|
||||||
|
By7FACBJ2jMjgCSNzfEPXJoBQJK0d0YASRqT4x+4EgOAJOkcGQEk6bw5/oErMwBIks6VEUCSzpPjH2hi
|
||||||
|
AJAknTMjgCTtm+MfaGYAkCSdOyOAJO2T4x/oYgCQJI3ICCBJfTn+gW4GAEnSqIwAktSW4x/YhQFAkjQy
|
||||||
|
I4AkXS3HP7AbA4AkaXRGAEm6XI5/YFcGAElSRkYASbp+jn9gdwYASVJWRgBJ2s7xD5yFAUCSlJkRQJLu
|
||||||
|
nOMfOBsDgCQpOyOAJH0gxz9wVgYASVKFjACSVs/xD5ydAUCSVCUjgKRVc/wDQxgAJEmVMgJIWi3HPzCM
|
||||||
|
AUCSVC0jgKRVcvwDQxkAJEkVMwJIOnqOf2A4A4AkqWpGAElHzfEPpDAASJIqZwSQdLQc/0AaA4AkqXpG
|
||||||
|
AElHyfEPpDIASJJmyAggafYc/0A6A4AkaZaMAJJmzfEPlGAAkCTNlBFA0mw5/oEyDACSpNkyAkiaJcc/
|
||||||
|
UIoBQJI0Y0YASdVz/APlGAAkSbNmBJBUNcc/UJIBQJI0c0YASdVy/ANlGQAkSbNnBJBUJcc/UJoBQJJ0
|
||||||
|
hIwAkrJz/APlGQAkSUfJCCApK8c/MAUDgCTpSBkBJI3O8Q9MwwAgSTpaRgBJo3L8A1MxAEiSjpgRQNK5
|
||||||
|
c/wD0zEASJKOmhFA0rly/ANTMgBIko6cEUDS3jn+gWkZACRJR88IIGmvHP/A1AwAkqQVMgJI6s3xD0zP
|
||||||
|
ACBJWiUjgKTWHP/AIRgAJEkrZQSQdNUc/8BhGAAkSatlBJB02Rz/wKEYACRJK2YEkHSjHP/A4RgAJEmr
|
||||||
|
ZgSQdK0c/8AhGQAkSStnBJB0Mcc/cFgGAEnS6hkBJN2e4x84NAOAJElGAEmOf2ABBgBJkj6QEUBaN8c/
|
||||||
|
sAQDgCRJH84IIK2X4x9YhgFAkqQ7ZwSQ1snxDyzFACBJ0l0zAkjHz/EPLMcAIEnSdkYA6bg5/oElGQAk
|
||||||
|
Sbp2RgDpeDn+gWUZACRJun5GAOk4Of6BpRkAJEm6cUYAaf4c/8DyPiHaekBKkqQ7t/cI8LHRr0Rb/7Mk
|
||||||
|
7ZvjHyA8Ktp6SEqSpLvmkwDSfDn+AT7oftHWg1KSJG3nkwDSPDn+AS54a7T1wJQkSdsZAaT6Of4BNvxw
|
||||||
|
tPXQlCRJ186fA0h1c/wDXMNTo60HpyRJun4+CSDVy/EPcB1/IHpPtPUAlSRJ188IINXJ8Q9wCd8dbT1E
|
||||||
|
JUnSjfPnAFJ+jn+AS3pI9K5o62EqSZJunE8CSHk5/gGu6JnR1gNVkiRdLiOAND7HP0CjF0RbD1ZJknS5
|
||||||
|
/DmANC7HP0CHe0Uvj7YesJIk6XL5JIB0/hz/ADu4b/SyaOtBK0mSLpcRQDpfjn+AHd0jenZ0a7T10JUk
|
||||||
|
STfuNAKcvmh3L0YAyfEPcDaPj34i2nr4SpKkG2cEkPbL8Q8wwBOi50dvi7YexpIk6doZAaT+HP8ACR4T
|
||||||
|
fVH0rOhboudIkqQb9tRoT0YArZTjHwAAWJqfCNQKOf4BAACCEUBHzvEPAABwB0YAHTHHPwAAwAYjgI6U
|
||||||
|
4x8AAOA6jAA6Qo5/AACASzACaOYc/wAAAFdgBNCMOf4BAAAaGAE0U45/AACADkYAzZDjHwAAYAdGAFXO
|
||||||
|
8Q8AALAjI4Aq5vgHAAA4AyOAKuX4BwAAOCMjgCrk+AcAABjACKDMHP8AAAADGQGUkeMfAAAggRFAI3P8
|
||||||
|
AwAAJDICaESOfwAAgAKMADpnjn8AAIBCjAA6R45/AACAgowA2jPHPwAAQGFGAO2R4x8AAGACRgD15PgH
|
||||||
|
AACYiBFALTn+AQAAJmQE0FVy/AMAAEzMCKDL5PgHAAA4ACOArpfjHwAA4ECMANrK8Q8AAHBARgDdMcc/
|
||||||
|
AADAgRkBdMrxDwAAsAAjwNo5/gEAABZiBFgzxz8AAMCCjABr5fgHAABYmBFgjRz/AAAAGAEOnuMfAACA
|
||||||
|
DzECHDPHPwAAAHdhBDhWjn8AAACuyQhwjBz/AAAA3JARYO4c/wAAAFyaEWDOHP8AAABcmRFgrhz/AAAA
|
||||||
|
NDMCzJHjHwAAgG5GgNo5/gEAANiNEaBmjn8AAAB2ZwSoleMfAACAszEC1MjxDwAAwNkZAXJz/AMAADCM
|
||||||
|
ESAnxz8AAADDGQHG5vgHAAAgjRFgTI5/AAAA0hkBzpvjHwAAgDKMAOfJ8Q8AAEA5RoB9c/wDAABQlhFg
|
||||||
|
nxz/AAAAlGcE6MvxDwAAwDSMAG05/gEAAJiOEeBqOf4BAACYlhHgcjn+AQAAmJ4R4Po5/gEAADgMI8B2
|
||||||
|
jn8AAAAOxwhw5xz/AAAAHJYR4AM5/gEAADi81UcAxz8AAADLWHUEcPwDAACwnNVGAMc/AAAAy1plBHD8
|
||||||
|
AwAAsLyjjwCOfwAAAPigo44Ajn8AAAC44GgjgOMfAAAAruEoI4DjHwAAAG5g9hHA8Q8AAACXNOsI4PgH
|
||||||
|
AACAK5ptBHD8AwAAQKNZRgDHPwAAAHSqPgI4/gEAAGAnVUcAxz8AAADsrNoI4PgHAACAM6kyAjj+AQAA
|
||||||
|
4MyyRwDHPwAAAAySNQI4/gEAAGCw0SOA4x8AAACSjBoBHP8AAACQ7NwjgOMfAAAAijjXCOD4BwAAgGL2
|
||||||
|
HgEc/wAAAFDUXiOA4x8AAACK6x0BHP8AAAAwidYRwPEPAAAAk7nqCOD4BwAAgElddgRw/AMAAMDkbjQC
|
||||||
|
OP4BAADgIK41Ajj+AQAA4GAujgCOfwAAADio20cAxz8AAAAc3EMixz8AAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc7nb
|
||||||
|
3f4/vwXOM7HXEWEAAAAASUVORK5CYII=
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<data name="materialFloatingActionButton_Plus.Icon" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABGdBTUEAALGPC/xhBQAAArZJREFUaEPt
|
||||||
|
mMtqFkEQhf+FcWNIVDAI6k5NBBfe4sZ3MCr4JhJ1n6jrGFwZ9CFc5aIg+AK6SMSVqBvxgkR0pe130qch
|
||||||
|
hsykozP/BfqDQ2aqa6qqk56e6nQKhUKh0LeEEE6hW2gFraHvlq6X0U00Yff+gaIm0VOUywt0yY/3DooY
|
||||||
|
Qg/QbyQ+owV0GY2jfZaup5DGviChZ+bRkMN1FxIfRM+Q+IFm0IiHK8FnFM36GaG/3AEPdwcS6jeflswH
|
||||||
|
NOmhbHjmDHqrAPAc7fVQ+5BMy0a8Q0ds3jV6Fr1XIJi3uV1IdBFp/WoJnLN5Wxi/Lvl2Wxi/gH4ixTxv
|
||||||
|
c3uQJK37GZsqsV/wbSW43I2eYcWmdiCB9nmh3Sbnhd3At5Xgohc77U7jNjcPwW/HHOGhTbXYd8cJCNwe
|
||||||
|
Re8wbVPzEFxfUzFlUy32zZ3A1egdlmxqHoK/iTnCcZtqsW/uBPSxE2s2NQ/B12OOMGzTBtxrt9ktf+1O
|
||||||
|
3A9Hc1i3qXkUPOZoZQIj0Ry+2dQ8BH8dc4QTNtVi39wlNBG9w6pNzUPwNl/ia9E7LNrUPARXPy8WbKrF
|
||||||
|
vrkTeBy9ww2bmofg6c+sD9mozZVE150ngMt+lD5kJ21uBxKkLnTWpkrslzOBe9EzLNvUHiRR85Waudrm
|
||||||
|
i/GcZk6nOTVzv1Btc9gYJNJJSnxE/9NOH0WpnZ6zuX1Ipj5eh3XxCf3LgeYs6v6BhkRj6JWyQpqElsAd
|
||||||
|
lPNi64XVmtczQv/B6M6RkkSH0EtlhVV0DN1H6VCvnURd5RWkHUvtgaRrNWvaKr8ioTU/h/Y4fLuQaGvx
|
||||||
|
hz2ksdPoiQYy0QexOy+sIFll8ZvBro5yGi3ZT72TpOtFpLF29/mtkDCr+L6EYkvxPYFiS/E9gWIHuvjN
|
||||||
|
X1j9HPPQYKCCXfjgFZ/wJAaz+EKhUOgCnc4fDoTrsg1LNtUAAAAASUVORK5CYII=
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<data name="materialFloatingActionButton_Minus.Icon" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABGdBTUEAALGPC/xhBQAAApJJREFUaEPt
|
||||||
|
mE1LVkEcxZ9Ftkm0giSodpUGLXqzTd8hK/CbhNVeq7VJq6Q+RCtfCoK+QC00WkW1iV4Io1Y1/Y5zBkQQ
|
||||||
|
r96Z5wXmBwfvc+be859H5879XzuVSqVS6VtCCOfQXbSK1tEvS8cr6A6a8On9A5OaRC9QU16ja768dzCJ
|
||||||
|
IfQY/UPiG1pE19E4OmTpeApp7DsSumYBDTmuu1D4KHqJxG80i0Y8vCOcM4rmfI3QX+6Ih7sDBfWbT0vm
|
||||||
|
M5r0UGO45gL6oAB4hQ56qDwU07IRH9EJ23tG16JPCoIF22Wh0FWk9aslcMn2viHjCvrjzMu2y0GRtO5n
|
||||||
|
bbWGrAcxMqzaKgMFtM8L7Ta73rBNIUs3dtqdxm3nh/B7sUZ4YisbZD6N0WHGVn4I19NUTNnKBpk3Y3RY
|
||||||
|
tpUfwt/HGuG0rWyQqYedWLeVH8I3Yo0wbGsTPk9He09M+/JN+Dwc7bBhKz8KjzWKfIGRaIeftvJD+LtY
|
||||||
|
I5yxlQ0yJ2J0WLOVH8JL3sS3YnRYspUfwtXPi0Vb2SDzWYwOt23lh/D0Z9aDbNR2a8g6jNKD7KztMlAg
|
||||||
|
daFztlpD1sMYGVZslYMiar5SM9e6+SJDb3Nq5v6i1s1hIyikNynxBbVpp0+i1E7P2y4PxdTH62VdfEX7
|
||||||
|
eaG5iLr/QkOhMfRWVSF9CS2B+2jXG5tzdMNqzesaof9gdOeVkkLH0BtVhTV0Cj1C6aVeO4m6yhtIO5ba
|
||||||
|
A0nHata0Vf5AQmt+Hh1wfFkotH3yxz2ksfPouQYaogdid25YQbEdJ78VfHWUM2jZ56l3knS8hDRWdp/f
|
||||||
|
DgUbTb4vYbJ18j2BydbJ9wQmO9CT3/qE1c8xDw0GmrAnPniTT/hLDObkK5VKpQt0Ov8B5C6OuhEACIYA
|
||||||
|
AAAASUVORK5CYII=
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
BIN
src/PBAnaly/GS-Analy.ico
Normal file
After Width: | Height: | Size: 15 KiB |
127
src/PBAnaly/LaneChartForm.Designer.cs
generated
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
namespace PBAnaly
|
||||||
|
{
|
||||||
|
partial class LaneChartForm
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea2 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
|
||||||
|
System.Windows.Forms.DataVisualization.Charting.Legend legend2 = new System.Windows.Forms.DataVisualization.Charting.Legend();
|
||||||
|
System.Windows.Forms.DataVisualization.Charting.Series series2 = new System.Windows.Forms.DataVisualization.Charting.Series();
|
||||||
|
System.Windows.Forms.DataVisualization.Charting.DataPoint dataPoint5 = new System.Windows.Forms.DataVisualization.Charting.DataPoint(1D, 5D);
|
||||||
|
System.Windows.Forms.DataVisualization.Charting.DataPoint dataPoint6 = new System.Windows.Forms.DataVisualization.Charting.DataPoint(1.5D, 5D);
|
||||||
|
System.Windows.Forms.DataVisualization.Charting.DataPoint dataPoint7 = new System.Windows.Forms.DataVisualization.Charting.DataPoint(1.9D, 8D);
|
||||||
|
System.Windows.Forms.DataVisualization.Charting.DataPoint dataPoint8 = new System.Windows.Forms.DataVisualization.Charting.DataPoint(0D, 0D);
|
||||||
|
this.menuStrip1 = new System.Windows.Forms.MenuStrip();
|
||||||
|
this.文件ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.选项ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.chart1 = new System.Windows.Forms.DataVisualization.Charting.Chart();
|
||||||
|
this.menuStrip1.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.chart1)).BeginInit();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// menuStrip1
|
||||||
|
//
|
||||||
|
this.menuStrip1.ImageScalingSize = new System.Drawing.Size(20, 20);
|
||||||
|
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.文件ToolStripMenuItem,
|
||||||
|
this.选项ToolStripMenuItem});
|
||||||
|
this.menuStrip1.Location = new System.Drawing.Point(3, 24);
|
||||||
|
this.menuStrip1.Name = "menuStrip1";
|
||||||
|
this.menuStrip1.Padding = new System.Windows.Forms.Padding(4, 2, 0, 2);
|
||||||
|
this.menuStrip1.Size = new System.Drawing.Size(899, 25);
|
||||||
|
this.menuStrip1.TabIndex = 0;
|
||||||
|
this.menuStrip1.Text = "menuStrip1";
|
||||||
|
//
|
||||||
|
// 文件ToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.文件ToolStripMenuItem.Name = "文件ToolStripMenuItem";
|
||||||
|
this.文件ToolStripMenuItem.Size = new System.Drawing.Size(44, 21);
|
||||||
|
this.文件ToolStripMenuItem.Text = "文件";
|
||||||
|
//
|
||||||
|
// 选项ToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.选项ToolStripMenuItem.Name = "选项ToolStripMenuItem";
|
||||||
|
this.选项ToolStripMenuItem.Size = new System.Drawing.Size(44, 21);
|
||||||
|
this.选项ToolStripMenuItem.Text = "选项";
|
||||||
|
//
|
||||||
|
// chart1
|
||||||
|
//
|
||||||
|
chartArea2.Name = "ChartArea1";
|
||||||
|
this.chart1.ChartAreas.Add(chartArea2);
|
||||||
|
this.chart1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
legend2.Name = "Legend1";
|
||||||
|
this.chart1.Legends.Add(legend2);
|
||||||
|
this.chart1.Location = new System.Drawing.Point(3, 49);
|
||||||
|
this.chart1.Margin = new System.Windows.Forms.Padding(2);
|
||||||
|
this.chart1.Name = "chart1";
|
||||||
|
this.chart1.Palette = System.Windows.Forms.DataVisualization.Charting.ChartColorPalette.Bright;
|
||||||
|
series2.ChartArea = "ChartArea1";
|
||||||
|
series2.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.FastLine;
|
||||||
|
series2.Legend = "Legend1";
|
||||||
|
series2.Name = "Series1";
|
||||||
|
series2.Points.Add(dataPoint5);
|
||||||
|
series2.Points.Add(dataPoint6);
|
||||||
|
series2.Points.Add(dataPoint7);
|
||||||
|
series2.Points.Add(dataPoint8);
|
||||||
|
this.chart1.Series.Add(series2);
|
||||||
|
this.chart1.Size = new System.Drawing.Size(899, 366);
|
||||||
|
this.chart1.TabIndex = 1;
|
||||||
|
this.chart1.Text = "chart1";
|
||||||
|
this.chart1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.chart1_MouseDown);
|
||||||
|
this.chart1.MouseUp += new System.Windows.Forms.MouseEventHandler(this.chart1_MouseUp);
|
||||||
|
//
|
||||||
|
// LaneChartForm
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(905, 418);
|
||||||
|
this.Controls.Add(this.chart1);
|
||||||
|
this.Controls.Add(this.menuStrip1);
|
||||||
|
this.DrawerAutoShow = true;
|
||||||
|
this.FormStyle = MaterialSkin.Controls.MaterialForm.FormStyles.ActionBar_None;
|
||||||
|
this.MainMenuStrip = this.menuStrip1;
|
||||||
|
this.Margin = new System.Windows.Forms.Padding(2);
|
||||||
|
this.Name = "LaneChartForm";
|
||||||
|
this.Padding = new System.Windows.Forms.Padding(3, 24, 3, 3);
|
||||||
|
this.Text = "LaneChartForm";
|
||||||
|
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.LaneChartForm_FormClosing);
|
||||||
|
this.menuStrip1.ResumeLayout(false);
|
||||||
|
this.menuStrip1.PerformLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.chart1)).EndInit();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private System.Windows.Forms.MenuStrip menuStrip1;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem 文件ToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem 选项ToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.DataVisualization.Charting.Chart chart1;
|
||||||
|
}
|
||||||
|
}
|
252
src/PBAnaly/LaneChartForm.cs
Normal file
@ -0,0 +1,252 @@
|
|||||||
|
using MaterialSkin.Controls;
|
||||||
|
using PBBiologyVC;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using System.Windows.Forms.DataVisualization.Charting;
|
||||||
|
using System.Windows.Markup;
|
||||||
|
using System.Xml.Linq;
|
||||||
|
using static PBAnaly.Module.PBAnalyCommMannager;
|
||||||
|
|
||||||
|
namespace PBAnaly
|
||||||
|
{
|
||||||
|
public partial class LaneChartForm : MaterialForm
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
public LaneChartForm()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Draw(band_infos band_info)
|
||||||
|
{
|
||||||
|
chart1.ChartAreas.Clear();
|
||||||
|
chart1.Series.Clear();
|
||||||
|
chart1.Annotations.Clear();
|
||||||
|
ChartArea chartArea = new ChartArea();
|
||||||
|
chartArea.AxisX.Minimum = 0;
|
||||||
|
chartArea.AxisX.Maximum = 1;
|
||||||
|
|
||||||
|
var xdata = band_info._Info.xdata;
|
||||||
|
var ydata = band_info._Info.ydata;
|
||||||
|
float maxY = ydata.Max();
|
||||||
|
double maxX = xdata[ydata.IndexOf(maxY)];
|
||||||
|
curmaxY = maxY;
|
||||||
|
curmaxX = maxX;
|
||||||
|
// 显著增加Y轴的显示范围以确保箭头可见
|
||||||
|
chartArea.AxisY.Minimum = 0; // 适当设置以显示更低的值
|
||||||
|
chartArea.AxisY.Maximum = maxY * 1.3; // 增加额外空间显示箭头
|
||||||
|
|
||||||
|
chart1.ChartAreas.Add(chartArea);
|
||||||
|
|
||||||
|
Series series = new Series
|
||||||
|
{
|
||||||
|
ChartType = SeriesChartType.Line,
|
||||||
|
BorderWidth = 2
|
||||||
|
};
|
||||||
|
|
||||||
|
for (int i = 0; i < xdata.Count; i++)
|
||||||
|
{
|
||||||
|
series.Points.AddXY(xdata[i], ydata[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
chart1.Series.Add(series);
|
||||||
|
|
||||||
|
// 确保箭头和标注在可见范围
|
||||||
|
chart1.ResetAutoValues();
|
||||||
|
|
||||||
|
// 创建一个显著可见的箭头注释
|
||||||
|
ArrowAnnotation arrow = new ArrowAnnotation();
|
||||||
|
arrow.ArrowSize = 2; // 增大箭头大小
|
||||||
|
arrow.ArrowStyle = ArrowStyle.Simple;
|
||||||
|
arrow.LineColor = Color.Black; // 使用红色以增加可见性
|
||||||
|
arrow.LineWidth = 2; // 增加线宽
|
||||||
|
arrow.AnchorDataPoint = series.Points.FindByValue(maxY); // 直接锚定到最大值点
|
||||||
|
arrow.Height = 10; // 增加箭头长度
|
||||||
|
arrow.Width = 0; // 宽度为0
|
||||||
|
arrow.AllowMoving = false; // 允许移动
|
||||||
|
arrow.IsSizeAlwaysRelative = false; // 设置大小不总是相对的,以便可拖动
|
||||||
|
|
||||||
|
chart1.Annotations.Add(arrow);
|
||||||
|
|
||||||
|
|
||||||
|
int x = band_info._Info.band_point[0][1];
|
||||||
|
int x1 = band_info._Info.band_point[0][2];
|
||||||
|
float curY = ydata[x];
|
||||||
|
float curY1 = ydata[x1];
|
||||||
|
float curX = xdata[x];
|
||||||
|
//// 添加括号的文本注释
|
||||||
|
TextAnnotation leftBracket = new TextAnnotation();
|
||||||
|
leftBracket.Name = "left";
|
||||||
|
leftBracket.Text = "[";
|
||||||
|
leftBracket.Font = new Font("Arial", 12, FontStyle.Regular); // 设置字体样式
|
||||||
|
leftBracket.ForeColor = Color.Black;
|
||||||
|
var da = series.Points.FindAllByValue(curY);
|
||||||
|
foreach (var d in da)
|
||||||
|
{
|
||||||
|
if (d.XValue == curX)
|
||||||
|
{
|
||||||
|
leftBracket.AnchorDataPoint = d; // 直接锚定到最大值点
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
//leftBracket.AnchorDataPoint = series.Points.FindAllByValue*.FindByValue(curY); // 直接锚定到最大值点
|
||||||
|
leftBracket.Height = 1; // 增加箭头长度
|
||||||
|
leftBracket.Width =10; // 宽度为0
|
||||||
|
|
||||||
|
|
||||||
|
chart1.Annotations.Add(leftBracket);
|
||||||
|
|
||||||
|
TextAnnotation reghtBracket = new TextAnnotation();
|
||||||
|
reghtBracket.Name = "right";
|
||||||
|
reghtBracket.Text = "]";
|
||||||
|
reghtBracket.Font = new Font("Arial", 12, FontStyle.Regular); // 设置字体样式
|
||||||
|
reghtBracket.ForeColor = Color.Black;
|
||||||
|
reghtBracket.AnchorDataPoint = series.Points.FindByValue(curY1); // 直接锚定到最大值点
|
||||||
|
reghtBracket.Height = 1; // 增加箭头长度
|
||||||
|
reghtBracket.Width = 10; // 宽度为0
|
||||||
|
|
||||||
|
|
||||||
|
chart1.Annotations.Add(reghtBracket);
|
||||||
|
|
||||||
|
chart1.MouseMove += chart1_MouseMove;
|
||||||
|
|
||||||
|
}
|
||||||
|
private bool isAnnotationMoving = false;
|
||||||
|
private Annotation selectedAnnotation = null;
|
||||||
|
private PointF startLocation;
|
||||||
|
private float curmaxY = 0;
|
||||||
|
private double curmaxX = 0;
|
||||||
|
|
||||||
|
private void chart1_MouseMove(object sender, MouseEventArgs e)
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
var hit = chart1.HitTest(e.X, e.Y, ChartElementType.Annotation);
|
||||||
|
|
||||||
|
if (hit.ChartElementType == ChartElementType.Annotation)
|
||||||
|
{
|
||||||
|
var annotation = hit.Object as Annotation;
|
||||||
|
if (annotation != null)
|
||||||
|
{
|
||||||
|
if (annotation.Name == "left" || annotation.Name == "right")
|
||||||
|
{
|
||||||
|
chart1.Cursor = Cursors.SizeWE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
chart1.Cursor = Cursors.Default;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (isAnnotationMoving && selectedAnnotation != null)
|
||||||
|
{
|
||||||
|
double xVal = 0;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
xVal = chart1.ChartAreas[0].AxisX.PixelPositionToValue(e.X);
|
||||||
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (selectedAnnotation.Name == "left")
|
||||||
|
{
|
||||||
|
if (xVal < 0 || xVal > curmaxX)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (selectedAnnotation.Name == "right")
|
||||||
|
{
|
||||||
|
if (xVal < curmaxX || xVal> 1)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
int index = FindClosestPointIndex(xVal);
|
||||||
|
|
||||||
|
if (index != -1)
|
||||||
|
{
|
||||||
|
selectedAnnotation.AnchorDataPoint = chart1.Series[0].Points[index];
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private int FindClosestPointIndex(double xVal)
|
||||||
|
{
|
||||||
|
Series series = chart1.Series[0];
|
||||||
|
double minDistance = double.MaxValue;
|
||||||
|
int closestIndex = -1;
|
||||||
|
|
||||||
|
for (int i = 0; i < series.Points.Count; i++)
|
||||||
|
{
|
||||||
|
double distance = Math.Abs(series.Points[i].XValue - xVal);
|
||||||
|
if (distance < minDistance)
|
||||||
|
{
|
||||||
|
minDistance = distance;
|
||||||
|
closestIndex = i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return closestIndex;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void chart1_MouseDown(object sender, MouseEventArgs e)
|
||||||
|
{
|
||||||
|
var hit = chart1.HitTest(e.X, e.Y, ChartElementType.Annotation);
|
||||||
|
|
||||||
|
if (hit.ChartElementType == ChartElementType.Annotation)
|
||||||
|
{
|
||||||
|
var annotation = hit.Object as Annotation;
|
||||||
|
if (annotation != null)
|
||||||
|
{
|
||||||
|
if (annotation.Name == "left" || annotation.Name == "right")
|
||||||
|
{
|
||||||
|
chart1.Cursor = Cursors.SizeWE;
|
||||||
|
isAnnotationMoving = true;
|
||||||
|
selectedAnnotation = annotation;
|
||||||
|
startLocation = new PointF(e.X, e.Y);
|
||||||
|
Console.WriteLine(annotation.Name);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void chart1_MouseUp(object sender, MouseEventArgs e)
|
||||||
|
{
|
||||||
|
if (isAnnotationMoving)
|
||||||
|
{
|
||||||
|
isAnnotationMoving = false;
|
||||||
|
selectedAnnotation = null;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void LaneChartForm_FormClosing(object sender, FormClosingEventArgs e)
|
||||||
|
{
|
||||||
|
this.Hide();//窗体只被隐藏不被关闭
|
||||||
|
e.Cancel = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
123
src/PBAnaly/LaneChartForm.resx
Normal file
@ -0,0 +1,123 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>17, 17</value>
|
||||||
|
</metadata>
|
||||||
|
</root>
|
133
src/PBAnaly/LogForm.Designer.cs
generated
Normal file
@ -0,0 +1,133 @@
|
|||||||
|
namespace PBAnaly
|
||||||
|
{
|
||||||
|
partial class LogForm
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||||
|
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||||
|
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||||
|
this.panel1 = new System.Windows.Forms.Panel();
|
||||||
|
this.Log_dataGridView = new System.Windows.Forms.DataGridView();
|
||||||
|
this.Item = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||||
|
this.Description = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||||
|
this.Time = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||||
|
this.panel1.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.Log_dataGridView)).BeginInit();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// panel1
|
||||||
|
//
|
||||||
|
this.panel1.Controls.Add(this.Log_dataGridView);
|
||||||
|
this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.panel1.Location = new System.Drawing.Point(3, 64);
|
||||||
|
this.panel1.Name = "panel1";
|
||||||
|
this.panel1.Size = new System.Drawing.Size(670, 349);
|
||||||
|
this.panel1.TabIndex = 0;
|
||||||
|
//
|
||||||
|
// Log_dataGridView
|
||||||
|
//
|
||||||
|
this.Log_dataGridView.BackgroundColor = System.Drawing.Color.DimGray;
|
||||||
|
dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
|
||||||
|
dataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.ControlDarkDark;
|
||||||
|
dataGridViewCellStyle1.Font = new System.Drawing.Font("新細明體", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(136)));
|
||||||
|
dataGridViewCellStyle1.ForeColor = System.Drawing.SystemColors.Control;
|
||||||
|
dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight;
|
||||||
|
dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.ControlDarkDark;
|
||||||
|
dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
|
||||||
|
this.Log_dataGridView.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1;
|
||||||
|
this.Log_dataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||||
|
this.Log_dataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
|
||||||
|
this.Item,
|
||||||
|
this.Description,
|
||||||
|
this.Time});
|
||||||
|
dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
|
||||||
|
dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.WindowFrame;
|
||||||
|
dataGridViewCellStyle2.Font = new System.Drawing.Font("新細明體", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(136)));
|
||||||
|
dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.ActiveCaptionText;
|
||||||
|
dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.ControlLightLight;
|
||||||
|
dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.ControlText;
|
||||||
|
dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
|
||||||
|
this.Log_dataGridView.DefaultCellStyle = dataGridViewCellStyle2;
|
||||||
|
this.Log_dataGridView.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.Log_dataGridView.GridColor = System.Drawing.SystemColors.Control;
|
||||||
|
this.Log_dataGridView.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.Log_dataGridView.Name = "Log_dataGridView";
|
||||||
|
dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
|
||||||
|
dataGridViewCellStyle3.BackColor = System.Drawing.SystemColors.ControlText;
|
||||||
|
dataGridViewCellStyle3.Font = new System.Drawing.Font("新細明體", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(136)));
|
||||||
|
dataGridViewCellStyle3.ForeColor = System.Drawing.SystemColors.WindowText;
|
||||||
|
dataGridViewCellStyle3.SelectionBackColor = System.Drawing.SystemColors.Highlight;
|
||||||
|
dataGridViewCellStyle3.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
|
||||||
|
dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
|
||||||
|
this.Log_dataGridView.RowHeadersDefaultCellStyle = dataGridViewCellStyle3;
|
||||||
|
this.Log_dataGridView.RowHeadersVisible = false;
|
||||||
|
this.Log_dataGridView.RowTemplate.Height = 24;
|
||||||
|
this.Log_dataGridView.Size = new System.Drawing.Size(670, 349);
|
||||||
|
this.Log_dataGridView.TabIndex = 0;
|
||||||
|
//
|
||||||
|
// Item
|
||||||
|
//
|
||||||
|
this.Item.HeaderText = "Item";
|
||||||
|
this.Item.Name = "Item";
|
||||||
|
//
|
||||||
|
// Description
|
||||||
|
//
|
||||||
|
this.Description.HeaderText = "Description";
|
||||||
|
this.Description.Name = "Description";
|
||||||
|
this.Description.Width = 400;
|
||||||
|
//
|
||||||
|
// Time
|
||||||
|
//
|
||||||
|
this.Time.HeaderText = "Time";
|
||||||
|
this.Time.Name = "Time";
|
||||||
|
this.Time.Width = 150;
|
||||||
|
//
|
||||||
|
// LogForm
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.AutoSize = true;
|
||||||
|
this.ClientSize = new System.Drawing.Size(676, 416);
|
||||||
|
this.Controls.Add(this.panel1);
|
||||||
|
this.Name = "LogForm";
|
||||||
|
this.Text = "LogForm";
|
||||||
|
this.panel1.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.Log_dataGridView)).EndInit();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private System.Windows.Forms.Panel panel1;
|
||||||
|
private System.Windows.Forms.DataGridView Log_dataGridView;
|
||||||
|
private System.Windows.Forms.DataGridViewTextBoxColumn Item;
|
||||||
|
private System.Windows.Forms.DataGridViewTextBoxColumn Description;
|
||||||
|
private System.Windows.Forms.DataGridViewTextBoxColumn Time;
|
||||||
|
}
|
||||||
|
}
|
74
src/PBAnaly/LogForm.cs
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using MaterialSkin;
|
||||||
|
using MaterialSkin.Controls;
|
||||||
|
|
||||||
|
namespace PBAnaly
|
||||||
|
{
|
||||||
|
public partial class LogForm : MaterialForm
|
||||||
|
{
|
||||||
|
string Inner_UserID;
|
||||||
|
public LogForm(MaterialSkinManager materialSkinManager,string UserID)
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
Inner_UserID = UserID;
|
||||||
|
UIInit();
|
||||||
|
LoadLogToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
public MaterialSkinManager Inn_materialSkinManager;
|
||||||
|
|
||||||
|
public void UIInit()
|
||||||
|
{
|
||||||
|
this.Text = string.Format("Current User : {0}", Inner_UserID);
|
||||||
|
//this.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw | ControlStyles.AllPaintingInWmPaint, true);
|
||||||
|
Inn_materialSkinManager = MaterialSkinManager.Instance; // 初始化 MaterialSkinManager 实例
|
||||||
|
//Inn_materialSkinManager.AddFormToManage(this); // 将要应用 Material Design 的窗体添加到管理列表中
|
||||||
|
//Inn_materialSkinManager.Theme = MaterialSkinManager.Themes.DARK; // Theme 属性用来设置整体的主题
|
||||||
|
//Inn_materialSkinManager.ColorScheme = new ColorScheme(Primary.BlueGrey800, Primary.BlueGrey900, Primary.BlueGrey500, Accent.Cyan700, TextShade.WHITE); // ColorScheme 属性来设置配色方案
|
||||||
|
|
||||||
|
if (Inn_materialSkinManager.Theme == MaterialSkinManager.Themes.DARK)
|
||||||
|
{
|
||||||
|
Log_dataGridView.DefaultCellStyle.BackColor = Color.DimGray;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Log_dataGridView.DefaultCellStyle.BackColor = Color.LightGray;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void LoadLogToList()
|
||||||
|
{
|
||||||
|
// Save Log Information
|
||||||
|
Read_Write_Log read_Write_Log = new Read_Write_Log();
|
||||||
|
string SaveLogFile = read_Write_Log.LogFile;
|
||||||
|
|
||||||
|
List<Log> OldLog = new List<Log>();
|
||||||
|
if (File.Exists(SaveLogFile))
|
||||||
|
{
|
||||||
|
OldLog = read_Write_Log.ReadCsv(SaveLogFile);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (OldLog != null && OldLog.Count > 0)
|
||||||
|
{
|
||||||
|
int count = 0;
|
||||||
|
foreach (var item in OldLog)
|
||||||
|
{
|
||||||
|
if(Inner_UserID == item.UserID)
|
||||||
|
{
|
||||||
|
Log_dataGridView.Rows.Insert(count, item.ITEM, item.Description, item.Time);
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
129
src/PBAnaly/LogForm.resx
Normal file
@ -0,0 +1,129 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<metadata name="Item.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>True</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="Description.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>True</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="Time.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>True</value>
|
||||||
|
</metadata>
|
||||||
|
</root>
|
181
src/PBAnaly/LoginForm.Designer.cs
generated
Normal file
@ -0,0 +1,181 @@
|
|||||||
|
namespace PBAnaly
|
||||||
|
{
|
||||||
|
partial class LoginForm
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
this.userName_materialTextBox = new MaterialSkin.Controls.MaterialTextBox2();
|
||||||
|
this.password_materialTextBox = new MaterialSkin.Controls.MaterialTextBox2();
|
||||||
|
this.Login_materialButton = new MaterialSkin.Controls.MaterialButton();
|
||||||
|
this.SIGNIN_materialButton = new MaterialSkin.Controls.MaterialButton();
|
||||||
|
this.rememberme_materialCheckbox = new MaterialSkin.Controls.MaterialCheckbox();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// userName_materialTextBox
|
||||||
|
//
|
||||||
|
this.userName_materialTextBox.AnimateReadOnly = false;
|
||||||
|
this.userName_materialTextBox.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
|
||||||
|
this.userName_materialTextBox.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal;
|
||||||
|
this.userName_materialTextBox.Depth = 0;
|
||||||
|
this.userName_materialTextBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel);
|
||||||
|
this.userName_materialTextBox.HideSelection = true;
|
||||||
|
this.userName_materialTextBox.LeadingIcon = null;
|
||||||
|
this.userName_materialTextBox.Location = new System.Drawing.Point(59, 90);
|
||||||
|
this.userName_materialTextBox.MaxLength = 32767;
|
||||||
|
this.userName_materialTextBox.MouseState = MaterialSkin.MouseState.OUT;
|
||||||
|
this.userName_materialTextBox.Name = "userName_materialTextBox";
|
||||||
|
this.userName_materialTextBox.PasswordChar = '\0';
|
||||||
|
this.userName_materialTextBox.PrefixSuffixText = null;
|
||||||
|
this.userName_materialTextBox.ReadOnly = false;
|
||||||
|
this.userName_materialTextBox.RightToLeft = System.Windows.Forms.RightToLeft.No;
|
||||||
|
this.userName_materialTextBox.SelectedText = "";
|
||||||
|
this.userName_materialTextBox.SelectionLength = 0;
|
||||||
|
this.userName_materialTextBox.SelectionStart = 0;
|
||||||
|
this.userName_materialTextBox.ShortcutsEnabled = true;
|
||||||
|
this.userName_materialTextBox.Size = new System.Drawing.Size(342, 48);
|
||||||
|
this.userName_materialTextBox.TabIndex = 0;
|
||||||
|
this.userName_materialTextBox.TabStop = false;
|
||||||
|
this.userName_materialTextBox.Text = "User Name";
|
||||||
|
this.userName_materialTextBox.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
|
||||||
|
this.userName_materialTextBox.TrailingIcon = null;
|
||||||
|
this.userName_materialTextBox.UseSystemPasswordChar = false;
|
||||||
|
this.userName_materialTextBox.Click += new System.EventHandler(this.userName_materialTextBox_Click);
|
||||||
|
//
|
||||||
|
// password_materialTextBox
|
||||||
|
//
|
||||||
|
this.password_materialTextBox.AnimateReadOnly = false;
|
||||||
|
this.password_materialTextBox.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
|
||||||
|
this.password_materialTextBox.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal;
|
||||||
|
this.password_materialTextBox.Depth = 0;
|
||||||
|
this.password_materialTextBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel);
|
||||||
|
this.password_materialTextBox.HideSelection = true;
|
||||||
|
this.password_materialTextBox.LeadingIcon = null;
|
||||||
|
this.password_materialTextBox.Location = new System.Drawing.Point(59, 158);
|
||||||
|
this.password_materialTextBox.MaxLength = 32767;
|
||||||
|
this.password_materialTextBox.MouseState = MaterialSkin.MouseState.OUT;
|
||||||
|
this.password_materialTextBox.Name = "password_materialTextBox";
|
||||||
|
this.password_materialTextBox.PasswordChar = '*';
|
||||||
|
this.password_materialTextBox.PrefixSuffixText = null;
|
||||||
|
this.password_materialTextBox.ReadOnly = false;
|
||||||
|
this.password_materialTextBox.RightToLeft = System.Windows.Forms.RightToLeft.No;
|
||||||
|
this.password_materialTextBox.SelectedText = "";
|
||||||
|
this.password_materialTextBox.SelectionLength = 0;
|
||||||
|
this.password_materialTextBox.SelectionStart = 0;
|
||||||
|
this.password_materialTextBox.ShortcutsEnabled = true;
|
||||||
|
this.password_materialTextBox.Size = new System.Drawing.Size(342, 48);
|
||||||
|
this.password_materialTextBox.TabIndex = 1;
|
||||||
|
this.password_materialTextBox.TabStop = false;
|
||||||
|
this.password_materialTextBox.Text = "Password";
|
||||||
|
this.password_materialTextBox.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
|
||||||
|
this.password_materialTextBox.TrailingIcon = null;
|
||||||
|
this.password_materialTextBox.UseSystemPasswordChar = false;
|
||||||
|
this.password_materialTextBox.Click += new System.EventHandler(this.password_materialTextBox_Click);
|
||||||
|
//
|
||||||
|
// Login_materialButton
|
||||||
|
//
|
||||||
|
this.Login_materialButton.AutoSize = false;
|
||||||
|
this.Login_materialButton.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||||
|
this.Login_materialButton.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default;
|
||||||
|
this.Login_materialButton.Depth = 0;
|
||||||
|
this.Login_materialButton.HighEmphasis = true;
|
||||||
|
this.Login_materialButton.Icon = null;
|
||||||
|
this.Login_materialButton.Location = new System.Drawing.Point(59, 256);
|
||||||
|
this.Login_materialButton.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6);
|
||||||
|
this.Login_materialButton.MouseState = MaterialSkin.MouseState.HOVER;
|
||||||
|
this.Login_materialButton.Name = "Login_materialButton";
|
||||||
|
this.Login_materialButton.NoAccentTextColor = System.Drawing.Color.Empty;
|
||||||
|
this.Login_materialButton.Size = new System.Drawing.Size(147, 36);
|
||||||
|
this.Login_materialButton.TabIndex = 2;
|
||||||
|
this.Login_materialButton.Text = "Login";
|
||||||
|
this.Login_materialButton.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained;
|
||||||
|
this.Login_materialButton.UseAccentColor = false;
|
||||||
|
this.Login_materialButton.UseVisualStyleBackColor = true;
|
||||||
|
this.Login_materialButton.Click += new System.EventHandler(this.Login_materialButton_Click);
|
||||||
|
//
|
||||||
|
// SIGNIN_materialButton
|
||||||
|
//
|
||||||
|
this.SIGNIN_materialButton.AutoSize = false;
|
||||||
|
this.SIGNIN_materialButton.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||||
|
this.SIGNIN_materialButton.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default;
|
||||||
|
this.SIGNIN_materialButton.Depth = 0;
|
||||||
|
this.SIGNIN_materialButton.HighEmphasis = true;
|
||||||
|
this.SIGNIN_materialButton.Icon = null;
|
||||||
|
this.SIGNIN_materialButton.Location = new System.Drawing.Point(254, 256);
|
||||||
|
this.SIGNIN_materialButton.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6);
|
||||||
|
this.SIGNIN_materialButton.MouseState = MaterialSkin.MouseState.HOVER;
|
||||||
|
this.SIGNIN_materialButton.Name = "SIGNIN_materialButton";
|
||||||
|
this.SIGNIN_materialButton.NoAccentTextColor = System.Drawing.Color.Empty;
|
||||||
|
this.SIGNIN_materialButton.Size = new System.Drawing.Size(147, 36);
|
||||||
|
this.SIGNIN_materialButton.TabIndex = 3;
|
||||||
|
this.SIGNIN_materialButton.Text = "Sign In";
|
||||||
|
this.SIGNIN_materialButton.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained;
|
||||||
|
this.SIGNIN_materialButton.UseAccentColor = false;
|
||||||
|
this.SIGNIN_materialButton.UseVisualStyleBackColor = true;
|
||||||
|
this.SIGNIN_materialButton.Click += new System.EventHandler(this.SIGNIN_materialButton_Click);
|
||||||
|
//
|
||||||
|
// rememberme_materialCheckbox
|
||||||
|
//
|
||||||
|
this.rememberme_materialCheckbox.AutoSize = true;
|
||||||
|
this.rememberme_materialCheckbox.Depth = 0;
|
||||||
|
this.rememberme_materialCheckbox.Location = new System.Drawing.Point(59, 213);
|
||||||
|
this.rememberme_materialCheckbox.Margin = new System.Windows.Forms.Padding(0);
|
||||||
|
this.rememberme_materialCheckbox.MouseLocation = new System.Drawing.Point(-1, -1);
|
||||||
|
this.rememberme_materialCheckbox.MouseState = MaterialSkin.MouseState.HOVER;
|
||||||
|
this.rememberme_materialCheckbox.Name = "rememberme_materialCheckbox";
|
||||||
|
this.rememberme_materialCheckbox.ReadOnly = false;
|
||||||
|
this.rememberme_materialCheckbox.Ripple = true;
|
||||||
|
this.rememberme_materialCheckbox.Size = new System.Drawing.Size(137, 37);
|
||||||
|
this.rememberme_materialCheckbox.TabIndex = 4;
|
||||||
|
this.rememberme_materialCheckbox.Text = "Remember Me";
|
||||||
|
this.rememberme_materialCheckbox.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// LoginForm
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(462, 318);
|
||||||
|
this.Controls.Add(this.rememberme_materialCheckbox);
|
||||||
|
this.Controls.Add(this.SIGNIN_materialButton);
|
||||||
|
this.Controls.Add(this.Login_materialButton);
|
||||||
|
this.Controls.Add(this.password_materialTextBox);
|
||||||
|
this.Controls.Add(this.userName_materialTextBox);
|
||||||
|
this.Name = "LoginForm";
|
||||||
|
this.Text = "Login";
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private MaterialSkin.Controls.MaterialTextBox2 userName_materialTextBox;
|
||||||
|
private MaterialSkin.Controls.MaterialTextBox2 password_materialTextBox;
|
||||||
|
private MaterialSkin.Controls.MaterialButton Login_materialButton;
|
||||||
|
private MaterialSkin.Controls.MaterialButton SIGNIN_materialButton;
|
||||||
|
private MaterialSkin.Controls.MaterialCheckbox rememberme_materialCheckbox;
|
||||||
|
}
|
||||||
|
}
|
349
src/PBAnaly/LoginForm.cs
Normal file
@ -0,0 +1,349 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using MaterialSkin;
|
||||||
|
using MaterialSkin.Controls;
|
||||||
|
using Microsoft.VisualBasic.FileIO;
|
||||||
|
|
||||||
|
namespace PBAnaly
|
||||||
|
{
|
||||||
|
public partial class LoginForm : MaterialForm
|
||||||
|
{
|
||||||
|
private MaterialSkinManager materialSkinManager;
|
||||||
|
private SignInForm signInForm;
|
||||||
|
private MainForm mainForm;
|
||||||
|
|
||||||
|
public LoginForm()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
this.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw | ControlStyles.AllPaintingInWmPaint, true);
|
||||||
|
materialSkinManager = MaterialSkinManager.Instance; // 初始化 MaterialSkinManager 实例
|
||||||
|
materialSkinManager.AddFormToManage(this); // 将要应用 Material Design 的窗体添加到管理列表中
|
||||||
|
materialSkinManager.Theme = MaterialSkinManager.Themes.DARK; // Theme 属性用来设置整体的主题
|
||||||
|
materialSkinManager.ColorScheme = new ColorScheme(Primary.BlueGrey800, Primary.BlueGrey900, Primary.BlueGrey500, Accent.Indigo700, TextShade.WHITE); // ColorScheme 属性来设置配色方案
|
||||||
|
|
||||||
|
signInForm = null;
|
||||||
|
mainForm = null;
|
||||||
|
|
||||||
|
string LoginFile = Global.mDataUser + "UserLogin.csv";
|
||||||
|
|
||||||
|
if (File.Exists(LoginFile))
|
||||||
|
ReadCsv_Per(LoginFile);
|
||||||
|
|
||||||
|
this.FormClosing += LoginForm_FormClosing;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void userName_materialTextBox_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
userName_materialTextBox.Text = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
private void password_materialTextBox_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
password_materialTextBox.Text = "";
|
||||||
|
password_materialTextBox.PasswordChar = '*';
|
||||||
|
password_materialTextBox.UseSystemPasswordChar = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SIGNIN_materialButton_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (signInForm == null)
|
||||||
|
{
|
||||||
|
signInForm = new SignInForm(this);
|
||||||
|
signInForm.FormClosing += SignInForm_FormClosing;
|
||||||
|
signInForm.TopMost = true;
|
||||||
|
signInForm?.Show();
|
||||||
|
|
||||||
|
this.Visible = false;
|
||||||
|
//this.Close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SignInForm_FormClosing(object sender, FormClosingEventArgs e)
|
||||||
|
{
|
||||||
|
signInForm?.Dispose();
|
||||||
|
signInForm = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void LoginForm_FormClosing(object sender, FormClosingEventArgs e)
|
||||||
|
{
|
||||||
|
this?.Dispose();
|
||||||
|
this.Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Login_materialButton_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
bool LoginSuccess = true;
|
||||||
|
|
||||||
|
string userName_str = userName_materialTextBox.Text;
|
||||||
|
string password_str = password_materialTextBox.Text;
|
||||||
|
|
||||||
|
List<UserInfo> loginUser = new List<UserInfo>();
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(userName_str) || string.IsNullOrEmpty(password_str))
|
||||||
|
{
|
||||||
|
MessageBox.Show("User ID or Password is empty ,Please Check!!", "Login Error");
|
||||||
|
LoginSuccess = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!LoginSuccess)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (userName_str.Equals("admin") && password_str.Equals("000000"))
|
||||||
|
{
|
||||||
|
Autholity autholity = Autholity.admin;
|
||||||
|
if (mainForm == null)
|
||||||
|
{
|
||||||
|
mainForm = new MainForm(this, autholity, "admin");
|
||||||
|
mainForm.TopMost = true;
|
||||||
|
mainForm?.Show();
|
||||||
|
this.Close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
string FileName = Global.mDataUser + "UserInfo.csv";
|
||||||
|
|
||||||
|
if (!File.Exists(FileName))
|
||||||
|
{
|
||||||
|
MessageBox.Show("No signin User Data, please sign in first!!", "Login Error");
|
||||||
|
LoginSuccess = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var GetCurrentUserInfo = ReadCsv(FileName);
|
||||||
|
|
||||||
|
bool Find_Str = false;
|
||||||
|
bool Find_Password = false;
|
||||||
|
|
||||||
|
string Find_UserID = "";
|
||||||
|
Autholity Find_autholity = Autholity.Normal;
|
||||||
|
|
||||||
|
foreach (var item in GetCurrentUserInfo)
|
||||||
|
{
|
||||||
|
if (item.UserID.Equals(userName_str))
|
||||||
|
{
|
||||||
|
Find_Str = true;
|
||||||
|
|
||||||
|
if (item.Password.Equals(password_str))
|
||||||
|
{
|
||||||
|
Find_Password = true;
|
||||||
|
Find_UserID = item.UserID;
|
||||||
|
Find_autholity = item.autholity;
|
||||||
|
|
||||||
|
loginUser.Add(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!Find_Str && !Find_Password)
|
||||||
|
{
|
||||||
|
MessageBox.Show("This User ID hasn't been registered, please sign in first!!", "Login Error");
|
||||||
|
LoginSuccess = false;
|
||||||
|
}
|
||||||
|
else if (Find_Str && !Find_Password)
|
||||||
|
{
|
||||||
|
MessageBox.Show("Wrong ID or Password, please check!!", "Login Error");
|
||||||
|
LoginSuccess = false;
|
||||||
|
}
|
||||||
|
else if (!Find_Str && Find_Password)
|
||||||
|
{
|
||||||
|
MessageBox.Show("Wrong ID or Password, please check!!", "Login Error");
|
||||||
|
LoginSuccess = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
LoginSuccess = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!LoginSuccess)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//Login Success
|
||||||
|
|
||||||
|
//Save Login Information
|
||||||
|
string LoginFile = Global.mDataUser + "UserLogin.csv";
|
||||||
|
if (!File.Exists(FileName))
|
||||||
|
{
|
||||||
|
if (!Directory.Exists(Global.mDataUser))
|
||||||
|
{
|
||||||
|
Directory.CreateDirectory(Global.mDataUser);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
WriteCsv(LoginFile, loginUser, rememberme_materialCheckbox.Checked);
|
||||||
|
|
||||||
|
|
||||||
|
// Save Log Information
|
||||||
|
Read_Write_Log read_Write_Log = new Read_Write_Log();
|
||||||
|
string SaveLogFile = read_Write_Log.LogFile;
|
||||||
|
|
||||||
|
|
||||||
|
List<Log> OldLog = new List<Log>();
|
||||||
|
if (File.Exists(SaveLogFile))
|
||||||
|
{
|
||||||
|
OldLog = read_Write_Log.ReadCsv(SaveLogFile);
|
||||||
|
}
|
||||||
|
|
||||||
|
string dateTime = DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss");
|
||||||
|
OldLog.Add(new Log() { UserID = Find_UserID, ITEM = "登入", Description = "登入系统", Time = dateTime });
|
||||||
|
|
||||||
|
read_Write_Log.WriteCsv(SaveLogFile, OldLog);
|
||||||
|
|
||||||
|
if (mainForm == null)
|
||||||
|
{
|
||||||
|
mainForm = new MainForm(this, Find_autholity, Find_UserID);
|
||||||
|
mainForm.TopMost = false;
|
||||||
|
mainForm?.Show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<UserInfo> ReadCsv_Per(string FilePath)
|
||||||
|
{
|
||||||
|
List<UserInfo> returnInfo = new List<UserInfo>();
|
||||||
|
|
||||||
|
using (TextFieldParser parser = new TextFieldParser(FilePath))
|
||||||
|
{
|
||||||
|
parser.TextFieldType = FieldType.Delimited;
|
||||||
|
parser.SetDelimiters(",");
|
||||||
|
// Read and parse each line of the CSV file
|
||||||
|
try
|
||||||
|
{
|
||||||
|
while (!parser.EndOfData)
|
||||||
|
{
|
||||||
|
string[] fields = parser.ReadFields();
|
||||||
|
int count = 0;
|
||||||
|
Autholity autholity = Autholity.admin;
|
||||||
|
string UserId = "";
|
||||||
|
string Email = "";
|
||||||
|
string PassWord = "";
|
||||||
|
foreach (var item in fields)
|
||||||
|
{
|
||||||
|
if ((count % 5) == 0)
|
||||||
|
{
|
||||||
|
Enum.TryParse(item, out autholity);
|
||||||
|
}
|
||||||
|
else if ((count % 5) == 1)
|
||||||
|
{
|
||||||
|
UserId = item;
|
||||||
|
}
|
||||||
|
else if ((count % 5) == 2)
|
||||||
|
{
|
||||||
|
Email = item;
|
||||||
|
}
|
||||||
|
else if ((count % 5) == 3)
|
||||||
|
{
|
||||||
|
PassWord = item;
|
||||||
|
returnInfo.Add(new UserInfo() { autholity = autholity, UserID = UserId, E_Mail = Email, Password = PassWord });
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
bool.TryParse(item, out bool result);
|
||||||
|
|
||||||
|
if (result)
|
||||||
|
{
|
||||||
|
userName_materialTextBox.Text = UserId;
|
||||||
|
password_materialTextBox.Text = PassWord;
|
||||||
|
|
||||||
|
rememberme_materialCheckbox.Checked = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
parser.Close();
|
||||||
|
return returnInfo;
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<UserInfo> ReadCsv(string FilePath)
|
||||||
|
{
|
||||||
|
List<UserInfo> returnInfo = new List<UserInfo>();
|
||||||
|
|
||||||
|
using (TextFieldParser parser = new TextFieldParser(FilePath))
|
||||||
|
{
|
||||||
|
parser.TextFieldType = FieldType.Delimited;
|
||||||
|
parser.SetDelimiters(",");
|
||||||
|
// Read and parse each line of the CSV file
|
||||||
|
try
|
||||||
|
{
|
||||||
|
while (!parser.EndOfData)
|
||||||
|
{
|
||||||
|
string[] fields = parser.ReadFields();
|
||||||
|
int count = 0;
|
||||||
|
Autholity autholity = Autholity.admin;
|
||||||
|
string UserId = "";
|
||||||
|
string Email = "";
|
||||||
|
string PassWord = "";
|
||||||
|
foreach (var item in fields)
|
||||||
|
{
|
||||||
|
if ((count % 4) == 0)
|
||||||
|
{
|
||||||
|
Enum.TryParse(item, out autholity);
|
||||||
|
}
|
||||||
|
else if ((count % 4) == 1)
|
||||||
|
{
|
||||||
|
UserId = item;
|
||||||
|
}
|
||||||
|
else if ((count % 4) == 2)
|
||||||
|
{
|
||||||
|
Email = item;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
PassWord = item;
|
||||||
|
returnInfo.Add(new UserInfo() { autholity = autholity, UserID = UserId, E_Mail = Email, Password = PassWord });
|
||||||
|
}
|
||||||
|
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
parser.Close();
|
||||||
|
return returnInfo;
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void WriteCsv(string FilePath, List<UserInfo> userInfos, bool RememberOrNot)
|
||||||
|
{
|
||||||
|
using (var file = new StreamWriter(FilePath))
|
||||||
|
{
|
||||||
|
foreach (var item in userInfos)
|
||||||
|
{
|
||||||
|
file.WriteLineAsync($"{item.autholity},{item.UserID},{item.E_Mail},{item.Password},{RememberOrNot}");
|
||||||
|
}
|
||||||
|
|
||||||
|
file.Close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
120
src/PBAnaly/LoginForm.resx
Normal file
@ -0,0 +1,120 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
714
src/PBAnaly/MainForm.Designer.cs
generated
Normal file
@ -0,0 +1,714 @@
|
|||||||
|
namespace PBAnaly
|
||||||
|
{
|
||||||
|
partial class MainForm
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
this.components = new System.ComponentModel.Container();
|
||||||
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
|
||||||
|
this.metroPanel_RightTop = new MetroFramework.Controls.MetroPanel();
|
||||||
|
this.materialButton_log = new MaterialSkin.Controls.MaterialButton();
|
||||||
|
this.materialButton_setting = new MaterialSkin.Controls.MaterialButton();
|
||||||
|
this.materialButton_curveimage = new MaterialSkin.Controls.MaterialButton();
|
||||||
|
this.materialButton_analyzedata = new MaterialSkin.Controls.MaterialButton();
|
||||||
|
this.materialButton_outimage = new MaterialSkin.Controls.MaterialButton();
|
||||||
|
this.materialButton_LoadData = new MaterialSkin.Controls.MaterialButton();
|
||||||
|
this.materialButton_forward = new MaterialSkin.Controls.MaterialButton();
|
||||||
|
this.materialButton_return = new MaterialSkin.Controls.MaterialButton();
|
||||||
|
this.materialButton_save = new MaterialSkin.Controls.MaterialButton();
|
||||||
|
this.materialButton_inverse = new MaterialSkin.Controls.MaterialButton();
|
||||||
|
this.materialButton_resetImage = new MaterialSkin.Controls.MaterialButton();
|
||||||
|
this.materialButton_imageInfo = new MaterialSkin.Controls.MaterialButton();
|
||||||
|
this.materialButton_fakeColor = new MaterialSkin.Controls.MaterialButton();
|
||||||
|
this.materialButton_imageChange = new MaterialSkin.Controls.MaterialButton();
|
||||||
|
this.materialButton_changeFormSize = new MaterialSkin.Controls.MaterialButton();
|
||||||
|
this.materialButton_miniAnalyze = new MaterialSkin.Controls.MaterialButton();
|
||||||
|
this.materialButton_roiAnalyze = new MaterialSkin.Controls.MaterialButton();
|
||||||
|
this.materialButton_dotcounts = new MaterialSkin.Controls.MaterialButton();
|
||||||
|
this.materialButton_acidAnalyze = new MaterialSkin.Controls.MaterialButton();
|
||||||
|
this.materialButton_correction = new MaterialSkin.Controls.MaterialButton();
|
||||||
|
this.materialButton_imageProcess = new MaterialSkin.Controls.MaterialButton();
|
||||||
|
this.CompanyIcon_pictureBox = new System.Windows.Forms.PictureBox();
|
||||||
|
this.btnStartUpToolTip = new System.Windows.Forms.ToolTip(this.components);
|
||||||
|
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
|
||||||
|
this.tl_right_main_view = new System.Windows.Forms.TableLayoutPanel();
|
||||||
|
this.DataProcess_panel = new ReaLTaiizor.Controls.Panel();
|
||||||
|
this.flowLayoutPanel1 = new AntdUI.In.FlowLayoutPanel();
|
||||||
|
this.flowLayoutPanel2 = new AntdUI.In.FlowLayoutPanel();
|
||||||
|
this.pl_right = new ReaLTaiizor.Controls.Panel();
|
||||||
|
this.metroPanel_RightTop.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.CompanyIcon_pictureBox)).BeginInit();
|
||||||
|
this.tableLayoutPanel1.SuspendLayout();
|
||||||
|
this.tl_right_main_view.SuspendLayout();
|
||||||
|
this.flowLayoutPanel1.SuspendLayout();
|
||||||
|
this.flowLayoutPanel2.SuspendLayout();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// metroPanel_RightTop
|
||||||
|
//
|
||||||
|
this.metroPanel_RightTop.BackColor = System.Drawing.SystemColors.ButtonShadow;
|
||||||
|
this.metroPanel_RightTop.Controls.Add(this.materialButton_log);
|
||||||
|
this.metroPanel_RightTop.Controls.Add(this.materialButton_setting);
|
||||||
|
this.metroPanel_RightTop.Controls.Add(this.materialButton_curveimage);
|
||||||
|
this.metroPanel_RightTop.Controls.Add(this.materialButton_analyzedata);
|
||||||
|
this.metroPanel_RightTop.Controls.Add(this.materialButton_outimage);
|
||||||
|
this.metroPanel_RightTop.Controls.Add(this.materialButton_LoadData);
|
||||||
|
this.metroPanel_RightTop.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.metroPanel_RightTop.HorizontalScrollbarBarColor = true;
|
||||||
|
this.metroPanel_RightTop.HorizontalScrollbarHighlightOnWheel = false;
|
||||||
|
this.metroPanel_RightTop.HorizontalScrollbarSize = 7;
|
||||||
|
this.metroPanel_RightTop.Location = new System.Drawing.Point(210, 0);
|
||||||
|
this.metroPanel_RightTop.Margin = new System.Windows.Forms.Padding(0);
|
||||||
|
this.metroPanel_RightTop.Name = "metroPanel_RightTop";
|
||||||
|
this.metroPanel_RightTop.Size = new System.Drawing.Size(559, 55);
|
||||||
|
this.metroPanel_RightTop.TabIndex = 12;
|
||||||
|
this.metroPanel_RightTop.Theme = MetroFramework.MetroThemeStyle.Dark;
|
||||||
|
this.metroPanel_RightTop.UseCustomBackColor = true;
|
||||||
|
this.metroPanel_RightTop.VerticalScrollbarBarColor = true;
|
||||||
|
this.metroPanel_RightTop.VerticalScrollbarHighlightOnWheel = false;
|
||||||
|
this.metroPanel_RightTop.VerticalScrollbarSize = 7;
|
||||||
|
//
|
||||||
|
// materialButton_log
|
||||||
|
//
|
||||||
|
this.materialButton_log.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||||
|
this.materialButton_log.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default;
|
||||||
|
this.materialButton_log.Depth = 0;
|
||||||
|
this.materialButton_log.Dock = System.Windows.Forms.DockStyle.Left;
|
||||||
|
this.materialButton_log.HighEmphasis = true;
|
||||||
|
this.materialButton_log.Icon = ((System.Drawing.Image)(resources.GetObject("materialButton_log.Icon")));
|
||||||
|
this.materialButton_log.Location = new System.Drawing.Point(581, 0);
|
||||||
|
this.materialButton_log.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
|
||||||
|
this.materialButton_log.MouseState = MaterialSkin.MouseState.HOVER;
|
||||||
|
this.materialButton_log.Name = "materialButton_log";
|
||||||
|
this.materialButton_log.NoAccentTextColor = System.Drawing.Color.Empty;
|
||||||
|
this.materialButton_log.Size = new System.Drawing.Size(113, 55);
|
||||||
|
this.materialButton_log.TabIndex = 19;
|
||||||
|
this.materialButton_log.Text = "操作日志";
|
||||||
|
this.materialButton_log.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained;
|
||||||
|
this.materialButton_log.UseAccentColor = false;
|
||||||
|
this.materialButton_log.UseVisualStyleBackColor = true;
|
||||||
|
this.materialButton_log.Click += new System.EventHandler(this.materialButton_log_Click);
|
||||||
|
//
|
||||||
|
// materialButton_setting
|
||||||
|
//
|
||||||
|
this.materialButton_setting.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||||
|
this.materialButton_setting.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default;
|
||||||
|
this.materialButton_setting.Depth = 0;
|
||||||
|
this.materialButton_setting.Dock = System.Windows.Forms.DockStyle.Left;
|
||||||
|
this.materialButton_setting.HighEmphasis = true;
|
||||||
|
this.materialButton_setting.Icon = ((System.Drawing.Image)(resources.GetObject("materialButton_setting.Icon")));
|
||||||
|
this.materialButton_setting.Location = new System.Drawing.Point(468, 0);
|
||||||
|
this.materialButton_setting.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
|
||||||
|
this.materialButton_setting.MouseState = MaterialSkin.MouseState.HOVER;
|
||||||
|
this.materialButton_setting.Name = "materialButton_setting";
|
||||||
|
this.materialButton_setting.NoAccentTextColor = System.Drawing.Color.Empty;
|
||||||
|
this.materialButton_setting.Size = new System.Drawing.Size(113, 55);
|
||||||
|
this.materialButton_setting.TabIndex = 18;
|
||||||
|
this.materialButton_setting.Text = "系统设置";
|
||||||
|
this.materialButton_setting.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained;
|
||||||
|
this.materialButton_setting.UseAccentColor = false;
|
||||||
|
this.materialButton_setting.UseVisualStyleBackColor = true;
|
||||||
|
this.materialButton_setting.Click += new System.EventHandler(this.materialButton_setting_Click);
|
||||||
|
//
|
||||||
|
// materialButton_curveimage
|
||||||
|
//
|
||||||
|
this.materialButton_curveimage.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||||
|
this.materialButton_curveimage.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default;
|
||||||
|
this.materialButton_curveimage.Depth = 0;
|
||||||
|
this.materialButton_curveimage.Dock = System.Windows.Forms.DockStyle.Left;
|
||||||
|
this.materialButton_curveimage.Enabled = false;
|
||||||
|
this.materialButton_curveimage.HighEmphasis = true;
|
||||||
|
this.materialButton_curveimage.Icon = ((System.Drawing.Image)(resources.GetObject("materialButton_curveimage.Icon")));
|
||||||
|
this.materialButton_curveimage.Location = new System.Drawing.Point(339, 0);
|
||||||
|
this.materialButton_curveimage.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
|
||||||
|
this.materialButton_curveimage.MouseState = MaterialSkin.MouseState.HOVER;
|
||||||
|
this.materialButton_curveimage.Name = "materialButton_curveimage";
|
||||||
|
this.materialButton_curveimage.NoAccentTextColor = System.Drawing.Color.Empty;
|
||||||
|
this.materialButton_curveimage.Size = new System.Drawing.Size(129, 55);
|
||||||
|
this.materialButton_curveimage.TabIndex = 17;
|
||||||
|
this.materialButton_curveimage.Text = "泳道波形图";
|
||||||
|
this.materialButton_curveimage.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained;
|
||||||
|
this.materialButton_curveimage.UseAccentColor = false;
|
||||||
|
this.materialButton_curveimage.UseVisualStyleBackColor = true;
|
||||||
|
this.materialButton_curveimage.Click += new System.EventHandler(this.materialButton_curveimage_Click);
|
||||||
|
//
|
||||||
|
// materialButton_analyzedata
|
||||||
|
//
|
||||||
|
this.materialButton_analyzedata.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||||
|
this.materialButton_analyzedata.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default;
|
||||||
|
this.materialButton_analyzedata.Depth = 0;
|
||||||
|
this.materialButton_analyzedata.Dock = System.Windows.Forms.DockStyle.Left;
|
||||||
|
this.materialButton_analyzedata.Enabled = false;
|
||||||
|
this.materialButton_analyzedata.HighEmphasis = true;
|
||||||
|
this.materialButton_analyzedata.Icon = ((System.Drawing.Image)(resources.GetObject("materialButton_analyzedata.Icon")));
|
||||||
|
this.materialButton_analyzedata.Location = new System.Drawing.Point(226, 0);
|
||||||
|
this.materialButton_analyzedata.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
|
||||||
|
this.materialButton_analyzedata.MouseState = MaterialSkin.MouseState.HOVER;
|
||||||
|
this.materialButton_analyzedata.Name = "materialButton_analyzedata";
|
||||||
|
this.materialButton_analyzedata.NoAccentTextColor = System.Drawing.Color.Empty;
|
||||||
|
this.materialButton_analyzedata.Size = new System.Drawing.Size(113, 55);
|
||||||
|
this.materialButton_analyzedata.TabIndex = 16;
|
||||||
|
this.materialButton_analyzedata.Text = "分析数据";
|
||||||
|
this.materialButton_analyzedata.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained;
|
||||||
|
this.materialButton_analyzedata.UseAccentColor = false;
|
||||||
|
this.materialButton_analyzedata.UseVisualStyleBackColor = true;
|
||||||
|
this.materialButton_analyzedata.Click += new System.EventHandler(this.materialButton_analyzedata_Click);
|
||||||
|
//
|
||||||
|
// materialButton_outimage
|
||||||
|
//
|
||||||
|
this.materialButton_outimage.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||||
|
this.materialButton_outimage.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default;
|
||||||
|
this.materialButton_outimage.Depth = 0;
|
||||||
|
this.materialButton_outimage.Dock = System.Windows.Forms.DockStyle.Left;
|
||||||
|
this.materialButton_outimage.Enabled = false;
|
||||||
|
this.materialButton_outimage.HighEmphasis = true;
|
||||||
|
this.materialButton_outimage.Icon = ((System.Drawing.Image)(resources.GetObject("materialButton_outimage.Icon")));
|
||||||
|
this.materialButton_outimage.Location = new System.Drawing.Point(113, 0);
|
||||||
|
this.materialButton_outimage.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
|
||||||
|
this.materialButton_outimage.MouseState = MaterialSkin.MouseState.HOVER;
|
||||||
|
this.materialButton_outimage.Name = "materialButton_outimage";
|
||||||
|
this.materialButton_outimage.NoAccentTextColor = System.Drawing.Color.Empty;
|
||||||
|
this.materialButton_outimage.Size = new System.Drawing.Size(113, 55);
|
||||||
|
this.materialButton_outimage.TabIndex = 15;
|
||||||
|
this.materialButton_outimage.Text = "导出图像";
|
||||||
|
this.materialButton_outimage.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained;
|
||||||
|
this.materialButton_outimage.UseAccentColor = false;
|
||||||
|
this.materialButton_outimage.UseVisualStyleBackColor = true;
|
||||||
|
this.materialButton_outimage.Click += new System.EventHandler(this.materialButton_outimage_Click);
|
||||||
|
//
|
||||||
|
// materialButton_LoadData
|
||||||
|
//
|
||||||
|
this.materialButton_LoadData.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||||
|
this.materialButton_LoadData.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default;
|
||||||
|
this.materialButton_LoadData.Depth = 0;
|
||||||
|
this.materialButton_LoadData.Dock = System.Windows.Forms.DockStyle.Left;
|
||||||
|
this.materialButton_LoadData.Enabled = false;
|
||||||
|
this.materialButton_LoadData.HighEmphasis = true;
|
||||||
|
this.materialButton_LoadData.Icon = ((System.Drawing.Image)(resources.GetObject("materialButton_LoadData.Icon")));
|
||||||
|
this.materialButton_LoadData.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.materialButton_LoadData.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
|
||||||
|
this.materialButton_LoadData.MouseState = MaterialSkin.MouseState.HOVER;
|
||||||
|
this.materialButton_LoadData.Name = "materialButton_LoadData";
|
||||||
|
this.materialButton_LoadData.NoAccentTextColor = System.Drawing.Color.Empty;
|
||||||
|
this.materialButton_LoadData.Size = new System.Drawing.Size(113, 55);
|
||||||
|
this.materialButton_LoadData.TabIndex = 14;
|
||||||
|
this.materialButton_LoadData.Text = "加载数据";
|
||||||
|
this.materialButton_LoadData.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained;
|
||||||
|
this.materialButton_LoadData.UseAccentColor = false;
|
||||||
|
this.materialButton_LoadData.UseVisualStyleBackColor = true;
|
||||||
|
this.materialButton_LoadData.Click += new System.EventHandler(this.materialButton_LoadData_Click);
|
||||||
|
//
|
||||||
|
// materialButton_forward
|
||||||
|
//
|
||||||
|
this.materialButton_forward.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||||
|
this.materialButton_forward.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default;
|
||||||
|
this.materialButton_forward.Depth = 0;
|
||||||
|
this.materialButton_forward.HighEmphasis = true;
|
||||||
|
this.materialButton_forward.Icon = ((System.Drawing.Image)(resources.GetObject("materialButton_forward.Icon")));
|
||||||
|
this.materialButton_forward.Location = new System.Drawing.Point(448, 0);
|
||||||
|
this.materialButton_forward.Margin = new System.Windows.Forms.Padding(0);
|
||||||
|
this.materialButton_forward.MouseState = MaterialSkin.MouseState.HOVER;
|
||||||
|
this.materialButton_forward.Name = "materialButton_forward";
|
||||||
|
this.materialButton_forward.NoAccentTextColor = System.Drawing.Color.Empty;
|
||||||
|
this.materialButton_forward.Size = new System.Drawing.Size(64, 36);
|
||||||
|
this.materialButton_forward.TabIndex = 23;
|
||||||
|
this.materialButton_forward.Text = " ";
|
||||||
|
this.materialButton_forward.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Text;
|
||||||
|
this.materialButton_forward.UseAccentColor = false;
|
||||||
|
this.materialButton_forward.UseVisualStyleBackColor = true;
|
||||||
|
this.materialButton_forward.MouseMove += new System.Windows.Forms.MouseEventHandler(this.materialButton_forward_MouseMove);
|
||||||
|
//
|
||||||
|
// materialButton_return
|
||||||
|
//
|
||||||
|
this.materialButton_return.Anchor = System.Windows.Forms.AnchorStyles.None;
|
||||||
|
this.materialButton_return.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||||
|
this.materialButton_return.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default;
|
||||||
|
this.materialButton_return.Depth = 0;
|
||||||
|
this.materialButton_return.HighEmphasis = true;
|
||||||
|
this.materialButton_return.Icon = ((System.Drawing.Image)(resources.GetObject("materialButton_return.Icon")));
|
||||||
|
this.materialButton_return.Location = new System.Drawing.Point(0, 36);
|
||||||
|
this.materialButton_return.Margin = new System.Windows.Forms.Padding(0);
|
||||||
|
this.materialButton_return.MouseState = MaterialSkin.MouseState.HOVER;
|
||||||
|
this.materialButton_return.Name = "materialButton_return";
|
||||||
|
this.materialButton_return.NoAccentTextColor = System.Drawing.Color.Empty;
|
||||||
|
this.materialButton_return.Size = new System.Drawing.Size(64, 36);
|
||||||
|
this.materialButton_return.TabIndex = 22;
|
||||||
|
this.materialButton_return.Text = " ";
|
||||||
|
this.materialButton_return.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Text;
|
||||||
|
this.materialButton_return.UseAccentColor = false;
|
||||||
|
this.materialButton_return.UseVisualStyleBackColor = true;
|
||||||
|
this.materialButton_return.MouseMove += new System.Windows.Forms.MouseEventHandler(this.materialButton_return_MouseMove);
|
||||||
|
//
|
||||||
|
// materialButton_save
|
||||||
|
//
|
||||||
|
this.materialButton_save.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||||
|
this.materialButton_save.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default;
|
||||||
|
this.materialButton_save.Depth = 0;
|
||||||
|
this.materialButton_save.HighEmphasis = true;
|
||||||
|
this.materialButton_save.Icon = ((System.Drawing.Image)(resources.GetObject("materialButton_save.Icon")));
|
||||||
|
this.materialButton_save.Location = new System.Drawing.Point(384, 0);
|
||||||
|
this.materialButton_save.Margin = new System.Windows.Forms.Padding(0);
|
||||||
|
this.materialButton_save.MouseState = MaterialSkin.MouseState.HOVER;
|
||||||
|
this.materialButton_save.Name = "materialButton_save";
|
||||||
|
this.materialButton_save.NoAccentTextColor = System.Drawing.Color.Empty;
|
||||||
|
this.materialButton_save.Size = new System.Drawing.Size(64, 36);
|
||||||
|
this.materialButton_save.TabIndex = 21;
|
||||||
|
this.materialButton_save.Text = " ";
|
||||||
|
this.materialButton_save.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Text;
|
||||||
|
this.materialButton_save.UseAccentColor = false;
|
||||||
|
this.materialButton_save.UseVisualStyleBackColor = true;
|
||||||
|
this.materialButton_save.MouseMove += new System.Windows.Forms.MouseEventHandler(this.materialButton_save_MouseMove);
|
||||||
|
//
|
||||||
|
// materialButton_inverse
|
||||||
|
//
|
||||||
|
this.materialButton_inverse.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||||
|
this.materialButton_inverse.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default;
|
||||||
|
this.materialButton_inverse.Depth = 0;
|
||||||
|
this.materialButton_inverse.HighEmphasis = true;
|
||||||
|
this.materialButton_inverse.Icon = ((System.Drawing.Image)(resources.GetObject("materialButton_inverse.Icon")));
|
||||||
|
this.materialButton_inverse.Location = new System.Drawing.Point(320, 0);
|
||||||
|
this.materialButton_inverse.Margin = new System.Windows.Forms.Padding(0);
|
||||||
|
this.materialButton_inverse.MouseState = MaterialSkin.MouseState.HOVER;
|
||||||
|
this.materialButton_inverse.Name = "materialButton_inverse";
|
||||||
|
this.materialButton_inverse.NoAccentTextColor = System.Drawing.Color.Empty;
|
||||||
|
this.materialButton_inverse.Size = new System.Drawing.Size(64, 36);
|
||||||
|
this.materialButton_inverse.TabIndex = 20;
|
||||||
|
this.materialButton_inverse.Text = " ";
|
||||||
|
this.materialButton_inverse.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Text;
|
||||||
|
this.materialButton_inverse.UseAccentColor = false;
|
||||||
|
this.materialButton_inverse.UseVisualStyleBackColor = true;
|
||||||
|
this.materialButton_inverse.MouseMove += new System.Windows.Forms.MouseEventHandler(this.materialButton_inverse_MouseMove);
|
||||||
|
//
|
||||||
|
// materialButton_resetImage
|
||||||
|
//
|
||||||
|
this.materialButton_resetImage.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||||
|
this.materialButton_resetImage.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default;
|
||||||
|
this.materialButton_resetImage.Depth = 0;
|
||||||
|
this.materialButton_resetImage.HighEmphasis = true;
|
||||||
|
this.materialButton_resetImage.Icon = ((System.Drawing.Image)(resources.GetObject("materialButton_resetImage.Icon")));
|
||||||
|
this.materialButton_resetImage.Location = new System.Drawing.Point(256, 0);
|
||||||
|
this.materialButton_resetImage.Margin = new System.Windows.Forms.Padding(0);
|
||||||
|
this.materialButton_resetImage.MouseState = MaterialSkin.MouseState.HOVER;
|
||||||
|
this.materialButton_resetImage.Name = "materialButton_resetImage";
|
||||||
|
this.materialButton_resetImage.NoAccentTextColor = System.Drawing.Color.Empty;
|
||||||
|
this.materialButton_resetImage.Size = new System.Drawing.Size(64, 36);
|
||||||
|
this.materialButton_resetImage.TabIndex = 19;
|
||||||
|
this.materialButton_resetImage.Text = " ";
|
||||||
|
this.materialButton_resetImage.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Text;
|
||||||
|
this.materialButton_resetImage.UseAccentColor = false;
|
||||||
|
this.materialButton_resetImage.UseVisualStyleBackColor = true;
|
||||||
|
this.materialButton_resetImage.MouseMove += new System.Windows.Forms.MouseEventHandler(this.materialButton_resetImage_MouseMove);
|
||||||
|
//
|
||||||
|
// materialButton_imageInfo
|
||||||
|
//
|
||||||
|
this.materialButton_imageInfo.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||||
|
this.materialButton_imageInfo.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default;
|
||||||
|
this.materialButton_imageInfo.Depth = 0;
|
||||||
|
this.materialButton_imageInfo.HighEmphasis = true;
|
||||||
|
this.materialButton_imageInfo.Icon = ((System.Drawing.Image)(resources.GetObject("materialButton_imageInfo.Icon")));
|
||||||
|
this.materialButton_imageInfo.Location = new System.Drawing.Point(192, 0);
|
||||||
|
this.materialButton_imageInfo.Margin = new System.Windows.Forms.Padding(0);
|
||||||
|
this.materialButton_imageInfo.MouseState = MaterialSkin.MouseState.HOVER;
|
||||||
|
this.materialButton_imageInfo.Name = "materialButton_imageInfo";
|
||||||
|
this.materialButton_imageInfo.NoAccentTextColor = System.Drawing.Color.Empty;
|
||||||
|
this.materialButton_imageInfo.Size = new System.Drawing.Size(64, 36);
|
||||||
|
this.materialButton_imageInfo.TabIndex = 18;
|
||||||
|
this.materialButton_imageInfo.Text = " ";
|
||||||
|
this.materialButton_imageInfo.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Text;
|
||||||
|
this.materialButton_imageInfo.UseAccentColor = false;
|
||||||
|
this.materialButton_imageInfo.UseVisualStyleBackColor = true;
|
||||||
|
this.materialButton_imageInfo.Click += new System.EventHandler(this.materialButton_imageInfo_Click);
|
||||||
|
this.materialButton_imageInfo.MouseMove += new System.Windows.Forms.MouseEventHandler(this.materialButton_imageInfo_MouseMove);
|
||||||
|
//
|
||||||
|
// materialButton_fakeColor
|
||||||
|
//
|
||||||
|
this.materialButton_fakeColor.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||||
|
this.materialButton_fakeColor.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default;
|
||||||
|
this.materialButton_fakeColor.Depth = 0;
|
||||||
|
this.materialButton_fakeColor.HighEmphasis = true;
|
||||||
|
this.materialButton_fakeColor.Icon = ((System.Drawing.Image)(resources.GetObject("materialButton_fakeColor.Icon")));
|
||||||
|
this.materialButton_fakeColor.Location = new System.Drawing.Point(128, 0);
|
||||||
|
this.materialButton_fakeColor.Margin = new System.Windows.Forms.Padding(0);
|
||||||
|
this.materialButton_fakeColor.MouseState = MaterialSkin.MouseState.HOVER;
|
||||||
|
this.materialButton_fakeColor.Name = "materialButton_fakeColor";
|
||||||
|
this.materialButton_fakeColor.NoAccentTextColor = System.Drawing.Color.Empty;
|
||||||
|
this.materialButton_fakeColor.Size = new System.Drawing.Size(64, 36);
|
||||||
|
this.materialButton_fakeColor.TabIndex = 17;
|
||||||
|
this.materialButton_fakeColor.Text = " ";
|
||||||
|
this.materialButton_fakeColor.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Text;
|
||||||
|
this.materialButton_fakeColor.UseAccentColor = false;
|
||||||
|
this.materialButton_fakeColor.UseVisualStyleBackColor = true;
|
||||||
|
this.materialButton_fakeColor.MouseMove += new System.Windows.Forms.MouseEventHandler(this.materialButton_fakeColor_MouseMove);
|
||||||
|
//
|
||||||
|
// materialButton_imageChange
|
||||||
|
//
|
||||||
|
this.materialButton_imageChange.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||||
|
this.materialButton_imageChange.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default;
|
||||||
|
this.materialButton_imageChange.Depth = 0;
|
||||||
|
this.materialButton_imageChange.HighEmphasis = true;
|
||||||
|
this.materialButton_imageChange.Icon = ((System.Drawing.Image)(resources.GetObject("materialButton_imageChange.Icon")));
|
||||||
|
this.materialButton_imageChange.Location = new System.Drawing.Point(64, 0);
|
||||||
|
this.materialButton_imageChange.Margin = new System.Windows.Forms.Padding(0);
|
||||||
|
this.materialButton_imageChange.MouseState = MaterialSkin.MouseState.HOVER;
|
||||||
|
this.materialButton_imageChange.Name = "materialButton_imageChange";
|
||||||
|
this.materialButton_imageChange.NoAccentTextColor = System.Drawing.Color.Empty;
|
||||||
|
this.materialButton_imageChange.Size = new System.Drawing.Size(64, 36);
|
||||||
|
this.materialButton_imageChange.TabIndex = 16;
|
||||||
|
this.materialButton_imageChange.Text = " ";
|
||||||
|
this.materialButton_imageChange.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Text;
|
||||||
|
this.materialButton_imageChange.UseAccentColor = false;
|
||||||
|
this.materialButton_imageChange.UseVisualStyleBackColor = true;
|
||||||
|
this.materialButton_imageChange.MouseMove += new System.Windows.Forms.MouseEventHandler(this.materialButton_imageChange_MouseMove);
|
||||||
|
//
|
||||||
|
// materialButton_changeFormSize
|
||||||
|
//
|
||||||
|
this.materialButton_changeFormSize.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||||
|
this.materialButton_changeFormSize.BackColor = System.Drawing.SystemColors.ButtonShadow;
|
||||||
|
this.materialButton_changeFormSize.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default;
|
||||||
|
this.materialButton_changeFormSize.Depth = 0;
|
||||||
|
this.materialButton_changeFormSize.HighEmphasis = true;
|
||||||
|
this.materialButton_changeFormSize.Icon = ((System.Drawing.Image)(resources.GetObject("materialButton_changeFormSize.Icon")));
|
||||||
|
this.materialButton_changeFormSize.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.materialButton_changeFormSize.Margin = new System.Windows.Forms.Padding(0);
|
||||||
|
this.materialButton_changeFormSize.MouseState = MaterialSkin.MouseState.HOVER;
|
||||||
|
this.materialButton_changeFormSize.Name = "materialButton_changeFormSize";
|
||||||
|
this.materialButton_changeFormSize.NoAccentTextColor = System.Drawing.Color.Empty;
|
||||||
|
this.materialButton_changeFormSize.Size = new System.Drawing.Size(64, 36);
|
||||||
|
this.materialButton_changeFormSize.TabIndex = 15;
|
||||||
|
this.materialButton_changeFormSize.Tag = "123";
|
||||||
|
this.materialButton_changeFormSize.Text = " ";
|
||||||
|
this.materialButton_changeFormSize.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Text;
|
||||||
|
this.materialButton_changeFormSize.UseAccentColor = false;
|
||||||
|
this.materialButton_changeFormSize.UseVisualStyleBackColor = false;
|
||||||
|
this.materialButton_changeFormSize.Click += new System.EventHandler(this.materialButton_changeFormSize_Click);
|
||||||
|
this.materialButton_changeFormSize.MouseMove += new System.Windows.Forms.MouseEventHandler(this.materialButton_changeFormSize_MouseMove);
|
||||||
|
//
|
||||||
|
// materialButton_miniAnalyze
|
||||||
|
//
|
||||||
|
this.materialButton_miniAnalyze.AutoSize = false;
|
||||||
|
this.materialButton_miniAnalyze.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||||
|
this.materialButton_miniAnalyze.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default;
|
||||||
|
this.materialButton_miniAnalyze.Depth = 0;
|
||||||
|
this.materialButton_miniAnalyze.HighEmphasis = true;
|
||||||
|
this.materialButton_miniAnalyze.Icon = ((System.Drawing.Image)(resources.GetObject("materialButton_miniAnalyze.Icon")));
|
||||||
|
this.materialButton_miniAnalyze.Location = new System.Drawing.Point(4, 186);
|
||||||
|
this.materialButton_miniAnalyze.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6);
|
||||||
|
this.materialButton_miniAnalyze.MouseState = MaterialSkin.MouseState.HOVER;
|
||||||
|
this.materialButton_miniAnalyze.Name = "materialButton_miniAnalyze";
|
||||||
|
this.materialButton_miniAnalyze.NoAccentTextColor = System.Drawing.Color.Empty;
|
||||||
|
this.materialButton_miniAnalyze.Size = new System.Drawing.Size(200, 48);
|
||||||
|
this.materialButton_miniAnalyze.TabIndex = 7;
|
||||||
|
this.materialButton_miniAnalyze.Text = "微孔版分析";
|
||||||
|
this.materialButton_miniAnalyze.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained;
|
||||||
|
this.materialButton_miniAnalyze.UseAccentColor = false;
|
||||||
|
this.materialButton_miniAnalyze.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// materialButton_roiAnalyze
|
||||||
|
//
|
||||||
|
this.materialButton_roiAnalyze.AutoSize = false;
|
||||||
|
this.materialButton_roiAnalyze.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||||
|
this.materialButton_roiAnalyze.CharacterCasing = MaterialSkin.Controls.MaterialButton.CharacterCasingEnum.Normal;
|
||||||
|
this.materialButton_roiAnalyze.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default;
|
||||||
|
this.materialButton_roiAnalyze.Depth = 0;
|
||||||
|
this.materialButton_roiAnalyze.HighEmphasis = true;
|
||||||
|
this.materialButton_roiAnalyze.Icon = ((System.Drawing.Image)(resources.GetObject("materialButton_roiAnalyze.Icon")));
|
||||||
|
this.materialButton_roiAnalyze.Location = new System.Drawing.Point(4, 126);
|
||||||
|
this.materialButton_roiAnalyze.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6);
|
||||||
|
this.materialButton_roiAnalyze.MouseState = MaterialSkin.MouseState.HOVER;
|
||||||
|
this.materialButton_roiAnalyze.Name = "materialButton_roiAnalyze";
|
||||||
|
this.materialButton_roiAnalyze.NoAccentTextColor = System.Drawing.Color.Empty;
|
||||||
|
this.materialButton_roiAnalyze.Size = new System.Drawing.Size(200, 48);
|
||||||
|
this.materialButton_roiAnalyze.TabIndex = 6;
|
||||||
|
this.materialButton_roiAnalyze.Text = "ROIs分析";
|
||||||
|
this.materialButton_roiAnalyze.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained;
|
||||||
|
this.materialButton_roiAnalyze.UseAccentColor = false;
|
||||||
|
this.materialButton_roiAnalyze.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// materialButton_dotcounts
|
||||||
|
//
|
||||||
|
this.materialButton_dotcounts.AutoSize = false;
|
||||||
|
this.materialButton_dotcounts.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||||
|
this.materialButton_dotcounts.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default;
|
||||||
|
this.materialButton_dotcounts.Depth = 0;
|
||||||
|
this.materialButton_dotcounts.HighEmphasis = true;
|
||||||
|
this.materialButton_dotcounts.Icon = ((System.Drawing.Image)(resources.GetObject("materialButton_dotcounts.Icon")));
|
||||||
|
this.materialButton_dotcounts.Location = new System.Drawing.Point(4, 246);
|
||||||
|
this.materialButton_dotcounts.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6);
|
||||||
|
this.materialButton_dotcounts.MouseState = MaterialSkin.MouseState.HOVER;
|
||||||
|
this.materialButton_dotcounts.Name = "materialButton_dotcounts";
|
||||||
|
this.materialButton_dotcounts.NoAccentTextColor = System.Drawing.Color.Empty;
|
||||||
|
this.materialButton_dotcounts.Size = new System.Drawing.Size(200, 48);
|
||||||
|
this.materialButton_dotcounts.TabIndex = 8;
|
||||||
|
this.materialButton_dotcounts.Text = "菌落计数";
|
||||||
|
this.materialButton_dotcounts.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained;
|
||||||
|
this.materialButton_dotcounts.UseAccentColor = false;
|
||||||
|
this.materialButton_dotcounts.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// materialButton_acidAnalyze
|
||||||
|
//
|
||||||
|
this.materialButton_acidAnalyze.AutoSize = false;
|
||||||
|
this.materialButton_acidAnalyze.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||||
|
this.materialButton_acidAnalyze.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default;
|
||||||
|
this.materialButton_acidAnalyze.Depth = 0;
|
||||||
|
this.materialButton_acidAnalyze.HighEmphasis = true;
|
||||||
|
this.materialButton_acidAnalyze.Icon = ((System.Drawing.Image)(resources.GetObject("materialButton_acidAnalyze.Icon")));
|
||||||
|
this.materialButton_acidAnalyze.Location = new System.Drawing.Point(4, 66);
|
||||||
|
this.materialButton_acidAnalyze.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6);
|
||||||
|
this.materialButton_acidAnalyze.MouseState = MaterialSkin.MouseState.HOVER;
|
||||||
|
this.materialButton_acidAnalyze.Name = "materialButton_acidAnalyze";
|
||||||
|
this.materialButton_acidAnalyze.NoAccentTextColor = System.Drawing.Color.Empty;
|
||||||
|
this.materialButton_acidAnalyze.Size = new System.Drawing.Size(200, 48);
|
||||||
|
this.materialButton_acidAnalyze.TabIndex = 5;
|
||||||
|
this.materialButton_acidAnalyze.Text = "泳道分析";
|
||||||
|
this.materialButton_acidAnalyze.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained;
|
||||||
|
this.materialButton_acidAnalyze.UseAccentColor = false;
|
||||||
|
this.materialButton_acidAnalyze.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// materialButton_correction
|
||||||
|
//
|
||||||
|
this.materialButton_correction.AutoSize = false;
|
||||||
|
this.materialButton_correction.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||||
|
this.materialButton_correction.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default;
|
||||||
|
this.materialButton_correction.Depth = 0;
|
||||||
|
this.materialButton_correction.HighEmphasis = true;
|
||||||
|
this.materialButton_correction.Icon = ((System.Drawing.Image)(resources.GetObject("materialButton_correction.Icon")));
|
||||||
|
this.materialButton_correction.Location = new System.Drawing.Point(4, 306);
|
||||||
|
this.materialButton_correction.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6);
|
||||||
|
this.materialButton_correction.MouseState = MaterialSkin.MouseState.HOVER;
|
||||||
|
this.materialButton_correction.Name = "materialButton_correction";
|
||||||
|
this.materialButton_correction.NoAccentTextColor = System.Drawing.Color.Empty;
|
||||||
|
this.materialButton_correction.Size = new System.Drawing.Size(200, 48);
|
||||||
|
this.materialButton_correction.TabIndex = 9;
|
||||||
|
this.materialButton_correction.Text = "蛋白归一化";
|
||||||
|
this.materialButton_correction.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained;
|
||||||
|
this.materialButton_correction.UseAccentColor = false;
|
||||||
|
this.materialButton_correction.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// materialButton_imageProcess
|
||||||
|
//
|
||||||
|
this.materialButton_imageProcess.AutoSize = false;
|
||||||
|
this.materialButton_imageProcess.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||||
|
this.materialButton_imageProcess.BackColor = System.Drawing.SystemColors.Control;
|
||||||
|
this.materialButton_imageProcess.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default;
|
||||||
|
this.materialButton_imageProcess.Depth = 0;
|
||||||
|
this.materialButton_imageProcess.Font = new System.Drawing.Font("宋体", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||||
|
this.materialButton_imageProcess.HighEmphasis = true;
|
||||||
|
this.materialButton_imageProcess.Icon = ((System.Drawing.Image)(resources.GetObject("materialButton_imageProcess.Icon")));
|
||||||
|
this.materialButton_imageProcess.Location = new System.Drawing.Point(4, 6);
|
||||||
|
this.materialButton_imageProcess.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6);
|
||||||
|
this.materialButton_imageProcess.MouseState = MaterialSkin.MouseState.HOVER;
|
||||||
|
this.materialButton_imageProcess.Name = "materialButton_imageProcess";
|
||||||
|
this.materialButton_imageProcess.NoAccentTextColor = System.Drawing.Color.Empty;
|
||||||
|
this.materialButton_imageProcess.Size = new System.Drawing.Size(200, 48);
|
||||||
|
this.materialButton_imageProcess.TabIndex = 4;
|
||||||
|
this.materialButton_imageProcess.Text = "图像处理";
|
||||||
|
this.materialButton_imageProcess.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
|
||||||
|
this.materialButton_imageProcess.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained;
|
||||||
|
this.materialButton_imageProcess.UseAccentColor = false;
|
||||||
|
this.materialButton_imageProcess.UseVisualStyleBackColor = false;
|
||||||
|
this.materialButton_imageProcess.Click += new System.EventHandler(this.materialButton_imageProcess_Click);
|
||||||
|
//
|
||||||
|
// CompanyIcon_pictureBox
|
||||||
|
//
|
||||||
|
this.CompanyIcon_pictureBox.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
this.CompanyIcon_pictureBox.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
|
||||||
|
this.CompanyIcon_pictureBox.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.CompanyIcon_pictureBox.Image = global::PBAnaly.Properties.Resources.京仪科技定稿_画板_1_副本2;
|
||||||
|
this.CompanyIcon_pictureBox.Location = new System.Drawing.Point(3, 3);
|
||||||
|
this.CompanyIcon_pictureBox.Name = "CompanyIcon_pictureBox";
|
||||||
|
this.tableLayoutPanel1.SetRowSpan(this.CompanyIcon_pictureBox, 2);
|
||||||
|
this.CompanyIcon_pictureBox.Size = new System.Drawing.Size(204, 80);
|
||||||
|
this.CompanyIcon_pictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
|
||||||
|
this.CompanyIcon_pictureBox.TabIndex = 16;
|
||||||
|
this.CompanyIcon_pictureBox.TabStop = false;
|
||||||
|
//
|
||||||
|
// tableLayoutPanel1
|
||||||
|
//
|
||||||
|
this.tableLayoutPanel1.ColumnCount = 3;
|
||||||
|
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 210F));
|
||||||
|
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||||
|
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 328F));
|
||||||
|
this.tableLayoutPanel1.Controls.Add(this.tl_right_main_view, 1, 2);
|
||||||
|
this.tableLayoutPanel1.Controls.Add(this.metroPanel_RightTop, 1, 0);
|
||||||
|
this.tableLayoutPanel1.Controls.Add(this.CompanyIcon_pictureBox, 0, 0);
|
||||||
|
this.tableLayoutPanel1.Controls.Add(this.flowLayoutPanel1, 0, 2);
|
||||||
|
this.tableLayoutPanel1.Controls.Add(this.flowLayoutPanel2, 1, 1);
|
||||||
|
this.tableLayoutPanel1.Controls.Add(this.pl_right, 2, 1);
|
||||||
|
this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.tableLayoutPanel1.Location = new System.Drawing.Point(3, 24);
|
||||||
|
this.tableLayoutPanel1.Margin = new System.Windows.Forms.Padding(2);
|
||||||
|
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
|
||||||
|
this.tableLayoutPanel1.RowCount = 3;
|
||||||
|
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 55F));
|
||||||
|
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 31F));
|
||||||
|
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||||
|
this.tableLayoutPanel1.Size = new System.Drawing.Size(1097, 581);
|
||||||
|
this.tableLayoutPanel1.TabIndex = 18;
|
||||||
|
//
|
||||||
|
// tl_right_main_view
|
||||||
|
//
|
||||||
|
this.tl_right_main_view.ColumnCount = 2;
|
||||||
|
this.tl_right_main_view.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||||
|
this.tl_right_main_view.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 324F));
|
||||||
|
this.tl_right_main_view.Controls.Add(this.DataProcess_panel, 0, 0);
|
||||||
|
this.tl_right_main_view.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.tl_right_main_view.Location = new System.Drawing.Point(210, 86);
|
||||||
|
this.tl_right_main_view.Margin = new System.Windows.Forms.Padding(0);
|
||||||
|
this.tl_right_main_view.Name = "tl_right_main_view";
|
||||||
|
this.tl_right_main_view.RowCount = 2;
|
||||||
|
this.tl_right_main_view.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
|
||||||
|
this.tl_right_main_view.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
|
||||||
|
this.tl_right_main_view.Size = new System.Drawing.Size(559, 495);
|
||||||
|
this.tl_right_main_view.TabIndex = 0;
|
||||||
|
//
|
||||||
|
// DataProcess_panel
|
||||||
|
//
|
||||||
|
this.DataProcess_panel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(39)))), ((int)(((byte)(51)))), ((int)(((byte)(63)))));
|
||||||
|
this.tl_right_main_view.SetColumnSpan(this.DataProcess_panel, 2);
|
||||||
|
this.DataProcess_panel.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.DataProcess_panel.EdgeColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(41)))), ((int)(((byte)(50)))));
|
||||||
|
this.DataProcess_panel.Location = new System.Drawing.Point(3, 3);
|
||||||
|
this.DataProcess_panel.Name = "DataProcess_panel";
|
||||||
|
this.DataProcess_panel.Padding = new System.Windows.Forms.Padding(5);
|
||||||
|
this.tl_right_main_view.SetRowSpan(this.DataProcess_panel, 2);
|
||||||
|
this.DataProcess_panel.Size = new System.Drawing.Size(553, 489);
|
||||||
|
this.DataProcess_panel.SmoothingType = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
|
||||||
|
this.DataProcess_panel.TabIndex = 19;
|
||||||
|
this.DataProcess_panel.Text = "panel1";
|
||||||
|
//
|
||||||
|
// flowLayoutPanel1
|
||||||
|
//
|
||||||
|
this.flowLayoutPanel1.Controls.Add(this.materialButton_imageProcess);
|
||||||
|
this.flowLayoutPanel1.Controls.Add(this.materialButton_acidAnalyze);
|
||||||
|
this.flowLayoutPanel1.Controls.Add(this.materialButton_roiAnalyze);
|
||||||
|
this.flowLayoutPanel1.Controls.Add(this.materialButton_miniAnalyze);
|
||||||
|
this.flowLayoutPanel1.Controls.Add(this.materialButton_dotcounts);
|
||||||
|
this.flowLayoutPanel1.Controls.Add(this.materialButton_correction);
|
||||||
|
this.flowLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.flowLayoutPanel1.FlowDirection = System.Windows.Forms.FlowDirection.TopDown;
|
||||||
|
this.flowLayoutPanel1.Location = new System.Drawing.Point(2, 88);
|
||||||
|
this.flowLayoutPanel1.Margin = new System.Windows.Forms.Padding(2);
|
||||||
|
this.flowLayoutPanel1.Name = "flowLayoutPanel1";
|
||||||
|
this.flowLayoutPanel1.Size = new System.Drawing.Size(206, 491);
|
||||||
|
this.flowLayoutPanel1.TabIndex = 18;
|
||||||
|
//
|
||||||
|
// flowLayoutPanel2
|
||||||
|
//
|
||||||
|
this.flowLayoutPanel2.BackColor = System.Drawing.SystemColors.ButtonShadow;
|
||||||
|
this.flowLayoutPanel2.Controls.Add(this.materialButton_changeFormSize);
|
||||||
|
this.flowLayoutPanel2.Controls.Add(this.materialButton_imageChange);
|
||||||
|
this.flowLayoutPanel2.Controls.Add(this.materialButton_fakeColor);
|
||||||
|
this.flowLayoutPanel2.Controls.Add(this.materialButton_imageInfo);
|
||||||
|
this.flowLayoutPanel2.Controls.Add(this.materialButton_resetImage);
|
||||||
|
this.flowLayoutPanel2.Controls.Add(this.materialButton_inverse);
|
||||||
|
this.flowLayoutPanel2.Controls.Add(this.materialButton_save);
|
||||||
|
this.flowLayoutPanel2.Controls.Add(this.materialButton_forward);
|
||||||
|
this.flowLayoutPanel2.Controls.Add(this.materialButton_return);
|
||||||
|
this.flowLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.flowLayoutPanel2.Location = new System.Drawing.Point(210, 55);
|
||||||
|
this.flowLayoutPanel2.Margin = new System.Windows.Forms.Padding(0);
|
||||||
|
this.flowLayoutPanel2.Name = "flowLayoutPanel2";
|
||||||
|
this.flowLayoutPanel2.Size = new System.Drawing.Size(559, 31);
|
||||||
|
this.flowLayoutPanel2.TabIndex = 19;
|
||||||
|
//
|
||||||
|
// pl_right
|
||||||
|
//
|
||||||
|
this.pl_right.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(39)))), ((int)(((byte)(51)))), ((int)(((byte)(63)))));
|
||||||
|
this.pl_right.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.pl_right.EdgeColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(41)))), ((int)(((byte)(50)))));
|
||||||
|
this.pl_right.Location = new System.Drawing.Point(771, 57);
|
||||||
|
this.pl_right.Margin = new System.Windows.Forms.Padding(2);
|
||||||
|
this.pl_right.Name = "pl_right";
|
||||||
|
this.pl_right.Padding = new System.Windows.Forms.Padding(4);
|
||||||
|
this.tableLayoutPanel1.SetRowSpan(this.pl_right, 2);
|
||||||
|
this.pl_right.Size = new System.Drawing.Size(324, 522);
|
||||||
|
this.pl_right.SmoothingType = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
|
||||||
|
this.pl_right.TabIndex = 20;
|
||||||
|
this.pl_right.Text = "panel1";
|
||||||
|
//
|
||||||
|
// MainForm
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.AutoSize = true;
|
||||||
|
this.AutoValidate = System.Windows.Forms.AutoValidate.EnablePreventFocusChange;
|
||||||
|
this.ClientSize = new System.Drawing.Size(1103, 608);
|
||||||
|
this.Controls.Add(this.tableLayoutPanel1);
|
||||||
|
this.DrawerAutoHide = false;
|
||||||
|
this.FormStyle = MaterialSkin.Controls.MaterialForm.FormStyles.ActionBar_None;
|
||||||
|
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||||
|
this.Name = "MainForm";
|
||||||
|
this.Padding = new System.Windows.Forms.Padding(3, 24, 3, 3);
|
||||||
|
this.Text = "MainForm";
|
||||||
|
this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
|
||||||
|
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.MainForm_FormClosed);
|
||||||
|
this.SizeChanged += new System.EventHandler(this.MainForm_SizeChanged);
|
||||||
|
this.metroPanel_RightTop.ResumeLayout(false);
|
||||||
|
this.metroPanel_RightTop.PerformLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.CompanyIcon_pictureBox)).EndInit();
|
||||||
|
this.tableLayoutPanel1.ResumeLayout(false);
|
||||||
|
this.tl_right_main_view.ResumeLayout(false);
|
||||||
|
this.flowLayoutPanel1.ResumeLayout(false);
|
||||||
|
this.flowLayoutPanel2.ResumeLayout(false);
|
||||||
|
this.flowLayoutPanel2.PerformLayout();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
private MetroFramework.Controls.MetroPanel metroPanel_RightTop;
|
||||||
|
private MaterialSkin.Controls.MaterialButton materialButton_LoadData;
|
||||||
|
private MaterialSkin.Controls.MaterialButton materialButton_log;
|
||||||
|
private MaterialSkin.Controls.MaterialButton materialButton_setting;
|
||||||
|
private MaterialSkin.Controls.MaterialButton materialButton_curveimage;
|
||||||
|
private MaterialSkin.Controls.MaterialButton materialButton_analyzedata;
|
||||||
|
private MaterialSkin.Controls.MaterialButton materialButton_outimage;
|
||||||
|
private MaterialSkin.Controls.MaterialButton materialButton_changeFormSize;
|
||||||
|
private MaterialSkin.Controls.MaterialButton materialButton_forward;
|
||||||
|
private MaterialSkin.Controls.MaterialButton materialButton_return;
|
||||||
|
private MaterialSkin.Controls.MaterialButton materialButton_save;
|
||||||
|
private MaterialSkin.Controls.MaterialButton materialButton_inverse;
|
||||||
|
private MaterialSkin.Controls.MaterialButton materialButton_resetImage;
|
||||||
|
private MaterialSkin.Controls.MaterialButton materialButton_imageInfo;
|
||||||
|
private MaterialSkin.Controls.MaterialButton materialButton_fakeColor;
|
||||||
|
private MaterialSkin.Controls.MaterialButton materialButton_imageChange;
|
||||||
|
private MaterialSkin.Controls.MaterialButton materialButton_miniAnalyze;
|
||||||
|
private MaterialSkin.Controls.MaterialButton materialButton_roiAnalyze;
|
||||||
|
private MaterialSkin.Controls.MaterialButton materialButton_dotcounts;
|
||||||
|
private MaterialSkin.Controls.MaterialButton materialButton_acidAnalyze;
|
||||||
|
private MaterialSkin.Controls.MaterialButton materialButton_correction;
|
||||||
|
private MaterialSkin.Controls.MaterialButton materialButton_imageProcess;
|
||||||
|
private System.Windows.Forms.PictureBox CompanyIcon_pictureBox;
|
||||||
|
private System.Windows.Forms.ToolTip btnStartUpToolTip;
|
||||||
|
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
|
||||||
|
private AntdUI.In.FlowLayoutPanel flowLayoutPanel1;
|
||||||
|
private AntdUI.In.FlowLayoutPanel flowLayoutPanel2;
|
||||||
|
private ReaLTaiizor.Controls.Panel pl_right;
|
||||||
|
private System.Windows.Forms.TableLayoutPanel tl_right_main_view;
|
||||||
|
private ReaLTaiizor.Controls.Panel DataProcess_panel;
|
||||||
|
}
|
||||||
|
}
|
843
src/PBAnaly/MainForm.cs
Normal file
@ -0,0 +1,843 @@
|
|||||||
|
using Aspose.Pdf;
|
||||||
|
using MaterialSkin;
|
||||||
|
using MaterialSkin.Controls;
|
||||||
|
using OpenCvSharp.Flann;
|
||||||
|
using OpenTK;
|
||||||
|
using PBAnaly.Module;
|
||||||
|
using PBAnaly.Properties;
|
||||||
|
using PBAnaly.UI;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using Resources = PBAnaly.Properties.Resources;
|
||||||
|
|
||||||
|
namespace PBAnaly
|
||||||
|
{
|
||||||
|
public partial class MainForm : MaterialForm
|
||||||
|
{
|
||||||
|
private MaterialSkinManager materialSkinManager;
|
||||||
|
private SettingForm settingForm;
|
||||||
|
private LoginForm loginForm;
|
||||||
|
private LogForm logForm;
|
||||||
|
|
||||||
|
private int FormGenerate_X;
|
||||||
|
private int FormGenerate_Y;
|
||||||
|
|
||||||
|
private string InnerUserID = "";
|
||||||
|
|
||||||
|
private string color_bar = "YellowHot";
|
||||||
|
System.Windows.Forms.TableLayoutPanel tlp_main_images;
|
||||||
|
|
||||||
|
|
||||||
|
bool isRun = false;
|
||||||
|
private Thread thread;
|
||||||
|
private void runThread()
|
||||||
|
{
|
||||||
|
//while (isRun)
|
||||||
|
//{
|
||||||
|
|
||||||
|
// int index = 0;
|
||||||
|
// foreach (var item in ImageToolMannage.imageDataPath)
|
||||||
|
// {
|
||||||
|
// if (index == 0)
|
||||||
|
// {
|
||||||
|
// if (pb_image1.InvokeRequired)
|
||||||
|
// {
|
||||||
|
// pb_image1.Invoke(new Action(() => pb_image1.Image = item.Value.pictureBox));
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
// }
|
||||||
|
// else if (index == 1)
|
||||||
|
// {
|
||||||
|
// if (pb_image2.InvokeRequired)
|
||||||
|
// {
|
||||||
|
// pb_image2.Invoke(new Action(() => pb_image2.Image = item.Value.pictureBox));
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// else if (index == 2)
|
||||||
|
// {
|
||||||
|
// if (pb_image3.InvokeRequired)
|
||||||
|
// {
|
||||||
|
// pb_image3.Invoke(new Action(() => pb_image9.Image = item.Value.pictureBox));
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// else if (index == 3)
|
||||||
|
// {
|
||||||
|
// if (pb_image4.InvokeRequired)
|
||||||
|
// {
|
||||||
|
// pb_image4.Invoke(new Action(() => pb_image9.Image = item.Value.pictureBox));
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// else if (index == 4)
|
||||||
|
// {
|
||||||
|
// if (pb_image5.InvokeRequired)
|
||||||
|
// {
|
||||||
|
// pb_image5.Invoke(new Action(() => pb_image9.Image = item.Value.pictureBox));
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// else if (index == 5)
|
||||||
|
// {
|
||||||
|
// if (pb_image6.InvokeRequired)
|
||||||
|
// {
|
||||||
|
// pb_image6.Invoke(new Action(() => pb_image9.Image = item.Value.pictureBox));
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// else if (index == 6)
|
||||||
|
// {
|
||||||
|
// if (pb_image7.InvokeRequired)
|
||||||
|
// {
|
||||||
|
// pb_image7.Invoke(new Action(() => pb_image9.Image = item.Value.pictureBox));
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// else if (index == 7)
|
||||||
|
// {
|
||||||
|
// if (pb_image8.InvokeRequired)
|
||||||
|
// {
|
||||||
|
// pb_image8.Invoke(new Action(() => pb_image9.Image = item.Value.pictureBox));
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// else if (index == 8)
|
||||||
|
// {
|
||||||
|
// if (pb_image9.InvokeRequired)
|
||||||
|
// {
|
||||||
|
// pb_image9.Invoke(new Action(() => pb_image9.Image = item.Value.pictureBox));
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// Thread.Sleep(200);
|
||||||
|
//}
|
||||||
|
}
|
||||||
|
public MainForm(LoginForm InnerloginForm, Autholity autholity, string UserID)
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
//InnerloginForm.Close();
|
||||||
|
loginForm = InnerloginForm;
|
||||||
|
loginForm.Visible = false;
|
||||||
|
//loginForm.Close();
|
||||||
|
loginForm = null;
|
||||||
|
|
||||||
|
|
||||||
|
UIInit();
|
||||||
|
|
||||||
|
InnerUserID = UserID;
|
||||||
|
FormGenerate_X = 0;
|
||||||
|
FormGenerate_Y = 0;
|
||||||
|
// initPanel();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[System.Runtime.InteropServices.DllImport("user32.dll")]
|
||||||
|
private static extern int SendMessage(IntPtr hWnd, int wMsg, bool wParam, int lParm);
|
||||||
|
private const int WM_SETREDRAW = 11;
|
||||||
|
private void BeginUpdate(Control control)
|
||||||
|
{
|
||||||
|
SendMessage(control.Handle,WM_SETREDRAW,false,0);
|
||||||
|
}
|
||||||
|
private void EndUpdate(Control control)
|
||||||
|
{
|
||||||
|
SendMessage(control.Handle, WM_SETREDRAW, true, 0);
|
||||||
|
control.Refresh();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void UIInit()
|
||||||
|
{
|
||||||
|
this.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw | ControlStyles.AllPaintingInWmPaint, true);
|
||||||
|
materialSkinManager = MaterialSkinManager.Instance; // 初始化 MaterialSkinManager 实例
|
||||||
|
materialSkinManager.AddFormToManage(this); // 将要应用 Material Design 的窗体添加到管理列表中
|
||||||
|
materialSkinManager.Theme = MaterialSkinManager.Themes.DARK; // Theme 属性用来设置整体的主题
|
||||||
|
materialSkinManager.ColorScheme = new ColorScheme(Primary.BlueGrey800, Primary.BlueGrey900, Primary.BlueGrey500, Accent.Indigo700, TextShade.WHITE); // ColorScheme 属性来设置配色方案
|
||||||
|
}
|
||||||
|
public void SetPic(Bitmap p)
|
||||||
|
{
|
||||||
|
|
||||||
|
int index = 0;
|
||||||
|
|
||||||
|
//foreach (var item in ImageToolMannage.imageDataPath)
|
||||||
|
//{
|
||||||
|
// if (index == 0)
|
||||||
|
// {
|
||||||
|
// var camera = item.Value.GetImage();
|
||||||
|
// pb_image1.Image = util.ConvertRgb24ImageToBitmap(camera);
|
||||||
|
|
||||||
|
// pb_image1.Refresh();
|
||||||
|
|
||||||
|
// }
|
||||||
|
// else if (index == 1)
|
||||||
|
// {
|
||||||
|
// pb_image2.Invoke(new Action(() => pb_image2.Image = item.Value.pictureBox));
|
||||||
|
// }
|
||||||
|
// else if (index == 2)
|
||||||
|
// {
|
||||||
|
// pb_image3.Invoke(new Action(() => pb_image9.Image = item.Value.pictureBox));
|
||||||
|
// }
|
||||||
|
// else if (index == 3)
|
||||||
|
// {
|
||||||
|
// pb_image4.Invoke(new Action(() => pb_image9.Image = item.Value.pictureBox));
|
||||||
|
// }
|
||||||
|
// else if (index == 4)
|
||||||
|
// {
|
||||||
|
// pb_image5.Invoke(new Action(() => pb_image9.Image = item.Value.pictureBox));
|
||||||
|
// }
|
||||||
|
// else if (index == 5)
|
||||||
|
// {
|
||||||
|
// if (pb_image6.InvokeRequired)
|
||||||
|
// {
|
||||||
|
// pb_image6.Invoke(new Action(() => pb_image6.Image = item.Value.pictureBox));
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// else if (index == 6)
|
||||||
|
// {
|
||||||
|
// pb_image7.Invoke(new Action(() => pb_image9.Image = item.Value.pictureBox));
|
||||||
|
// }
|
||||||
|
// else if (index == 7)
|
||||||
|
// {
|
||||||
|
// pb_image8.Invoke(new Action(() => pb_image9.Image = item.Value.pictureBox));
|
||||||
|
// }
|
||||||
|
// else if (index == 8)
|
||||||
|
// {
|
||||||
|
// pb_image9.Invoke(new Action(() => pb_image9.Image = item.Value.pictureBox));
|
||||||
|
// }
|
||||||
|
// index++;
|
||||||
|
//}
|
||||||
|
}
|
||||||
|
private void initPanel()
|
||||||
|
{
|
||||||
|
//BeginUpdate(tl_right_main_view);
|
||||||
|
|
||||||
|
//tl_right_main_view.RowCount = 1;
|
||||||
|
//tl_right_main_view.ColumnCount = 1;
|
||||||
|
|
||||||
|
//tl_right_main_view.Controls.Clear();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//if (isGridView)
|
||||||
|
//{
|
||||||
|
// pl_right.Controls.Clear();
|
||||||
|
// itpf = new COMMImageToolPaletteForm(this);
|
||||||
|
// itpf.TopLevel = false;
|
||||||
|
// itpf.Dock = DockStyle.Fill;
|
||||||
|
// pb_colorbar = new PictureBox();
|
||||||
|
// pb_colorbar.SizeMode = PictureBoxSizeMode.StretchImage;
|
||||||
|
|
||||||
|
// tl_right_main_view.RowCount = 1;
|
||||||
|
// tl_right_main_view.ColumnCount = 2;
|
||||||
|
// tl_right_main_view.RowStyles.Clear();
|
||||||
|
// tl_right_main_view.ColumnStyles.Clear();
|
||||||
|
|
||||||
|
// tl_right_main_view.ColumnStyles.Add(new ColumnStyle(SizeType.Percent,100f));
|
||||||
|
// tl_right_main_view.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 100f));
|
||||||
|
// pb_lists.Clear();
|
||||||
|
// tlp_main_images = new TableLayoutPanel();
|
||||||
|
// tl_right_main_view.Controls.Add(tlp_main_images,0,0);
|
||||||
|
// tl_right_main_view.Controls.Add(pb_colorbar, 1,0);
|
||||||
|
// pb_colorbar.Dock = DockStyle.Fill;
|
||||||
|
// pl_right.Controls.Add(itpf);
|
||||||
|
// pb_colorbar.Show();
|
||||||
|
// pb_colorbar.Dock = DockStyle.Fill;
|
||||||
|
// itpf.Show();
|
||||||
|
// tlp_main_images.Dock = DockStyle.Fill;
|
||||||
|
|
||||||
|
// int capCount = ImageToolMannage.imageDataPath.Count;
|
||||||
|
// int rows = (int)Math.Ceiling(Math.Sqrt(capCount));
|
||||||
|
// int cols = (int)Math.Ceiling((double)capCount / rows);
|
||||||
|
// if (capCount == 1)
|
||||||
|
// {
|
||||||
|
// rows = 1;
|
||||||
|
// cols = 0;
|
||||||
|
// }
|
||||||
|
// else if (capCount == 2)
|
||||||
|
// {
|
||||||
|
// rows = 1;
|
||||||
|
// cols = 2;
|
||||||
|
// }
|
||||||
|
// else if ( capCount == 3)
|
||||||
|
// {
|
||||||
|
// rows = 1;
|
||||||
|
// cols = capCount;
|
||||||
|
// }
|
||||||
|
// else if (capCount == 4)
|
||||||
|
// {
|
||||||
|
// rows = 2;
|
||||||
|
// cols = 2;
|
||||||
|
// }
|
||||||
|
// else if (capCount > 4 && capCount <= 6)
|
||||||
|
// {
|
||||||
|
// rows = 2;
|
||||||
|
// cols = 3;
|
||||||
|
// }
|
||||||
|
// else if (capCount > 6 && capCount <= 9)
|
||||||
|
// {
|
||||||
|
// rows = 3;
|
||||||
|
// cols = 3;
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
// tlp_main_images.RowCount = rows;
|
||||||
|
// tlp_main_images.ColumnCount = cols;
|
||||||
|
|
||||||
|
// tlp_main_images.RowStyles.Clear();
|
||||||
|
// tlp_main_images.ColumnStyles.Clear();
|
||||||
|
// for (int i = 0; i < rows; i++)
|
||||||
|
// {
|
||||||
|
// tlp_main_images.RowStyles.Add(new RowStyle(SizeType.Percent, 100f / rows));
|
||||||
|
// }
|
||||||
|
// for (int i = 0; i < cols; i++)
|
||||||
|
// {
|
||||||
|
// tlp_main_images.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100f / cols));
|
||||||
|
// }
|
||||||
|
|
||||||
|
// int index = 0;
|
||||||
|
// int r = 0;
|
||||||
|
// int c = 0;
|
||||||
|
// foreach (var item in ImageToolMannage.imageDataPath)
|
||||||
|
// {
|
||||||
|
// if (index == 0)
|
||||||
|
// {
|
||||||
|
// tlp_main_images.Controls.Add(pb_image1, c, r);
|
||||||
|
// pb_image1.Dock = DockStyle.Fill;
|
||||||
|
// pb_image1.Show();
|
||||||
|
// }
|
||||||
|
// else if(index == 1)
|
||||||
|
// {
|
||||||
|
// tlp_main_images.Controls.Add(pb_image2, c, r);
|
||||||
|
// pb_image2.Dock = DockStyle.Fill;
|
||||||
|
// pb_image2.Show();
|
||||||
|
// }
|
||||||
|
// else if (index == 2)
|
||||||
|
// {
|
||||||
|
// tlp_main_images.Controls.Add(pb_image3, c, r);
|
||||||
|
// pb_image3.Dock = DockStyle.Fill;
|
||||||
|
// pb_image3.Show();
|
||||||
|
// }
|
||||||
|
// else if (index == 3)
|
||||||
|
// {
|
||||||
|
// tlp_main_images.Controls.Add(pb_image4, c, r);
|
||||||
|
// pb_image4.Dock = DockStyle.Fill;
|
||||||
|
// pb_image4.Show();
|
||||||
|
// }
|
||||||
|
// else if (index == 4)
|
||||||
|
// {
|
||||||
|
// tlp_main_images.Controls.Add(pb_image5, c, r);
|
||||||
|
// pb_image5.Dock = DockStyle.Fill;
|
||||||
|
// pb_image5.Show();
|
||||||
|
// }
|
||||||
|
// else if (index == 5)
|
||||||
|
// {
|
||||||
|
// tlp_main_images.Controls.Add(pb_image6, c, r);
|
||||||
|
// pb_image6.Dock = DockStyle.Fill;
|
||||||
|
// pb_image6.Show();
|
||||||
|
// }
|
||||||
|
// else if (index == 6)
|
||||||
|
// {
|
||||||
|
// tlp_main_images.Controls.Add(pb_image7, c, r);
|
||||||
|
// pb_image7.Dock = DockStyle.Fill;
|
||||||
|
// pb_image7.Show();
|
||||||
|
// }
|
||||||
|
// else if (index == 7)
|
||||||
|
// {
|
||||||
|
// tlp_main_images.Controls.Add(pb_image8, c, r);
|
||||||
|
// pb_image8.Dock = DockStyle.Fill;
|
||||||
|
// pb_image8.Show();
|
||||||
|
// }
|
||||||
|
// else if (index == 8)
|
||||||
|
// {
|
||||||
|
// tlp_main_images.Controls.Add(pb_image9, c, r);
|
||||||
|
// pb_image9.Dock = DockStyle.Fill;
|
||||||
|
// pb_image9.Show();
|
||||||
|
// }
|
||||||
|
// c++;
|
||||||
|
// if (c >= cols)
|
||||||
|
// {
|
||||||
|
// r++;
|
||||||
|
// c = 0;
|
||||||
|
// }
|
||||||
|
// index++;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// isRun = true;
|
||||||
|
// thread = new Thread(runThread);
|
||||||
|
// thread.IsBackground = true;
|
||||||
|
// thread.Start();
|
||||||
|
//}
|
||||||
|
//else
|
||||||
|
//{
|
||||||
|
// isRun = false;
|
||||||
|
// tl_right_main_view.Controls.Add(DataProcess_panel);
|
||||||
|
// DataProcess_panel.Dock = DockStyle.Fill;
|
||||||
|
|
||||||
|
// foreach (var frmEmbed in ImageToolMannage.imageDataPath.Values)
|
||||||
|
// {
|
||||||
|
// if (frmEmbed != null)
|
||||||
|
// {
|
||||||
|
// frmEmbed.TopLevel = false;
|
||||||
|
// DataProcess_panel.Controls.Add(frmEmbed);
|
||||||
|
// //FormGenerate_X = FormGenerate_X + 15;
|
||||||
|
// //FormGenerate_Y = FormGenerate_Y + 15;
|
||||||
|
// frmEmbed.Location = new System.Drawing.Point(FormGenerate_X, FormGenerate_Y);
|
||||||
|
// frmEmbed.Show(); // 显示
|
||||||
|
// frmEmbed.BringToFront();
|
||||||
|
// frmEmbed.initPicturebox();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
//EndUpdate(tl_right_main_view);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void materialButton_changeFormSize_MouseMove(object sender, MouseEventArgs e)
|
||||||
|
{
|
||||||
|
if (sender is Button)
|
||||||
|
{
|
||||||
|
Button btn = sender as Button;
|
||||||
|
this.btnStartUpToolTip.SetToolTip(btn, "适配窗口");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void materialButton_imageChange_MouseMove(object sender, MouseEventArgs e)
|
||||||
|
{
|
||||||
|
if (sender is Button)
|
||||||
|
{
|
||||||
|
Button btn = sender as Button;
|
||||||
|
this.btnStartUpToolTip.SetToolTip(btn, "图像变换");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void materialButton_fakeColor_MouseMove(object sender, MouseEventArgs e)
|
||||||
|
{
|
||||||
|
if (sender is Button)
|
||||||
|
{
|
||||||
|
Button btn = sender as Button;
|
||||||
|
this.btnStartUpToolTip.SetToolTip(btn, "伪彩");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void materialButton_imageInfo_MouseMove(object sender, MouseEventArgs e)
|
||||||
|
{
|
||||||
|
if (sender is Button)
|
||||||
|
{
|
||||||
|
Button btn = sender as Button;
|
||||||
|
this.btnStartUpToolTip.SetToolTip(btn, "图像信息");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void materialButton_resetImage_MouseMove(object sender, MouseEventArgs e)
|
||||||
|
{
|
||||||
|
if (sender is Button)
|
||||||
|
{
|
||||||
|
Button btn = sender as Button;
|
||||||
|
this.btnStartUpToolTip.SetToolTip(btn, "重置原图");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void materialButton_inverse_MouseMove(object sender, MouseEventArgs e)
|
||||||
|
{
|
||||||
|
if (sender is Button)
|
||||||
|
{
|
||||||
|
Button btn = sender as Button;
|
||||||
|
this.btnStartUpToolTip.SetToolTip(btn, "反值");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void materialButton_save_MouseMove(object sender, MouseEventArgs e)
|
||||||
|
{
|
||||||
|
if (sender is Button)
|
||||||
|
{
|
||||||
|
Button btn = sender as Button;
|
||||||
|
this.btnStartUpToolTip.SetToolTip(btn, "Ctrl + S 保存");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void materialButton_return_MouseMove(object sender, MouseEventArgs e)
|
||||||
|
{
|
||||||
|
if (sender is Button)
|
||||||
|
{
|
||||||
|
Button btn = sender as Button;
|
||||||
|
this.btnStartUpToolTip.SetToolTip(btn, "Ctrl + Z 撤銷");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void materialButton_forward_MouseMove(object sender, MouseEventArgs e)
|
||||||
|
{
|
||||||
|
if (sender is Button)
|
||||||
|
{
|
||||||
|
Button btn = sender as Button;
|
||||||
|
this.btnStartUpToolTip.SetToolTip(btn, "Ctrl + Y 重做");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void MainForm_SizeChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void materialButton_LoadData_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
string selectedFilePath = "";
|
||||||
|
// 弹出选择图像的框
|
||||||
|
#region 打开图片
|
||||||
|
OpenFileDialog openFileDialog = new OpenFileDialog();
|
||||||
|
openFileDialog.Filter = "TIF Files (*.tif)|*.tif|All files (*.*)|*.*"; // 设置文件筛选器
|
||||||
|
openFileDialog.Title = "Select a TIF File"; // 设置对话框标题
|
||||||
|
|
||||||
|
if (openFileDialog.ShowDialog() == DialogResult.OK)
|
||||||
|
{
|
||||||
|
// 获取选中的文件路径
|
||||||
|
selectedFilePath = openFileDialog.FileName;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
if (selectedFilePath != "")
|
||||||
|
{
|
||||||
|
// Save Log Information
|
||||||
|
Read_Write_Log read_Write_Log = new Read_Write_Log();
|
||||||
|
string SaveLogFile = read_Write_Log.LogFile;
|
||||||
|
|
||||||
|
List<Log> OldLog = new List<Log>();
|
||||||
|
if (File.Exists(SaveLogFile))
|
||||||
|
{
|
||||||
|
OldLog = read_Write_Log.ReadCsv(SaveLogFile);
|
||||||
|
}
|
||||||
|
|
||||||
|
string dateTime = DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss");
|
||||||
|
OldLog.Add(new Log() { UserID = InnerUserID, ITEM = "加载数据", Description = "加载数据", Time = dateTime });
|
||||||
|
|
||||||
|
read_Write_Log.WriteCsv(SaveLogFile, OldLog);
|
||||||
|
|
||||||
|
DataProcessForm frmEmbed = new DataProcessForm(materialSkinManager, selectedFilePath);
|
||||||
|
|
||||||
|
if (frmEmbed != null)
|
||||||
|
{
|
||||||
|
//frmEmbed.FormBorderStyle = FormBorderStyle.None; // 无边框
|
||||||
|
frmEmbed.TopLevel = false; // 不是最顶层窗体
|
||||||
|
DataProcess_panel.Controls.Add(frmEmbed); // 添加到 Panel中
|
||||||
|
|
||||||
|
FormGenerate_X = FormGenerate_X + 15;
|
||||||
|
FormGenerate_Y = FormGenerate_Y + 15;
|
||||||
|
|
||||||
|
frmEmbed.Location = new System.Drawing.Point(FormGenerate_X, FormGenerate_Y);
|
||||||
|
frmEmbed.Show(); // 显示
|
||||||
|
PBAnalyCommMannager.processForm = frmEmbed;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void materialButton_setting_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
//if (settingForm != null)
|
||||||
|
// return;
|
||||||
|
|
||||||
|
//settingForm = new SettingForm(materialSkinManager);
|
||||||
|
//settingForm.FormClosed += settingForm_FormClosed;
|
||||||
|
//settingForm.TopMost = true;
|
||||||
|
//settingForm.Show();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void settingForm_FormClosed(object sender, FormClosedEventArgs e)
|
||||||
|
{
|
||||||
|
if (settingForm == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
settingForm.Dispose();
|
||||||
|
settingForm = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void materialButton_curveimage_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (PBAnalyCommMannager.processcurveAlg())
|
||||||
|
{
|
||||||
|
// Save Log Information
|
||||||
|
Read_Write_Log read_Write_Log = new Read_Write_Log();
|
||||||
|
string SaveLogFile = read_Write_Log.LogFile;
|
||||||
|
|
||||||
|
List<Log> OldLog = new List<Log>();
|
||||||
|
if (File.Exists(SaveLogFile))
|
||||||
|
{
|
||||||
|
OldLog = read_Write_Log.ReadCsv(SaveLogFile);
|
||||||
|
}
|
||||||
|
|
||||||
|
string dateTime = DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss");
|
||||||
|
OldLog.Add(new Log() { UserID = InnerUserID, ITEM = "泳道波形图", Description = "操作泳道波形图", Time = dateTime });
|
||||||
|
|
||||||
|
read_Write_Log.WriteCsv(SaveLogFile, OldLog);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void materialButton_analyzedata_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (PBAnalyCommMannager.band_info == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// Save Log Information
|
||||||
|
Read_Write_Log read_Write_Log = new Read_Write_Log();
|
||||||
|
string SaveLogFile = read_Write_Log.LogFile;
|
||||||
|
|
||||||
|
List<Log> OldLog = new List<Log>();
|
||||||
|
if (File.Exists(SaveLogFile))
|
||||||
|
{
|
||||||
|
OldLog = read_Write_Log.ReadCsv(SaveLogFile);
|
||||||
|
}
|
||||||
|
|
||||||
|
string dateTime = DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss");
|
||||||
|
OldLog.Add(new Log() { UserID = InnerUserID, ITEM = "分析数据", Description = "分析数据", Time = dateTime });
|
||||||
|
|
||||||
|
read_Write_Log.WriteCsv(SaveLogFile, OldLog);
|
||||||
|
|
||||||
|
PBAnaly.UI.AnalyzeDataForm analyzeDataForm = new UI.AnalyzeDataForm(PBAnalyCommMannager.band_info);
|
||||||
|
analyzeDataForm.TopMost = true;
|
||||||
|
analyzeDataForm.Show();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void materialButton_imageProcess_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
string selectedFilePath = "";
|
||||||
|
// 弹出选择图像的框
|
||||||
|
#region 打开图片
|
||||||
|
OpenFileDialog openFileDialog = new OpenFileDialog();
|
||||||
|
openFileDialog.Filter = "TIF Files (*.tif)|*.tif|All files (*.*)|*.*"; // 设置文件筛选器
|
||||||
|
openFileDialog.Title = "Select a TIF File"; // 设置对话框标题
|
||||||
|
|
||||||
|
if (openFileDialog.ShowDialog() == DialogResult.OK)
|
||||||
|
{
|
||||||
|
// 获取选中的文件路径 只传入目录
|
||||||
|
selectedFilePath = Path.GetDirectoryName(openFileDialog.FileName);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
if (selectedFilePath != "")
|
||||||
|
{
|
||||||
|
if (ImageToolMannage.imageDataPath.TryGetValue(selectedFilePath, out var value))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ImagePanel frmEmbed = new ImagePanel(selectedFilePath, pl_right);
|
||||||
|
ImageToolMannage.imageDataPath[selectedFilePath] = frmEmbed;
|
||||||
|
|
||||||
|
if (frmEmbed != null)
|
||||||
|
{
|
||||||
|
frmEmbed.TopLevel = false;
|
||||||
|
DataProcess_panel.Controls.Add(frmEmbed);
|
||||||
|
FormGenerate_X = FormGenerate_X + 15;
|
||||||
|
FormGenerate_Y = FormGenerate_Y + 15;
|
||||||
|
frmEmbed.Location = new System.Drawing.Point(FormGenerate_X, FormGenerate_Y);
|
||||||
|
frmEmbed.Show(); // 显示
|
||||||
|
frmEmbed.BringToFront();
|
||||||
|
|
||||||
|
//frmEmbed.RefreshUI();
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
initPanel();
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private void materialButton_log_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (logForm != null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
logForm = new LogForm(materialSkinManager,InnerUserID);
|
||||||
|
logForm.FormClosed += LogForm_FormClosed;
|
||||||
|
logForm.TopMost = true;
|
||||||
|
logForm.Show();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void LogForm_FormClosed(object sender, FormClosedEventArgs e)
|
||||||
|
{
|
||||||
|
if (logForm == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
logForm.Dispose();
|
||||||
|
logForm = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void materialButton_outimage_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
string datetime = DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss");
|
||||||
|
string dir = string.Format(@"./{0}/", "Report");
|
||||||
|
if (!Directory.Exists(dir)) Directory.CreateDirectory(dir);
|
||||||
|
|
||||||
|
string savePDF = string.Format("{0}{1}_Report.pdf",dir,datetime);
|
||||||
|
|
||||||
|
// 初始化文檔對象
|
||||||
|
Document document = new Document();
|
||||||
|
// 添加頁面
|
||||||
|
Page page = document.Pages.Add();
|
||||||
|
// 向新頁面添加文本
|
||||||
|
page.Paragraphs.Add(new Aspose.Pdf.Text.TextFragment("Hello World!"));
|
||||||
|
// 保存PDF
|
||||||
|
document.Save(savePDF);
|
||||||
|
string ReportMesage = string.Format("Report Save at : {0}", savePDF);
|
||||||
|
MessageBox.Show(ReportMesage);
|
||||||
|
|
||||||
|
// Save Log Information
|
||||||
|
Read_Write_Log read_Write_Log = new Read_Write_Log();
|
||||||
|
string SaveLogFile = read_Write_Log.LogFile;
|
||||||
|
|
||||||
|
List<Log> OldLog = new List<Log>();
|
||||||
|
if (File.Exists(SaveLogFile))
|
||||||
|
{
|
||||||
|
OldLog = read_Write_Log.ReadCsv(SaveLogFile);
|
||||||
|
}
|
||||||
|
|
||||||
|
string dateTime = DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss");
|
||||||
|
OldLog.Add(new Log() { UserID = InnerUserID, ITEM = "导出图像", Description = "导出图像", Time = dateTime });
|
||||||
|
|
||||||
|
read_Write_Log.WriteCsv(SaveLogFile, OldLog);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void MainForm_FormClosed(object sender, FormClosedEventArgs e)
|
||||||
|
{
|
||||||
|
System.Environment.Exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void materialButton_imageInfo_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
bool isGridView = false;
|
||||||
|
private void materialButton_changeFormSize_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
|
||||||
|
//isGridView = isGridView == false ? true : false;
|
||||||
|
//initPanel();
|
||||||
|
#if true
|
||||||
|
//var forms = ImageToolMannage.imageDataPath.Values.ToList();
|
||||||
|
//int formCount = forms.Count;
|
||||||
|
|
||||||
|
//int rows, columns;
|
||||||
|
|
||||||
|
//// 根据窗体数量确定布局
|
||||||
|
//if (formCount == 1)
|
||||||
|
//{
|
||||||
|
// rows = 1;
|
||||||
|
// columns = 1;
|
||||||
|
//}
|
||||||
|
//else if (formCount == 2)
|
||||||
|
//{
|
||||||
|
// rows = 1;
|
||||||
|
// columns = 2;
|
||||||
|
//}
|
||||||
|
//else if (formCount == 3)
|
||||||
|
//{
|
||||||
|
// rows = 1;
|
||||||
|
// columns = 3;
|
||||||
|
//}
|
||||||
|
//else if (formCount == 4)
|
||||||
|
//{
|
||||||
|
// rows = 2;
|
||||||
|
// columns = 2;
|
||||||
|
//}
|
||||||
|
//else if (formCount == 5)
|
||||||
|
//{
|
||||||
|
// rows = 2;
|
||||||
|
// columns = 3;
|
||||||
|
//}
|
||||||
|
//else if (formCount == 6)
|
||||||
|
//{
|
||||||
|
// rows = 2;
|
||||||
|
// columns = 3;
|
||||||
|
//}
|
||||||
|
//else // formCount >= 7
|
||||||
|
//{
|
||||||
|
// rows = (int)Math.Ceiling(formCount / 2.0);
|
||||||
|
// columns = 2;
|
||||||
|
//}
|
||||||
|
|
||||||
|
//// 计算每个窗体的大小
|
||||||
|
//int formWidth = DataProcess_panel.Width / columns;
|
||||||
|
//int formHeight = DataProcess_panel.Height / rows;
|
||||||
|
|
||||||
|
//// 清除 DataProcess_panel 中已有的控件
|
||||||
|
//DataProcess_panel.Controls.Clear();
|
||||||
|
|
||||||
|
//// 调整每个窗体的位置和大小
|
||||||
|
//for (int i = 0; i < formCount; i++)
|
||||||
|
//{
|
||||||
|
// var form = forms[i];
|
||||||
|
// PictureBox pictureBox = new PictureBox();
|
||||||
|
// pictureBox.Image = form.GetPseuImage;
|
||||||
|
|
||||||
|
|
||||||
|
// int row = i / columns;
|
||||||
|
// int col = i % columns;
|
||||||
|
|
||||||
|
|
||||||
|
// pictureBox.Bounds = new System.Drawing.Rectangle(col * formWidth, row * formHeight, formWidth, formHeight);
|
||||||
|
|
||||||
|
// // 添加窗体到 Panel 中并显示
|
||||||
|
// DataProcess_panel.Controls.Add(pictureBox);
|
||||||
|
// pictureBox.Show();
|
||||||
|
//}
|
||||||
|
//COMMImageToolPaletteForm cOMMImageToolPaletteForm = new COMMImageToolPaletteForm(this);
|
||||||
|
//cOMMImageToolPaletteForm.TopLevel = false;
|
||||||
|
//cOMMImageToolPaletteForm.Dock = DockStyle.Fill;
|
||||||
|
//pl_right.Controls.Clear();
|
||||||
|
//pl_right.Controls.Add(cOMMImageToolPaletteForm);
|
||||||
|
//cOMMImageToolPaletteForm.Show();
|
||||||
|
|
||||||
|
|
||||||
|
int margin = 5;
|
||||||
|
int formCount = ImageToolMannage.imageDataPath.Count;
|
||||||
|
if (formCount == 0) return;
|
||||||
|
|
||||||
|
int columns = (int)Math.Ceiling(Math.Sqrt(formCount));
|
||||||
|
int rows = (int)Math.Ceiling((double)formCount / columns);
|
||||||
|
|
||||||
|
int formWidth = (DataProcess_panel.Width - (columns + 1) * margin) / columns;
|
||||||
|
int formHeight = (DataProcess_panel.Height - (rows + 1) * margin) / rows;
|
||||||
|
|
||||||
|
int totalWidth = columns * formWidth + (columns + 1) * margin;
|
||||||
|
int totalHeight = rows * formHeight + (rows + 1) * margin;
|
||||||
|
if (totalWidth > DataProcess_panel.Width)
|
||||||
|
{
|
||||||
|
formWidth = (DataProcess_panel.Width - (columns + 1) * margin) / columns;
|
||||||
|
}
|
||||||
|
if (totalHeight > DataProcess_panel.Height)
|
||||||
|
{
|
||||||
|
formHeight = (DataProcess_panel.Height - (rows + 1) * margin) / rows;
|
||||||
|
}
|
||||||
|
int index = 0;
|
||||||
|
foreach (var item in ImageToolMannage.imageDataPath)
|
||||||
|
{
|
||||||
|
int row = index / columns;
|
||||||
|
int col = index % columns;
|
||||||
|
|
||||||
|
int x = margin + col * (formWidth + margin);
|
||||||
|
int y = margin + row * (formHeight + margin);
|
||||||
|
|
||||||
|
var panel = item.Value;
|
||||||
|
panel.Size = new Size(formWidth, formHeight);
|
||||||
|
panel.Location = new System.Drawing.Point(x, y);
|
||||||
|
panel.TopLevel = false;
|
||||||
|
panel.FormBorderStyle = FormBorderStyle.None;
|
||||||
|
panel.Visible = true;
|
||||||
|
DataProcess_panel.Controls.Add(panel);
|
||||||
|
panel.Show();
|
||||||
|
panel.BringToFront();
|
||||||
|
index++;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
2003
src/PBAnaly/MainForm.resx
Normal file
166
src/PBAnaly/Module/ImageProcess.cs
Normal file
@ -0,0 +1,166 @@
|
|||||||
|
using SixLabors.ImageSharp.PixelFormats;
|
||||||
|
using SixLabors.ImageSharp;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Drawing.Drawing2D;
|
||||||
|
using System.Drawing;
|
||||||
|
using AntdUI;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using OpenCvSharp;
|
||||||
|
using SixLabors.ImageSharp.Advanced;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
using Sunny.UI.Win32;
|
||||||
|
|
||||||
|
|
||||||
|
namespace PBAnaly.Module
|
||||||
|
{
|
||||||
|
public class DataRecordString
|
||||||
|
{
|
||||||
|
public int index { get; set; }
|
||||||
|
public string max { get; set; }
|
||||||
|
public string min { get; set; }
|
||||||
|
public string IOD { get; set; }
|
||||||
|
public string Count { get; set; }
|
||||||
|
public string AOD { get; set; }
|
||||||
|
}
|
||||||
|
public class DataRecord
|
||||||
|
{
|
||||||
|
public int index { get; set; }
|
||||||
|
public int max { get; set; }
|
||||||
|
public int min { get; set; }
|
||||||
|
public int IOD { get; set; }
|
||||||
|
public int Count { get; set; }
|
||||||
|
public float AOD { get; set; }
|
||||||
|
};
|
||||||
|
public static class ImageProcess
|
||||||
|
{
|
||||||
|
|
||||||
|
public static (int[] histogram, int minVal, int maxVal) CalculateHistogram(Image<L16> image)
|
||||||
|
{
|
||||||
|
int[] histogram = new int[65536]; // 16-bit image has values from 0 to 65535
|
||||||
|
int minVal = ushort.MaxValue;
|
||||||
|
int maxVal = ushort.MinValue;
|
||||||
|
|
||||||
|
// 使用MemoryGroup访问像素数据
|
||||||
|
var memoryGroup = image.GetPixelMemoryGroup();
|
||||||
|
var o = memoryGroup.ToArray().Max();
|
||||||
|
|
||||||
|
foreach (var memory in memoryGroup)
|
||||||
|
{
|
||||||
|
var span = memory.Span;
|
||||||
|
foreach (var pixel in span)
|
||||||
|
{
|
||||||
|
ushort pixelValue = pixel.PackedValue;
|
||||||
|
histogram[pixelValue]++; // 增加对应亮度值的计数
|
||||||
|
|
||||||
|
if (pixelValue < minVal)
|
||||||
|
minVal = pixelValue; // 更新最小值
|
||||||
|
|
||||||
|
if (pixelValue > maxVal)
|
||||||
|
maxVal = pixelValue; // 更新最大值
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return (histogram, minVal, maxVal);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static System.Drawing.Point GetRealImageCoordinates(PictureBox pictureBox, System.Drawing.Point mousePoint)
|
||||||
|
{
|
||||||
|
if (pictureBox.Image == null)
|
||||||
|
return mousePoint;
|
||||||
|
|
||||||
|
System.Drawing.Size imageSize = pictureBox.Image.Size;
|
||||||
|
System.Drawing.Size boxSize = pictureBox.ClientSize;
|
||||||
|
|
||||||
|
float imageAspectRatio = (float)imageSize.Width / imageSize.Height;
|
||||||
|
float boxAspectRatio = (float)boxSize.Width / boxSize.Height;
|
||||||
|
|
||||||
|
float scaleFactor = (pictureBox.SizeMode == PictureBoxSizeMode.Zoom) ?
|
||||||
|
(boxAspectRatio > imageAspectRatio ? (float)boxSize.Height / imageSize.Height : (float)boxSize.Width / imageSize.Width) :
|
||||||
|
(float)boxSize.Width / imageSize.Width; // StretchImage模式
|
||||||
|
|
||||||
|
// 图像在PictureBox内居中,因此计算起始偏移
|
||||||
|
int imageX = (pictureBox.SizeMode == PictureBoxSizeMode.Zoom && boxAspectRatio > imageAspectRatio) ?
|
||||||
|
(boxSize.Width - (int)(imageSize.Width * scaleFactor)) / 2 : 0;
|
||||||
|
int imageY = (pictureBox.SizeMode == PictureBoxSizeMode.Zoom && boxAspectRatio < imageAspectRatio) ?
|
||||||
|
(boxSize.Height - (int)(imageSize.Height * scaleFactor)) / 2 : 0;
|
||||||
|
|
||||||
|
int realX = (int)((mousePoint.X - imageX) / scaleFactor);
|
||||||
|
int realY = (int)((mousePoint.Y - imageY) / scaleFactor);
|
||||||
|
|
||||||
|
return new System.Drawing.Point(realX, realY);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static System.Drawing.Rectangle GetRealImageRectangle(PictureBox pictureBox, System.Drawing.Rectangle mouseRectangle)
|
||||||
|
{
|
||||||
|
if (pictureBox.Image == null)
|
||||||
|
return mouseRectangle;
|
||||||
|
|
||||||
|
// 获得矩形的左上角和右下角的坐标
|
||||||
|
System.Drawing.Point topLeft = new System.Drawing.Point(mouseRectangle.Left, mouseRectangle.Top);
|
||||||
|
System.Drawing.Point bottomRight = new System.Drawing.Point(mouseRectangle.Right, mouseRectangle.Bottom);
|
||||||
|
|
||||||
|
// 转换这些坐标
|
||||||
|
System.Drawing.Point realTopLeft = GetRealImageCoordinates(pictureBox, topLeft);
|
||||||
|
System.Drawing.Point realBottomRight = GetRealImageCoordinates(pictureBox, bottomRight);
|
||||||
|
|
||||||
|
// 计算新的矩形的宽度和高度
|
||||||
|
int width = realBottomRight.X - realTopLeft.X;
|
||||||
|
int height = realBottomRight.Y - realTopLeft.Y;
|
||||||
|
|
||||||
|
return new System.Drawing.Rectangle(realTopLeft.X, realTopLeft.Y, width, height);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 将真实图像坐标转换为PictureBox控件坐标
|
||||||
|
public static System.Drawing.Point ConvertRealToPictureBoxCoordinates(PictureBox pictureBox, System.Drawing.Point realPoint)
|
||||||
|
{
|
||||||
|
if (pictureBox.Image == null)
|
||||||
|
return realPoint;
|
||||||
|
|
||||||
|
System.Drawing.Size imageSize = pictureBox.Image.Size;
|
||||||
|
System.Drawing.Size boxSize = pictureBox.ClientSize;
|
||||||
|
|
||||||
|
float imageAspectRatio = (float)imageSize.Width / imageSize.Height;
|
||||||
|
float boxAspectRatio = (float)boxSize.Width / boxSize.Height;
|
||||||
|
|
||||||
|
float scaleFactor = (pictureBox.SizeMode == PictureBoxSizeMode.Zoom) ?
|
||||||
|
(boxAspectRatio > imageAspectRatio ? (float)boxSize.Height / imageSize.Height : (float)boxSize.Width / imageSize.Width) :
|
||||||
|
1f; // 默认为1,这里假设是StretchImage模式
|
||||||
|
|
||||||
|
int imageX = (pictureBox.SizeMode == PictureBoxSizeMode.Zoom && boxAspectRatio > imageAspectRatio) ?
|
||||||
|
(boxSize.Width - (int)(imageSize.Width * scaleFactor)) / 2 : 0;
|
||||||
|
int imageY = (pictureBox.SizeMode == PictureBoxSizeMode.Zoom && boxAspectRatio < imageAspectRatio) ?
|
||||||
|
(boxSize.Height - (int)(imageSize.Height * scaleFactor)) / 2 : 0;
|
||||||
|
|
||||||
|
int pictureBoxX = (int)(realPoint.X * scaleFactor) + imageX;
|
||||||
|
int pictureBoxY = (int)(realPoint.Y * scaleFactor) + imageY;
|
||||||
|
|
||||||
|
return new System.Drawing.Point(pictureBoxX, pictureBoxY);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 将真实图像的矩形坐标转换为PictureBox控件的矩形坐标
|
||||||
|
public static System.Drawing.Rectangle ConvertRealToPictureBoxRectangle(PictureBox pictureBox, System.Drawing.Rectangle realRectangle)
|
||||||
|
{
|
||||||
|
if (pictureBox.Image == null)
|
||||||
|
return realRectangle;
|
||||||
|
|
||||||
|
System.Drawing.Point realTopLeft = new System.Drawing.Point(realRectangle.Left, realRectangle.Top);
|
||||||
|
System.Drawing.Point realBottomRight = new System.Drawing.Point(realRectangle.Right, realRectangle.Bottom);
|
||||||
|
|
||||||
|
System.Drawing.Point picBoxTopLeft = ConvertRealToPictureBoxCoordinates(pictureBox, realTopLeft);
|
||||||
|
System.Drawing.Point picBoxBottomRight = ConvertRealToPictureBoxCoordinates(pictureBox, realBottomRight);
|
||||||
|
|
||||||
|
return new System.Drawing.Rectangle(picBoxTopLeft.X, picBoxTopLeft.Y,
|
||||||
|
picBoxBottomRight.X - picBoxTopLeft.X,
|
||||||
|
picBoxBottomRight.Y - picBoxTopLeft.Y);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
37
src/PBAnaly/Module/ImageToolMannage.cs
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
|
||||||
|
|
||||||
|
using OpenCvSharp.ImgHash;
|
||||||
|
using PBAnaly.UI;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace PBAnaly.Module
|
||||||
|
{
|
||||||
|
public static class ImageToolMannage
|
||||||
|
{
|
||||||
|
#region 变量
|
||||||
|
public static bool lineDisON = false;
|
||||||
|
public static bool rectON = false;
|
||||||
|
public static bool linepolygonON = false;
|
||||||
|
public static bool linewandON = false;
|
||||||
|
public static bool circleON = false;
|
||||||
|
public static int color_min = 6000;
|
||||||
|
public static int color_max = 65534;
|
||||||
|
public static float alpha = 100;
|
||||||
|
public static ImagePanel imagePanel { get; set; }
|
||||||
|
public static ImagePanelUser imagePanelUser { get; set; }
|
||||||
|
public static ReaLTaiizor.Controls.Panel right_panel { get; set; }
|
||||||
|
public static int beta = 127;
|
||||||
|
|
||||||
|
public static double pixeltomm = 0.0825;
|
||||||
|
|
||||||
|
public static Dictionary<string, ImagePanel> imageDataPath = new Dictionary<string, ImagePanel>();
|
||||||
|
|
||||||
|
public static int RoiIndex = 0;
|
||||||
|
public static int CircleIndex = 0;
|
||||||
|
public static int Roi_w = 20;
|
||||||
|
public static int Roi_h = 20;
|
||||||
|
public static int Roi_r = 10;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
144
src/PBAnaly/Module/PBAnalyCommMannager.cs
Normal file
@ -0,0 +1,144 @@
|
|||||||
|
using OpenCvSharp;
|
||||||
|
using OpenCvSharp.Extensions;
|
||||||
|
using PBBiologyVC;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace PBAnaly.Module
|
||||||
|
{
|
||||||
|
public class PBAnalyCommMannager
|
||||||
|
{
|
||||||
|
public static LaneChartForm laneChartForm = null;
|
||||||
|
public static DataProcessForm processForm = null;
|
||||||
|
public static List<RectVC> proteinRect = null;
|
||||||
|
public static List<_band_info> band_info = null;
|
||||||
|
|
||||||
|
//public List<ushort> land_data;
|
||||||
|
|
||||||
|
//public List<float> ydata;
|
||||||
|
|
||||||
|
//public List<float> xdata;
|
||||||
|
|
||||||
|
//public List<List<int>> band_point;
|
||||||
|
|
||||||
|
//public List<MolecularInfoVC> Minfo;
|
||||||
|
public struct band_infos
|
||||||
|
{
|
||||||
|
public float startX; // X作为筛选的必要条件 当鼠标进入x的范围就是进入某一个泳道,在根据y的范围判断是否在这个泳道里
|
||||||
|
public float endX;
|
||||||
|
public float startY;
|
||||||
|
public float endY;
|
||||||
|
public List<float> xdata;
|
||||||
|
public List<float> ydata;
|
||||||
|
public Scalar color;
|
||||||
|
public int thick;
|
||||||
|
public _band_info _Info;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool processcurveAlg()
|
||||||
|
{
|
||||||
|
|
||||||
|
if (processForm == null) return false;
|
||||||
|
var image = processForm.getImage;
|
||||||
|
Mat whiteBackgroundImg = new Mat();
|
||||||
|
Scalar meanValue = Cv2.Mean(image);
|
||||||
|
if (meanValue[0] < 10000)
|
||||||
|
{
|
||||||
|
Cv2.BitwiseNot(image, whiteBackgroundImg);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
whiteBackgroundImg = image.Clone();
|
||||||
|
}
|
||||||
|
|
||||||
|
Mat input_cn1 = new Mat();
|
||||||
|
whiteBackgroundImg.ConvertTo(input_cn1, MatType.CV_8U, 0.00390625);
|
||||||
|
|
||||||
|
byte[] byte_image = new byte[input_cn1.Width * input_cn1.Height];
|
||||||
|
ushort[] whiteBackgroundImg_image = new ushort[whiteBackgroundImg.Width * whiteBackgroundImg.Height];
|
||||||
|
int index = 0;
|
||||||
|
for (int i = 0; i < input_cn1.Rows; i++)
|
||||||
|
{
|
||||||
|
for (int j = 0; j < input_cn1.Cols; j++)
|
||||||
|
{
|
||||||
|
byte value = input_cn1.At<byte>(i, j); // 使用At方法访问数据
|
||||||
|
ushort value1 = whiteBackgroundImg.At<ushort>(i, j); // 使用At方法访问数据
|
||||||
|
byte_image[index] = value;
|
||||||
|
whiteBackgroundImg_image[index++] = value1;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
PBBiology dd = new PBBiology();
|
||||||
|
proteinRect = new List<RectVC>();
|
||||||
|
band_info = new List<_band_info>();
|
||||||
|
|
||||||
|
|
||||||
|
unsafe
|
||||||
|
{
|
||||||
|
fixed (byte* p = byte_image)
|
||||||
|
{
|
||||||
|
proteinRect = dd.getProteinRectVC(p, (ushort)input_cn1.Width, (ushort)input_cn1.Height);
|
||||||
|
}
|
||||||
|
|
||||||
|
byte[] bytes = util.ConvertUShortArrayToByteArrayComplete(whiteBackgroundImg_image);
|
||||||
|
|
||||||
|
|
||||||
|
fixed (byte* p = bytes)
|
||||||
|
{
|
||||||
|
dd.getProteinBandsVC(p, 16, (ushort)input_cn1.Width, (ushort)input_cn1.Height, proteinRect, ref band_info);
|
||||||
|
}
|
||||||
|
dd.adjustBands(band_info, 10);
|
||||||
|
dd.molecularWeightResult(ref proteinRect, ref band_info);
|
||||||
|
|
||||||
|
}
|
||||||
|
Mat mat = new Mat();
|
||||||
|
if (input_cn1.Channels() == 1)
|
||||||
|
{
|
||||||
|
Cv2.CvtColor(input_cn1, mat, ColorConversionCodes.GRAY2BGR);
|
||||||
|
}
|
||||||
|
// 随机数生成器
|
||||||
|
Random random = new Random();
|
||||||
|
|
||||||
|
// 定义多个矩形的位置和大小
|
||||||
|
(int x, int y, int width, int height)[] rectangles = {
|
||||||
|
(100, 150, 200, 100),
|
||||||
|
(300, 200, 150, 90),
|
||||||
|
(50, 30, 180, 120),
|
||||||
|
// 添加更多矩形
|
||||||
|
};
|
||||||
|
List<PBAnalyCommMannager.band_infos> bands = new List<band_infos>();
|
||||||
|
index = 0;
|
||||||
|
foreach (var m in proteinRect)
|
||||||
|
{
|
||||||
|
Scalar color = new Scalar(random.Next(256), random.Next(256), random.Next(256)); // 随机RGB值
|
||||||
|
OpenCvSharp.Point rectStart = new OpenCvSharp.Point(m.X, m.Y);
|
||||||
|
OpenCvSharp.Point rectEnd = new OpenCvSharp.Point(m.X + m.Width, m.Y + m.Height);
|
||||||
|
band_infos _Infos = new band_infos();
|
||||||
|
_Infos.startX = rectStart.X;
|
||||||
|
_Infos.startY = rectStart.Y;
|
||||||
|
_Infos.endX = rectEnd.X;
|
||||||
|
_Infos.endY = rectEnd.Y;
|
||||||
|
_Infos.color = color;
|
||||||
|
_Infos.thick = 1;
|
||||||
|
_Infos._Info = band_info[index++];
|
||||||
|
bands.Add(_Infos);
|
||||||
|
}
|
||||||
|
processForm.SetBands = bands;
|
||||||
|
processForm.Draw();
|
||||||
|
|
||||||
|
if (laneChartForm == null)
|
||||||
|
laneChartForm = new LaneChartForm();
|
||||||
|
laneChartForm.TopMost = true;
|
||||||
|
laneChartForm.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||||
|
laneChartForm.Draw(bands[0]);
|
||||||
|
laneChartForm.Show();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
499
src/PBAnaly/Module/util.cs
Normal file
@ -0,0 +1,499 @@
|
|||||||
|
using OpenCvSharp;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
using SixLabors.ImageSharp;
|
||||||
|
using SixLabors.ImageSharp.PixelFormats;
|
||||||
|
using SixLabors.ImageSharp.Formats.Bmp;
|
||||||
|
using System.IO;
|
||||||
|
using System.Drawing;
|
||||||
|
using Image = SixLabors.ImageSharp.Image;
|
||||||
|
using System.Net.NetworkInformation;
|
||||||
|
using System.Management;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
namespace PBAnaly.Module
|
||||||
|
{
|
||||||
|
public class util
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 将16bit unshort 拆成2 个8bit
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="ushortArray"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static byte[] ConvertUShortArrayToByteArrayComplete(ushort[] ushortArray)
|
||||||
|
{
|
||||||
|
// 创建一个byte数组,长度是ushort数组的两倍
|
||||||
|
byte[] byteArray = new byte[ushortArray.Length * 2];
|
||||||
|
|
||||||
|
for (int i = 0, j = 0; i < ushortArray.Length; i++, j += 2)
|
||||||
|
{
|
||||||
|
// 高位byte
|
||||||
|
byteArray[j + 1] = (byte)(ushortArray[i] >> 8);
|
||||||
|
// 低位byte
|
||||||
|
byteArray[j] = (byte)(ushortArray[i] & 0xFF);
|
||||||
|
}
|
||||||
|
|
||||||
|
return byteArray;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 数据转成mat
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="imageData"></param>
|
||||||
|
/// <param name="width"></param>
|
||||||
|
/// <param name="height"></param>
|
||||||
|
/// <param name="type"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static Mat ConvertByteArrayToMat(byte[] imageData, int width, int height, MatType type)
|
||||||
|
{
|
||||||
|
Mat image = new Mat(height, width, type);
|
||||||
|
if (type == MatType.CV_8UC1)
|
||||||
|
{
|
||||||
|
Marshal.Copy(imageData, 0, image.Data, width * height);
|
||||||
|
}
|
||||||
|
else if (type == MatType.CV_16UC1)
|
||||||
|
{
|
||||||
|
Marshal.Copy(imageData, 0, image.Data, width * height * 2);
|
||||||
|
}
|
||||||
|
return image;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static byte[] TiffTo16BitGrayByteArray(string filePath)
|
||||||
|
{
|
||||||
|
using (Image<L16> image = Image.Load<L16>(filePath))
|
||||||
|
{
|
||||||
|
int width = image.Width;
|
||||||
|
int height = image.Height;
|
||||||
|
byte[] pixels = new byte[width * height * sizeof(ushort)];
|
||||||
|
|
||||||
|
int index = 0;
|
||||||
|
for (int y = 0; y < height; y++)
|
||||||
|
{
|
||||||
|
for (int x = 0; x < width; x++)
|
||||||
|
{
|
||||||
|
ushort pixelValue = image[x, y].PackedValue;
|
||||||
|
BitConverter.GetBytes(pixelValue).CopyTo(pixels, index);
|
||||||
|
index += sizeof(ushort);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return pixels;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public static Image<L16> LoadTiffAsL16(string filePath)
|
||||||
|
{
|
||||||
|
// 加载图像并确保其为16位灰度图像
|
||||||
|
Image<L16> image = Image.Load<L16>(filePath);
|
||||||
|
return image;
|
||||||
|
}
|
||||||
|
public static byte[] ConvertL16ImageToByteArray(Image<L16> image)
|
||||||
|
{
|
||||||
|
int width = image.Width;
|
||||||
|
int height = image.Height;
|
||||||
|
byte[] pixels = new byte[width * height * sizeof(ushort)];
|
||||||
|
|
||||||
|
int index = 0;
|
||||||
|
for (int y = 0; y < height; y++)
|
||||||
|
{
|
||||||
|
for (int x = 0; x < width; x++)
|
||||||
|
{
|
||||||
|
// 直接访问每个像素的值并转换为 byte[]
|
||||||
|
ushort pixelValue = image[x, y].PackedValue;
|
||||||
|
BitConverter.GetBytes(pixelValue).CopyTo(pixels, index);
|
||||||
|
index += sizeof(ushort);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return pixels;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Bitmap ConvertL16ToBitmap(Image<L16> image)
|
||||||
|
{
|
||||||
|
using (var ms = new MemoryStream())
|
||||||
|
{
|
||||||
|
// 保存为 BMP 格式的内存流
|
||||||
|
image.Save(ms, new BmpEncoder());
|
||||||
|
ms.Position = 0; // 重置流的位置
|
||||||
|
return new Bitmap(ms);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public static Image<L16> ConvertByteArrayToL16Image(byte[] byteArray, int width, int height, int channels)
|
||||||
|
{
|
||||||
|
// 确保输入参数有效
|
||||||
|
if (channels != 1)
|
||||||
|
{
|
||||||
|
throw new ArgumentException("通道数必须为1,适用于L16格式。");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建一个新的Image<L16>对象
|
||||||
|
Image<L16> image = new Image<L16>(width, height);
|
||||||
|
|
||||||
|
// 填充图像数据
|
||||||
|
for (int y = 0; y < height; y++)
|
||||||
|
{
|
||||||
|
for (int x = 0; x < width; x++)
|
||||||
|
{
|
||||||
|
// 计算在字节数组中的位置
|
||||||
|
int pixelIndex = (y * width + x) * channels * sizeof(ushort);
|
||||||
|
|
||||||
|
// 确保byteArray足够大
|
||||||
|
if (pixelIndex + sizeof(ushort) > byteArray.Length)
|
||||||
|
{
|
||||||
|
throw new ArgumentException("字节数组长度不足以填充图像。");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 从字节数组中读取16位灰度值
|
||||||
|
ushort pixelValue = BitConverter.ToUInt16(byteArray, pixelIndex);
|
||||||
|
image[x, y] = new L16(pixelValue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return image;
|
||||||
|
}
|
||||||
|
public static Image<L16> ConvertL8ToL16Image(Image<L8> inputImage)
|
||||||
|
{
|
||||||
|
int width = inputImage.Width;
|
||||||
|
int height = inputImage.Height;
|
||||||
|
|
||||||
|
// 创建一个新的 Image<L16> 对象
|
||||||
|
Image<L16> outputImage = new Image<L16>(width, height);
|
||||||
|
|
||||||
|
// 遍历每个像素,将 L8 格式转换为 L16 格式
|
||||||
|
for (int y = 0; y < height; y++)
|
||||||
|
{
|
||||||
|
for (int x = 0; x < width; x++)
|
||||||
|
{
|
||||||
|
// 获取 L8 格式的像素值
|
||||||
|
byte pixelValueL8 = inputImage[x, y].PackedValue;
|
||||||
|
|
||||||
|
// 将 8 位值扩展为 16 位
|
||||||
|
ushort pixelValueL16 = (ushort)(pixelValueL8 << 8); // 例如,简单左移
|
||||||
|
|
||||||
|
// 设置 L16 图像的像素值
|
||||||
|
outputImage[x, y] = new L16(pixelValueL16);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return outputImage;
|
||||||
|
}
|
||||||
|
public static Image<L8> ConvertByteArrayToL8Image(byte[] byteArray, int width, int height, int channels)
|
||||||
|
{
|
||||||
|
// 验证通道数至少为1
|
||||||
|
if (channels < 1)
|
||||||
|
{
|
||||||
|
throw new ArgumentException("通道数必须至少为1。");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建一个新的 Image<L8> 对象
|
||||||
|
Image<L8> image = new Image<L8>(Configuration.Default, width, height);
|
||||||
|
|
||||||
|
// 填充图像数据
|
||||||
|
int bytesPerSample = 1; // 每个样本(每通道)1字节
|
||||||
|
for (int y = 0; y < height; y++)
|
||||||
|
{
|
||||||
|
for (int x = 0; x < width; x++)
|
||||||
|
{
|
||||||
|
int baseIndex = (y * width + x) * channels * bytesPerSample;
|
||||||
|
if (channels == 1)
|
||||||
|
{
|
||||||
|
// 单通道灰度
|
||||||
|
byte grayValue = byteArray[baseIndex];
|
||||||
|
image[x, y] = new L8(grayValue);
|
||||||
|
}
|
||||||
|
else if (channels >= 3)
|
||||||
|
{
|
||||||
|
// 三通道RGB,计算加权平均灰度值
|
||||||
|
float r = byteArray[baseIndex];
|
||||||
|
float g = byteArray[baseIndex + 1];
|
||||||
|
float b = byteArray[baseIndex + 2];
|
||||||
|
byte gray = (byte)(0.299 * r + 0.587 * g + 0.114 * b);
|
||||||
|
image[x, y] = new L8(gray);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return image;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Image<L16> ConvertByteArrayToL16Image(byte[] byteArray, int width, int height)
|
||||||
|
{
|
||||||
|
// 确保输入参数有效
|
||||||
|
if (byteArray.Length < width * height)
|
||||||
|
{
|
||||||
|
throw new ArgumentException("字节数组长度不足以填充图像。");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建一个新的 Image<L16> 对象
|
||||||
|
Image<L16> image = new Image<L16>(width, height);
|
||||||
|
|
||||||
|
// 填充图像数据
|
||||||
|
for (int y = 0; y < height; y++)
|
||||||
|
{
|
||||||
|
for (int x = 0; x < width; x++)
|
||||||
|
{
|
||||||
|
// 获取 8 位的像素值
|
||||||
|
byte pixelValueL8 = byteArray[y * width + x];
|
||||||
|
|
||||||
|
// 将 8 位值扩展为 16 位
|
||||||
|
ushort pixelValueL16 = (ushort)(pixelValueL8 << 8); // 或者可以直接设置为 (ushort)pixelValueL8
|
||||||
|
|
||||||
|
// 设置到 L16 图像
|
||||||
|
image[x, y] = new L16(pixelValueL16);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return image;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Bitmap ConvertL8ImageToBitmap(Image<L8> image)
|
||||||
|
{
|
||||||
|
using (var ms = new MemoryStream())
|
||||||
|
{
|
||||||
|
// 将 Image<L8> 保存到内存流中,格式为 BMP
|
||||||
|
image.Save(ms, new BmpEncoder());
|
||||||
|
ms.Position = 0; // 重置流位置
|
||||||
|
|
||||||
|
// 使用内存流创建 Bitmap
|
||||||
|
return new Bitmap(ms);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Image<Rgb24> ConvertByteArrayToRgb24Image(byte[] byteArray, int width, int height, int channels)
|
||||||
|
{
|
||||||
|
// 验证通道数必须为3(RGB)
|
||||||
|
if (channels != 3)
|
||||||
|
{
|
||||||
|
throw new ArgumentException("通道数必须为3,适用于RGB彩色图像。");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建一个新的 Image<Rgb24> 对象
|
||||||
|
Image<Rgb24> image = new Image<Rgb24>(width, height);
|
||||||
|
|
||||||
|
// 填充图像数据
|
||||||
|
int bytesPerPixel = channels; // 每个像素的字节数为3(R、G、B)
|
||||||
|
for (int y = 0; y < height; y++)
|
||||||
|
{
|
||||||
|
for (int x = 0; x < width; x++)
|
||||||
|
{
|
||||||
|
// 计算当前像素在字节数组中的起始位置
|
||||||
|
int baseIndex = (y * width + x) * bytesPerPixel;
|
||||||
|
|
||||||
|
// 确保数组边界
|
||||||
|
if (baseIndex + 2 >= byteArray.Length)
|
||||||
|
{
|
||||||
|
throw new ArgumentException("字节数组长度不足以填充图像。");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 提取 R、G、B 值
|
||||||
|
byte r = byteArray[baseIndex];
|
||||||
|
byte g = byteArray[baseIndex + 1];
|
||||||
|
byte b = byteArray[baseIndex + 2];
|
||||||
|
|
||||||
|
// 设置图像像素
|
||||||
|
image[x, y] = new Rgb24(r, g, b);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return image;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Bitmap ConvertRgb24ImageToBitmap(Image<Rgb24> image)
|
||||||
|
{
|
||||||
|
using (var ms = new MemoryStream())
|
||||||
|
{
|
||||||
|
// 将 Image<Rgb24> 保存到内存流中,格式为 BMP
|
||||||
|
image.Save(ms, new BmpEncoder());
|
||||||
|
ms.Position = 0; // 重置流位置
|
||||||
|
|
||||||
|
// 使用内存流创建 Bitmap
|
||||||
|
return new Bitmap(ms);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public static Bitmap ConvertRgba64ImageToBitmap(Image<Rgba64> image)
|
||||||
|
{
|
||||||
|
// 获取图像的宽度和高度
|
||||||
|
int width = image.Width;
|
||||||
|
int height = image.Height;
|
||||||
|
|
||||||
|
// 创建一个新的 Bitmap 对象
|
||||||
|
Bitmap bitmap = new Bitmap(width, height, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
|
||||||
|
|
||||||
|
// 使用锁定的像素数据进行高效复制
|
||||||
|
for (int y = 0; y < height; y++)
|
||||||
|
{
|
||||||
|
for (int x = 0; x < width; x++)
|
||||||
|
{
|
||||||
|
// 获取当前像素的 RGBA 值
|
||||||
|
Rgba64 pixel = image[x, y];
|
||||||
|
|
||||||
|
// 将 Rgba64 的 16 位值转换为 8 位值
|
||||||
|
byte r = (byte)(pixel.R >> 8); // 右移8位,转换为8位
|
||||||
|
byte g = (byte)(pixel.G >> 8);
|
||||||
|
byte b = (byte)(pixel.B >> 8);
|
||||||
|
byte a = (byte)(pixel.A >> 8);
|
||||||
|
|
||||||
|
// 设置 Bitmap 中对应像素的颜色
|
||||||
|
bitmap.SetPixel(x, y, System.Drawing.Color.FromArgb(a, r, g, b));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return bitmap;
|
||||||
|
}
|
||||||
|
public static Image<Rgb24> ConvertBgrByteArrayToRgb24Image(byte[] byteArray, int width, int height, int channels)
|
||||||
|
{
|
||||||
|
// 验证通道数必须为3(BGR)
|
||||||
|
if (channels != 3)
|
||||||
|
{
|
||||||
|
throw new ArgumentException("通道数必须为3,适用于BGR彩色图像。");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建一个新的 Image<Rgb24> 对象
|
||||||
|
Image<Rgb24> image = new Image<Rgb24>(width, height);
|
||||||
|
|
||||||
|
// 填充图像数据
|
||||||
|
int bytesPerPixel = channels; // 每个像素的字节数为3(B、G、R)
|
||||||
|
for (int y = 0; y < height; y++)
|
||||||
|
{
|
||||||
|
for (int x = 0; x < width; x++)
|
||||||
|
{
|
||||||
|
// 计算当前像素在字节数组中的起始位置
|
||||||
|
int baseIndex = (y * width + x) * bytesPerPixel;
|
||||||
|
|
||||||
|
// 确保数组边界
|
||||||
|
if (baseIndex + 2 >= byteArray.Length)
|
||||||
|
{
|
||||||
|
throw new ArgumentException("字节数组长度不足以填充图像。");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 提取 B、G、R 值
|
||||||
|
byte b = byteArray[baseIndex];
|
||||||
|
byte g = byteArray[baseIndex + 1];
|
||||||
|
byte r = byteArray[baseIndex + 2];
|
||||||
|
|
||||||
|
// 设置图像像素(注意转换为 RGB 顺序)
|
||||||
|
image[x, y] = new Rgb24(r, g, b);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return image;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Image<Rgba64> ConvertByteArrayToRgba64Image(byte[] byteArray, int width, int height, int channels)
|
||||||
|
{
|
||||||
|
// 验证通道数必须为4(RGBA)
|
||||||
|
if (channels != 4)
|
||||||
|
{
|
||||||
|
throw new ArgumentException("通道数必须为4,适用于RGBA彩色图像。");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建一个新的 Image<Rgba64> 对象
|
||||||
|
Image<Rgba64> image = new Image<Rgba64>(width, height);
|
||||||
|
|
||||||
|
// 每个通道的字节数为2(因为是16位)
|
||||||
|
int bytesPerPixel = channels * 2; // 每个像素的字节数(4通道,每个通道2字节)
|
||||||
|
|
||||||
|
// 填充图像数据
|
||||||
|
for (int y = 0; y < height; y++)
|
||||||
|
{
|
||||||
|
for (int x = 0; x < width; x++)
|
||||||
|
{
|
||||||
|
// 计算当前像素在字节数组中的起始位置
|
||||||
|
int baseIndex = (y * width + x) * bytesPerPixel;
|
||||||
|
|
||||||
|
// 确保数组边界
|
||||||
|
if (baseIndex + 7 >= byteArray.Length)
|
||||||
|
{
|
||||||
|
throw new ArgumentException("字节数组长度不足以填充图像。");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 提取 R、G、B、A 值(每个通道是16位,即2个字节)
|
||||||
|
ushort r = (ushort)((byteArray[baseIndex] << 8) | byteArray[baseIndex + 1]);
|
||||||
|
ushort g = (ushort)((byteArray[baseIndex + 2] << 8) | byteArray[baseIndex + 3]);
|
||||||
|
ushort b = (ushort)((byteArray[baseIndex + 4] << 8) | byteArray[baseIndex + 5]);
|
||||||
|
ushort a = (ushort)((byteArray[baseIndex + 6] << 8) | byteArray[baseIndex + 7]);
|
||||||
|
|
||||||
|
// 设置图像像素(RGBA顺序)
|
||||||
|
image[x, y] = new Rgba64(r, g, b, a);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return image;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Image<Rgba64> ConvertByteArrayToRgba64Image(short[] byteArray, int width, int height, int channels)
|
||||||
|
{
|
||||||
|
// 验证通道数必须为4(RGBA)
|
||||||
|
if (channels != 4)
|
||||||
|
{
|
||||||
|
throw new ArgumentException("通道数必须为4,适用于RGBA彩色图像。");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建一个新的 Image<Rgba64> 对象
|
||||||
|
Image<Rgba64> image = new Image<Rgba64>(width, height);
|
||||||
|
|
||||||
|
// 填充图像数据
|
||||||
|
int totalPixels = width * height;
|
||||||
|
|
||||||
|
// 填充图像数据
|
||||||
|
for (int i = 0; i < totalPixels; i++)
|
||||||
|
{
|
||||||
|
// 计算当前像素在字节数组中的起始位置
|
||||||
|
int baseIndex = i * channels;
|
||||||
|
|
||||||
|
// 确保数组边界
|
||||||
|
if (baseIndex + 3 >= byteArray.Length)
|
||||||
|
{
|
||||||
|
throw new ArgumentException("字节数组长度不足以填充图像。");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 提取 R、G、B、A 值
|
||||||
|
ushort r = (ushort)(byteArray[baseIndex] & 0xFFFF); // 读取 R 通道
|
||||||
|
ushort g = (ushort)(byteArray[baseIndex + 1] & 0xFFFF); // 读取 G 通道
|
||||||
|
ushort b = (ushort)(byteArray[baseIndex + 2] & 0xFFFF); // 读取 B 通道
|
||||||
|
ushort a = (ushort)(byteArray[baseIndex + 3] & 0xFFFF); // 读取 A 通道
|
||||||
|
|
||||||
|
// 设置图像像素(RGBA顺序)
|
||||||
|
image[i % width, i / width] = new Rgba64(r, g, b, a);
|
||||||
|
}
|
||||||
|
|
||||||
|
return image;
|
||||||
|
}
|
||||||
|
|
||||||
|
#region 读取WMIMac地址
|
||||||
|
public static string GetMotherboardSerial()
|
||||||
|
{
|
||||||
|
string serialNumber = string.Empty;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT SerialNumber FROM Win32_BaseBoard");
|
||||||
|
foreach (ManagementObject mo in searcher.Get())
|
||||||
|
{
|
||||||
|
serialNumber = mo["SerialNumber"].ToString();
|
||||||
|
break; // 只需一个序列号
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine("获取主板序列号时发生错误: " + ex.Message);
|
||||||
|
}
|
||||||
|
return serialNumber;
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
public static string GetscientificNotation(float diff)
|
||||||
|
{
|
||||||
|
int exponent = (int)Math.Floor(Math.Log10(diff));
|
||||||
|
float normalized = (float)(diff / Math.Pow(10, exponent));
|
||||||
|
|
||||||
|
// 以科学计数法格式化输出
|
||||||
|
string scientificNotation = $"{normalized}e{exponent}";
|
||||||
|
return scientificNotation ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
407
src/PBAnaly/PBAnaly.csproj
Normal file
@ -0,0 +1,407 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
|
<ProjectGuid>{B9CEF793-3D50-48A7-8B1A-3F121ECABE12}</ProjectGuid>
|
||||||
|
<OutputType>WinExe</OutputType>
|
||||||
|
<RootNamespace>PBAnaly</RootNamespace>
|
||||||
|
<AssemblyName>PBAnaly</AssemblyName>
|
||||||
|
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||||
|
<FileAlignment>512</FileAlignment>
|
||||||
|
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||||
|
<Deterministic>true</Deterministic>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>bin\Debug\</OutputPath>
|
||||||
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
<Prefer32Bit>false</Prefer32Bit>
|
||||||
|
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>bin\Release\</OutputPath>
|
||||||
|
<DefineConstants>TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||||
|
<Prefer32Bit>false</Prefer32Bit>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<ApplicationIcon>GS-Analy.ico</ApplicationIcon>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="Microsoft.VisualBasic" />
|
||||||
|
<Reference Include="System" />
|
||||||
|
<Reference Include="System.Core" />
|
||||||
|
<Reference Include="System.Design" />
|
||||||
|
<Reference Include="System.Management" />
|
||||||
|
<Reference Include="System.Windows.Forms.DataVisualization" />
|
||||||
|
<Reference Include="System.Xml.Linq" />
|
||||||
|
<Reference Include="System.Data.DataSetExtensions" />
|
||||||
|
<Reference Include="Microsoft.CSharp" />
|
||||||
|
<Reference Include="System.Data" />
|
||||||
|
<Reference Include="System.Deployment" />
|
||||||
|
<Reference Include="System.Drawing" />
|
||||||
|
<Reference Include="System.Net.Http" />
|
||||||
|
<Reference Include="System.Windows.Forms" />
|
||||||
|
<Reference Include="System.Xml" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="DataProcessForm.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="DataProcessForm.Designer.cs">
|
||||||
|
<DependentUpon>DataProcessForm.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="LaneChartForm.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="LaneChartForm.Designer.cs">
|
||||||
|
<DependentUpon>LaneChartForm.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="LogForm.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="LogForm.Designer.cs">
|
||||||
|
<DependentUpon>LogForm.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="LoginForm.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="LoginForm.Designer.cs">
|
||||||
|
<DependentUpon>LoginForm.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="MainForm.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="MainForm.Designer.cs">
|
||||||
|
<DependentUpon>MainForm.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Module\ImageProcess.cs" />
|
||||||
|
<Compile Include="Module\ImageToolMannage.cs" />
|
||||||
|
<Compile Include="Module\PBAnalyCommMannager.cs" />
|
||||||
|
<Compile Include="Module\util.cs" />
|
||||||
|
<Compile Include="Program.cs" />
|
||||||
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
<Compile Include="Read_Write_Log.cs" />
|
||||||
|
<Compile Include="SettingForm.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="SettingForm.Designer.cs">
|
||||||
|
<DependentUpon>SettingForm.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="SignInForm.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="SignInForm.Designer.cs">
|
||||||
|
<DependentUpon>SignInForm.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="UI\AnalyzeDataForm.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="UI\AnalyzeDataForm.Designer.cs">
|
||||||
|
<DependentUpon>AnalyzeDataForm.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="UI\colorbarControl.cs">
|
||||||
|
<SubType>UserControl</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="UI\colorbarControl.Designer.cs">
|
||||||
|
<DependentUpon>colorbarControl.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="UI\ImagePanel.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="UI\ImagePanel.Designer.cs">
|
||||||
|
<DependentUpon>ImagePanel.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="UI\ImagePanelUser.cs">
|
||||||
|
<SubType>UserControl</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="UI\ImagePanelUser.Designer.cs">
|
||||||
|
<DependentUpon>ImagePanelUser.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="UI\ImageToolPaletteForm.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="UI\ImageToolPaletteForm.Designer.cs">
|
||||||
|
<DependentUpon>ImageToolPaletteForm.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="UI\RowMergeView.cs">
|
||||||
|
<SubType>Component</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="UI\RowMergeView.designer.cs">
|
||||||
|
<DependentUpon>RowMergeView.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<EmbeddedResource Include="DataProcessForm.resx">
|
||||||
|
<DependentUpon>DataProcessForm.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<Compile Include="testAlgForm.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="testAlgForm.Designer.cs">
|
||||||
|
<DependentUpon>testAlgForm.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<EmbeddedResource Include="LaneChartForm.resx">
|
||||||
|
<DependentUpon>LaneChartForm.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="LogForm.resx">
|
||||||
|
<DependentUpon>LogForm.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="LoginForm.resx">
|
||||||
|
<DependentUpon>LoginForm.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="MainForm.resx">
|
||||||
|
<DependentUpon>MainForm.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Properties\Resources.resx">
|
||||||
|
<Generator>ResXFileCodeGenerator</Generator>
|
||||||
|
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<Compile Include="Properties\Resources.Designer.cs">
|
||||||
|
<AutoGen>True</AutoGen>
|
||||||
|
<DependentUpon>Resources.resx</DependentUpon>
|
||||||
|
<DesignTime>True</DesignTime>
|
||||||
|
</Compile>
|
||||||
|
<EmbeddedResource Include="SettingForm.resx">
|
||||||
|
<DependentUpon>SettingForm.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="SignInForm.resx">
|
||||||
|
<DependentUpon>SignInForm.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="testAlgForm.resx">
|
||||||
|
<DependentUpon>testAlgForm.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="UI\AnalyzeDataForm.resx">
|
||||||
|
<DependentUpon>AnalyzeDataForm.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="UI\colorbarControl.resx">
|
||||||
|
<DependentUpon>colorbarControl.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="UI\ImagePanel.resx">
|
||||||
|
<DependentUpon>ImagePanel.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="UI\ImagePanelUser.resx">
|
||||||
|
<DependentUpon>ImagePanelUser.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="UI\ImageToolPaletteForm.resx">
|
||||||
|
<DependentUpon>ImageToolPaletteForm.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="UI\RowMergeView.resx">
|
||||||
|
<DependentUpon>RowMergeView.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<None Include="packages.config" />
|
||||||
|
<None Include="Properties\Settings.settings">
|
||||||
|
<Generator>SettingsSingleFileGenerator</Generator>
|
||||||
|
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||||
|
</None>
|
||||||
|
<Compile Include="Properties\Settings.Designer.cs">
|
||||||
|
<AutoGen>True</AutoGen>
|
||||||
|
<DependentUpon>Settings.settings</DependentUpon>
|
||||||
|
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||||
|
</Compile>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="App.config" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="AntdUI">
|
||||||
|
<Version>1.6.14</Version>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="Aspose.PDF">
|
||||||
|
<Version>24.10.0</Version>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="MaterialSkin">
|
||||||
|
<Version>0.2.1</Version>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="MaterialSkin.2">
|
||||||
|
<Version>2.3.1</Version>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="MetroModernUI">
|
||||||
|
<Version>1.4.0</Version>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="Microsoft.Extensions.DependencyModel">
|
||||||
|
<Version>8.0.2</Version>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions">
|
||||||
|
<Version>8.0.2</Version>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="MiniExcel">
|
||||||
|
<Version>1.34.2</Version>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="Newtonsoft.Json">
|
||||||
|
<Version>13.0.3</Version>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="OpenCvSharp4">
|
||||||
|
<Version>4.10.0.20240616</Version>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="OpenCvSharp4.Extensions">
|
||||||
|
<Version>4.10.0.20240616</Version>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="OpenCvSharp4.runtime.win">
|
||||||
|
<Version>4.10.0.20240616</Version>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="ReaLTaiizor">
|
||||||
|
<Version>3.8.0.7</Version>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="ScottPlot">
|
||||||
|
<Version>5.0.43</Version>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="ScottPlot.WinForms">
|
||||||
|
<Version>5.0.43</Version>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="SixLabors.ImageSharp">
|
||||||
|
<Version>2.1.9</Version>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="SunnyUI">
|
||||||
|
<Version>3.7.0</Version>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="System.Diagnostics.DiagnosticSource">
|
||||||
|
<Version>8.0.1</Version>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="System.Security.AccessControl">
|
||||||
|
<Version>6.0.1</Version>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="System.Text.Encodings.Web">
|
||||||
|
<Version>8.0.0</Version>
|
||||||
|
</PackageReference>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\PBBiologyVC\PBBiologyVC.vcxproj">
|
||||||
|
<Project>{c1dd8a06-7351-4c8d-bd7f-b2be76bb3903}</Project>
|
||||||
|
<Name>PBBiologyVC</Name>
|
||||||
|
</ProjectReference>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\C.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\roi-select.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\yto-icon-X-transit_time.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\zoom-in.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\zoom-out.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\保存.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\壁纸.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\饼干.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\波形设置-未选中.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\波形图.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\窗口最大化_操作_jurassic.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\蛋白质-01.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\導出.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\返回前台.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\分析.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\风控.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\黑白平衡.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\计数器.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\胶原蛋白.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\控制窗口.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\前台.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\图片管理.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\圖片_20240731174523.jpg" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\執行日誌紀錄.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\重置.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\重组蛋白-CAR-T靶点蛋白.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\主页面-图像编辑-正反片.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\放大.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\缩小.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\保存图片.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\全屏.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\线段.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Content Include="GS-Analy.ico" />
|
||||||
|
<None Include="Resources\线段 %281%29.png" />
|
||||||
|
<None Include="Resources\魔术棒,魔法,魔术,一键.png" />
|
||||||
|
<None Include="Resources\圆形.png" />
|
||||||
|
<None Include="Resources\10矩形.png" />
|
||||||
|
<None Include="Resources\Gray.png" />
|
||||||
|
<None Include="Resources\YellowHot_1.bmp" />
|
||||||
|
<None Include="Resources\YellowHot_0.bmp" />
|
||||||
|
<None Include="Resources\Pseudo_1.bmp" />
|
||||||
|
<None Include="Resources\Pseudo_0.bmp" />
|
||||||
|
<None Include="Resources\EtBr_1.bmp" />
|
||||||
|
<None Include="Resources\EtBr_0.bmp" />
|
||||||
|
<None Include="Resources\Black_Yley_1.bmp" />
|
||||||
|
<None Include="Resources\Black_Yley_0.bmp" />
|
||||||
|
<None Include="Resources\Black_SDS_1.bmp" />
|
||||||
|
<None Include="Resources\Black_SDS_0.bmp" />
|
||||||
|
<None Include="Resources\Black_Red_1.bmp" />
|
||||||
|
<None Include="Resources\Black_Red_0.bmp" />
|
||||||
|
<None Include="Resources\Black_Green_1.bmp" />
|
||||||
|
<None Include="Resources\Black_Green_0.bmp" />
|
||||||
|
<None Include="Resources\Black_Blue_1.bmp" />
|
||||||
|
<None Include="Resources\Black_Blue_0.bmp" />
|
||||||
|
<None Include="Resources\京仪科技定稿_画板 1 副本2.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
|
</Project>
|
82
src/PBAnaly/Program.cs
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
using System;
|
||||||
|
using System.Threading;
|
||||||
|
using System.IO;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using PBAnaly.Module;
|
||||||
|
namespace PBAnaly
|
||||||
|
{
|
||||||
|
public static class Global
|
||||||
|
{
|
||||||
|
public static String mDataDirUp = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
|
||||||
|
public static String mDataParent = Directory.GetParent(mDataDirUp).FullName;
|
||||||
|
public static String mDataUser = mDataParent + "\\PBAnaly\\UserData\\";
|
||||||
|
|
||||||
|
//public static String mDataDir = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\TYRAFOS\\data\\Blood\\";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum Autholity
|
||||||
|
{
|
||||||
|
admin, Normal, Visitor
|
||||||
|
}
|
||||||
|
|
||||||
|
public class UserInfo
|
||||||
|
{
|
||||||
|
//0: Admin //1: Normal User //2 :Visitor
|
||||||
|
public Autholity autholity{ get; set; }
|
||||||
|
public string UserID { get; set; }
|
||||||
|
public string E_Mail { get; set; }
|
||||||
|
public string Password { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Log
|
||||||
|
{
|
||||||
|
public string UserID { get; set; }
|
||||||
|
public string ITEM { get; set; }
|
||||||
|
public string Description { get; set; }
|
||||||
|
public string Time { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static class Program
|
||||||
|
{
|
||||||
|
private static Mutex mutex;
|
||||||
|
/// <summary>
|
||||||
|
/// 应用程序的主入口点。
|
||||||
|
/// </summary>
|
||||||
|
[STAThread]
|
||||||
|
static void Main()
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
const string appName = "PBAnaly";
|
||||||
|
bool createdNew;
|
||||||
|
|
||||||
|
mutex = new Mutex(true, appName, out createdNew);
|
||||||
|
|
||||||
|
// 如果已经有一个实例在运行,退出程序
|
||||||
|
if (!createdNew)
|
||||||
|
{
|
||||||
|
MessageBox.Show("应用程序已经在运行。", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#if true
|
||||||
|
string macAddress =util.GetMotherboardSerial();
|
||||||
|
if (macAddress == "PM00P0209N000037" || macAddress == "07D4822_M81D023244" || macAddress == "YQ1711233HY01423" || macAddress == "S312NXCV0056AZMB" || macAddress == "PM82L0235P000452"|| macAddress == "MP2M55J0" || macAddress == "S936NXCV000SJ2MB"|| macAddress == "S730NXCV009371MB")
|
||||||
|
{
|
||||||
|
Application.EnableVisualStyles();
|
||||||
|
Application.SetCompatibleTextRenderingDefault(false);
|
||||||
|
var login = new LoginForm();
|
||||||
|
login.StartPosition = FormStartPosition.CenterScreen;
|
||||||
|
Application.Run(login);
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MessageBox.Show("你没有权限");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
36
src/PBAnaly/Properties/AssemblyInfo.cs
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
using System.Reflection;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
// 有关程序集的一般信息由以下
|
||||||
|
// 控制。更改这些特性值可修改
|
||||||
|
// 与程序集关联的信息。
|
||||||
|
[assembly: AssemblyTitle("BioProject1")]
|
||||||
|
[assembly: AssemblyDescription("")]
|
||||||
|
[assembly: AssemblyConfiguration("")]
|
||||||
|
[assembly: AssemblyCompany("")]
|
||||||
|
[assembly: AssemblyProduct("BioProject1")]
|
||||||
|
[assembly: AssemblyCopyright("Copyright © 2024")]
|
||||||
|
[assembly: AssemblyTrademark("")]
|
||||||
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
|
// 将 ComVisible 设置为 false 会使此程序集中的类型
|
||||||
|
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
|
||||||
|
//请将此类型的 ComVisible 特性设置为 true。
|
||||||
|
[assembly: ComVisible(false)]
|
||||||
|
|
||||||
|
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
|
||||||
|
[assembly: Guid("b9cef793-3d50-48a7-8b1a-3f121ecabe12")]
|
||||||
|
|
||||||
|
// 程序集的版本信息由下列四个值组成:
|
||||||
|
//
|
||||||
|
// 主版本
|
||||||
|
// 次版本
|
||||||
|
// 生成号
|
||||||
|
// 修订号
|
||||||
|
//
|
||||||
|
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
|
||||||
|
//通过使用 "*",如下所示:
|
||||||
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
|
[assembly: AssemblyVersion("1.0.0.0")]
|
||||||
|
[assembly: AssemblyFileVersion("1.0.0.0")]
|
623
src/PBAnaly/Properties/Resources.Designer.cs
generated
Normal file
@ -0,0 +1,623 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// 此代码由工具生成。
|
||||||
|
// 运行时版本:4.0.30319.42000
|
||||||
|
//
|
||||||
|
// 对此文件的更改可能会导致不正确的行为,并且如果
|
||||||
|
// 重新生成代码,这些更改将会丢失。
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace PBAnaly.Properties {
|
||||||
|
using System;
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 一个强类型的资源类,用于查找本地化的字符串等。
|
||||||
|
/// </summary>
|
||||||
|
// 此类是由 StronglyTypedResourceBuilder
|
||||||
|
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
|
||||||
|
// 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
|
||||||
|
// (以 /str 作为命令选项),或重新生成 VS 项目。
|
||||||
|
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
|
||||||
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
|
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||||
|
internal class Resources {
|
||||||
|
|
||||||
|
private static global::System.Resources.ResourceManager resourceMan;
|
||||||
|
|
||||||
|
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||||
|
|
||||||
|
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||||
|
internal Resources() {
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 返回此类使用的缓存的 ResourceManager 实例。
|
||||||
|
/// </summary>
|
||||||
|
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||||
|
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||||
|
get {
|
||||||
|
if (object.ReferenceEquals(resourceMan, null)) {
|
||||||
|
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("PBAnaly.Properties.Resources", typeof(Resources).Assembly);
|
||||||
|
resourceMan = temp;
|
||||||
|
}
|
||||||
|
return resourceMan;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 重写当前线程的 CurrentUICulture 属性,对
|
||||||
|
/// 使用此强类型资源类的所有资源查找执行重写。
|
||||||
|
/// </summary>
|
||||||
|
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||||
|
internal static global::System.Globalization.CultureInfo Culture {
|
||||||
|
get {
|
||||||
|
return resourceCulture;
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
resourceCulture = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap _10矩形 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("10矩形", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap Black_Blue_0 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("Black_Blue_0", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap Black_Blue_1 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("Black_Blue_1", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap Black_Green_0 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("Black_Green_0", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap Black_Green_1 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("Black_Green_1", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap Black_Red_0 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("Black_Red_0", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap Black_Red_1 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("Black_Red_1", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap Black_SDS_0 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("Black_SDS_0", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap Black_SDS_1 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("Black_SDS_1", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap Black_Yley_0 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("Black_Yley_0", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap Black_Yley_1 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("Black_Yley_1", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap C {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("C", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap EtBr_0 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("EtBr_0", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap EtBr_1 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("EtBr_1", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap Gray {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("Gray", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap Pseudo_0 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("Pseudo_0", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap Pseudo_1 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("Pseudo_1", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap roi_select {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("roi-select", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap YellowHot_0 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("YellowHot_0", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap YellowHot_1 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("YellowHot_1", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap yto_icon_X_transit_time {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("yto-icon-X-transit_time", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap zoom_in {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("zoom-in", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap zoom_out {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("zoom-out", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap 主页面_图像编辑_正反片 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("主页面-图像编辑-正反片", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap 京仪科技定稿_画板_1_副本2 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("京仪科技定稿_画板 1 副本2", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap 保存 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("保存", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap 保存1 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("保存1", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap 保存图片 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("保存图片", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap 全屏 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("全屏", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap 分析 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("分析", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap 前台 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("前台", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap 图片管理 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("图片管理", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap 圆形 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("圆形", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap 圆形1 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("圆形1", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap 圖片_20240731174523 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("圖片_20240731174523", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap 執行日誌紀錄 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("執行日誌紀錄", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap 壁纸 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("壁纸", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap 導出 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("導出", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap 控制窗口 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("控制窗口", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap 放大 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("放大", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap 波形图 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("波形图", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap 波形设置_未选中 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("波形设置-未选中", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap 窗口最大化_操作_jurassic {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("窗口最大化_操作_jurassic", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap 线段 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("线段", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap 线段__1_ {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("线段 (1)", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap 缩小 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("缩小", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap 胶原蛋白 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("胶原蛋白", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap 蛋白质_01 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("蛋白质-01", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap 计数器 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("计数器", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap 返回前台 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("返回前台", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap 重组蛋白_CAR_T靶点蛋白 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("重组蛋白-CAR-T靶点蛋白", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap 重置 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("重置", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap 风控 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("风控", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap 饼干 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("饼干", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap 魔术棒_魔法_魔术_一键 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("魔术棒,魔法,魔术,一键", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap 黑白平衡 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("黑白平衡", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
289
src/PBAnaly/Properties/Resources.resx
Normal file
@ -0,0 +1,289 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="Black_Blue_0" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\Black_Blue_0.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="Black_Yley_1" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\Black_Yley_1.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="计数器" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\计数器.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="返回前台" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\返回前台.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="yto-icon-X-transit_time" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\yto-icon-X-transit_time.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="EtBr_1" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\EtBr_1.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="保存图片" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\保存图片.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="线段" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\线段.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="饼干" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\饼干.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="Black_Green_1" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\Black_Green_1.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="Black_Red_1" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\Black_Red_1.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="保存" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\保存.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="重组蛋白-CAR-T靶点蛋白" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\重组蛋白-CAR-T靶点蛋白.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="全屏" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\全屏.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="胶原蛋白" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\胶原蛋白.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="波形设置-未选中" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\波形设置-未选中.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="Black_Blue_1" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\Black_Blue_1.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="zoom-in" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\zoom-in.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="保存1" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\保存.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="圖片_20240731174523" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\圖片_20240731174523.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="重置" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\重置.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="Black_Red_0" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\Black_Red_0.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="京仪科技定稿_画板 1 副本2" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\京仪科技定稿_画板 1 副本2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="zoom-out" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\zoom-out.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="roi-select" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\roi-select.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="风控" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\风控.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="分析" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\分析.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="控制窗口" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\控制窗口.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="Black_SDS_0" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\Black_SDS_0.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="EtBr_0" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\EtBr_0.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="Black_Yley_0" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\Black_Yley_0.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="窗口最大化_操作_jurassic" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\窗口最大化_操作_jurassic.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="YellowHot_0" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\YellowHot_0.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="Pseudo_0" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\Pseudo_0.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="C" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\C.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="图片管理" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\图片管理.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="圆形" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\圆形.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="圆形1" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\圆形.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="主页面-图像编辑-正反片" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\主页面-图像编辑-正反片.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="缩小" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\缩小.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="黑白平衡" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\黑白平衡.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="導出" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\導出.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="Pseudo_1" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\Pseudo_1.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="Gray" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\Gray.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="10矩形" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\10矩形.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="放大" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\放大.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="Black_Green_0" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\Black_Green_0.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="YellowHot_1" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\YellowHot_1.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="蛋白质-01" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\蛋白质-01.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="壁纸" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\壁纸.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="執行日誌紀錄" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\執行日誌紀錄.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="Black_SDS_1" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\Black_SDS_1.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="前台" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\前台.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="波形图" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\波形图.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="魔术棒,魔法,魔术,一键" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\魔术棒,魔法,魔术,一键.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="线段 (1)" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\线段 (1).png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
26
src/PBAnaly/Properties/Settings.Designer.cs
generated
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// 此代码由工具生成。
|
||||||
|
// 运行时版本:4.0.30319.42000
|
||||||
|
//
|
||||||
|
// 对此文件的更改可能会导致不正确的行为,并且如果
|
||||||
|
// 重新生成代码,这些更改将会丢失。
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace PBAnaly.Properties {
|
||||||
|
|
||||||
|
|
||||||
|
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||||
|
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.10.0.0")]
|
||||||
|
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||||
|
|
||||||
|
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||||
|
|
||||||
|
public static Settings Default {
|
||||||
|
get {
|
||||||
|
return defaultInstance;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
7
src/PBAnaly/Properties/Settings.settings
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<?xml version='1.0' encoding='utf-8'?>
|
||||||
|
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
|
||||||
|
<Profiles>
|
||||||
|
<Profile Name="(Default)" />
|
||||||
|
</Profiles>
|
||||||
|
<Settings />
|
||||||
|
</SettingsFile>
|
86
src/PBAnaly/Read_Write_Log.cs
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
using Microsoft.VisualBasic.FileIO;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace PBAnaly
|
||||||
|
{
|
||||||
|
public class Read_Write_Log
|
||||||
|
{
|
||||||
|
public Read_Write_Log()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public string LogFile = Global.mDataUser + "Log.csv";
|
||||||
|
|
||||||
|
public List<Log> ReadCsv(string FilePath)
|
||||||
|
{
|
||||||
|
List<Log> returnInfo = new List<Log>();
|
||||||
|
|
||||||
|
using (TextFieldParser parser = new TextFieldParser(FilePath))
|
||||||
|
{
|
||||||
|
parser.TextFieldType = FieldType.Delimited;
|
||||||
|
parser.SetDelimiters(",");
|
||||||
|
// Read and parse each line of the CSV file
|
||||||
|
try
|
||||||
|
{
|
||||||
|
while (!parser.EndOfData)
|
||||||
|
{
|
||||||
|
string[] fields = parser.ReadFields();
|
||||||
|
int count = 0;
|
||||||
|
string UserId = "";
|
||||||
|
string Item = "";
|
||||||
|
string Description = "";
|
||||||
|
string Time = "";
|
||||||
|
foreach (var item in fields)
|
||||||
|
{
|
||||||
|
if ((count % 4) == 0)
|
||||||
|
{
|
||||||
|
UserId = item;
|
||||||
|
}
|
||||||
|
else if ((count % 4) == 1)
|
||||||
|
{
|
||||||
|
Item = item;
|
||||||
|
}
|
||||||
|
else if ((count % 4) == 2)
|
||||||
|
{
|
||||||
|
Description = item;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Time = item;
|
||||||
|
returnInfo.Add(new Log() { UserID = UserId, ITEM = Item, Description = Description, Time = Time});
|
||||||
|
}
|
||||||
|
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
parser.Close();
|
||||||
|
return returnInfo;
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void WriteCsv(string FilePath, List<Log> LogInfos)
|
||||||
|
{
|
||||||
|
using (var file = new StreamWriter(FilePath))
|
||||||
|
{
|
||||||
|
foreach (var item in LogInfos)
|
||||||
|
{
|
||||||
|
file.WriteLineAsync($"{item.UserID},{item.ITEM},{item.Description},{item.Time}");
|
||||||
|
}
|
||||||
|
|
||||||
|
file.Close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
BIN
src/PBAnaly/Resources/10矩形.png
Normal file
After Width: | Height: | Size: 684 B |
BIN
src/PBAnaly/Resources/Black_Blue_0.bmp
Normal file
After Width: | Height: | Size: 1.5 MiB |
BIN
src/PBAnaly/Resources/Black_Blue_1.bmp
Normal file
After Width: | Height: | Size: 1.5 MiB |
BIN
src/PBAnaly/Resources/Black_Green_0.bmp
Normal file
After Width: | Height: | Size: 1.5 MiB |
BIN
src/PBAnaly/Resources/Black_Green_1.bmp
Normal file
After Width: | Height: | Size: 1.5 MiB |
BIN
src/PBAnaly/Resources/Black_Red_0.bmp
Normal file
After Width: | Height: | Size: 1.5 MiB |
BIN
src/PBAnaly/Resources/Black_Red_1.bmp
Normal file
After Width: | Height: | Size: 1.5 MiB |
BIN
src/PBAnaly/Resources/Black_SDS_0.bmp
Normal file
After Width: | Height: | Size: 1.5 MiB |
BIN
src/PBAnaly/Resources/Black_SDS_1.bmp
Normal file
After Width: | Height: | Size: 1.5 MiB |
BIN
src/PBAnaly/Resources/Black_Yley_0.bmp
Normal file
After Width: | Height: | Size: 1.5 MiB |
BIN
src/PBAnaly/Resources/Black_Yley_1.bmp
Normal file
After Width: | Height: | Size: 1.5 MiB |
BIN
src/PBAnaly/Resources/C.png
Normal file
After Width: | Height: | Size: 9.6 KiB |
BIN
src/PBAnaly/Resources/EtBr_0.bmp
Normal file
After Width: | Height: | Size: 1.5 MiB |
BIN
src/PBAnaly/Resources/EtBr_1.bmp
Normal file
After Width: | Height: | Size: 1.5 MiB |
BIN
src/PBAnaly/Resources/GS-Analy.ico
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
src/PBAnaly/Resources/Gray.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
src/PBAnaly/Resources/Pseudo_0.bmp
Normal file
After Width: | Height: | Size: 1.5 MiB |
BIN
src/PBAnaly/Resources/Pseudo_1.bmp
Normal file
After Width: | Height: | Size: 1.5 MiB |
BIN
src/PBAnaly/Resources/YellowHot_0.bmp
Normal file
After Width: | Height: | Size: 1.5 MiB |
BIN
src/PBAnaly/Resources/YellowHot_1.bmp
Normal file
After Width: | Height: | Size: 1.5 MiB |
BIN
src/PBAnaly/Resources/load.png
Normal file
After Width: | Height: | Size: 6.2 KiB |
BIN
src/PBAnaly/Resources/roi-select.png
Normal file
After Width: | Height: | Size: 4.4 KiB |
BIN
src/PBAnaly/Resources/yto-icon-X-transit_time.png
Normal file
After Width: | Height: | Size: 6.7 KiB |
BIN
src/PBAnaly/Resources/zoom-in.png
Normal file
After Width: | Height: | Size: 708 B |
BIN
src/PBAnaly/Resources/zoom-out.png
Normal file
After Width: | Height: | Size: 687 B |
BIN
src/PBAnaly/Resources/主页面-图像编辑-正反片.png
Normal file
After Width: | Height: | Size: 5.1 KiB |
BIN
src/PBAnaly/Resources/京仪科技定稿_画板 1 副本2.png
Normal file
After Width: | Height: | Size: 90 KiB |
BIN
src/PBAnaly/Resources/保存.png
Normal file
After Width: | Height: | Size: 3.8 KiB |
BIN
src/PBAnaly/Resources/保存图片.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
src/PBAnaly/Resources/全屏.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
src/PBAnaly/Resources/分析.png
Normal file
After Width: | Height: | Size: 3.7 KiB |
BIN
src/PBAnaly/Resources/前台.png
Normal file
After Width: | Height: | Size: 3.4 KiB |
BIN
src/PBAnaly/Resources/图片管理.png
Normal file
After Width: | Height: | Size: 7.8 KiB |
BIN
src/PBAnaly/Resources/圆形.png
Normal file
After Width: | Height: | Size: 829 B |
BIN
src/PBAnaly/Resources/圖片_20240731174523.jpg
Normal file
After Width: | Height: | Size: 175 KiB |
BIN
src/PBAnaly/Resources/執行日誌紀錄.png
Normal file
After Width: | Height: | Size: 2.9 KiB |
BIN
src/PBAnaly/Resources/壁纸.png
Normal file
After Width: | Height: | Size: 5.7 KiB |
BIN
src/PBAnaly/Resources/導出.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
src/PBAnaly/Resources/微信图片_20241104230443.jpg
Normal file
After Width: | Height: | Size: 175 KiB |
BIN
src/PBAnaly/Resources/控制窗口.png
Normal file
After Width: | Height: | Size: 3.4 KiB |
BIN
src/PBAnaly/Resources/放大.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
src/PBAnaly/Resources/波形图.png
Normal file
After Width: | Height: | Size: 6.3 KiB |
BIN
src/PBAnaly/Resources/波形设置-未选中.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
src/PBAnaly/Resources/窗口最大化_操作_jurassic.png
Normal file
After Width: | Height: | Size: 4.4 KiB |
BIN
src/PBAnaly/Resources/线段 (1).png
Normal file
After Width: | Height: | Size: 718 B |
BIN
src/PBAnaly/Resources/线段.png
Normal file
After Width: | Height: | Size: 761 B |
BIN
src/PBAnaly/Resources/缩小.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
BIN
src/PBAnaly/Resources/胶原蛋白.png
Normal file
After Width: | Height: | Size: 8.9 KiB |
BIN
src/PBAnaly/Resources/蛋白质-01.png
Normal file
After Width: | Height: | Size: 9.5 KiB |
BIN
src/PBAnaly/Resources/计数器.png
Normal file
After Width: | Height: | Size: 5.4 KiB |
BIN
src/PBAnaly/Resources/返回前台.png
Normal file
After Width: | Height: | Size: 3.4 KiB |
BIN
src/PBAnaly/Resources/重组蛋白-CAR-T靶点蛋白.png
Normal file
After Width: | Height: | Size: 9.7 KiB |
BIN
src/PBAnaly/Resources/重置.png
Normal file
After Width: | Height: | Size: 7.5 KiB |
BIN
src/PBAnaly/Resources/风控.png
Normal file
After Width: | Height: | Size: 4.4 KiB |
BIN
src/PBAnaly/Resources/饼干.png
Normal file
After Width: | Height: | Size: 7.4 KiB |
BIN
src/PBAnaly/Resources/魔术棒,魔法,魔术,一键.png
Normal file
After Width: | Height: | Size: 572 B |
BIN
src/PBAnaly/Resources/黑白平衡.png
Normal file
After Width: | Height: | Size: 9.4 KiB |
80
src/PBAnaly/SettingForm.Designer.cs
generated
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
namespace PBAnaly
|
||||||
|
{
|
||||||
|
partial class SettingForm
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
this.panel1 = new System.Windows.Forms.Panel();
|
||||||
|
this.materialSwitch_UI = new MaterialSkin.Controls.MaterialSwitch();
|
||||||
|
this.panel1.SuspendLayout();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// panel1
|
||||||
|
//
|
||||||
|
this.panel1.Controls.Add(this.materialSwitch_UI);
|
||||||
|
this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.panel1.Location = new System.Drawing.Point(3, 64);
|
||||||
|
this.panel1.Name = "panel1";
|
||||||
|
this.panel1.Size = new System.Drawing.Size(421, 232);
|
||||||
|
this.panel1.TabIndex = 0;
|
||||||
|
//
|
||||||
|
// materialSwitch_UI
|
||||||
|
//
|
||||||
|
this.materialSwitch_UI.AutoSize = true;
|
||||||
|
this.materialSwitch_UI.Depth = 0;
|
||||||
|
this.materialSwitch_UI.Location = new System.Drawing.Point(11, 17);
|
||||||
|
this.materialSwitch_UI.Margin = new System.Windows.Forms.Padding(0);
|
||||||
|
this.materialSwitch_UI.MouseLocation = new System.Drawing.Point(-1, -1);
|
||||||
|
this.materialSwitch_UI.MouseState = MaterialSkin.MouseState.HOVER;
|
||||||
|
this.materialSwitch_UI.Name = "materialSwitch_UI";
|
||||||
|
this.materialSwitch_UI.Ripple = true;
|
||||||
|
this.materialSwitch_UI.Size = new System.Drawing.Size(195, 37);
|
||||||
|
this.materialSwitch_UI.TabIndex = 12;
|
||||||
|
this.materialSwitch_UI.Text = "Dark / Light Theme";
|
||||||
|
this.materialSwitch_UI.UseVisualStyleBackColor = true;
|
||||||
|
this.materialSwitch_UI.CheckedChanged += new System.EventHandler(this.materialSwitch_UI_CheckedChanged);
|
||||||
|
//
|
||||||
|
// SettingForm
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(427, 299);
|
||||||
|
this.Controls.Add(this.panel1);
|
||||||
|
this.Name = "SettingForm";
|
||||||
|
this.Text = "Setting";
|
||||||
|
this.panel1.ResumeLayout(false);
|
||||||
|
this.panel1.PerformLayout();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private System.Windows.Forms.Panel panel1;
|
||||||
|
private MaterialSkin.Controls.MaterialSwitch materialSwitch_UI;
|
||||||
|
}
|
||||||
|
}
|
49
src/PBAnaly/SettingForm.cs
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using MaterialSkin;
|
||||||
|
using MaterialSkin.Controls;
|
||||||
|
|
||||||
|
namespace PBAnaly
|
||||||
|
{
|
||||||
|
public partial class SettingForm : MaterialForm
|
||||||
|
{
|
||||||
|
public SettingForm(MaterialSkinManager materialSkinManager)
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
UIInit();
|
||||||
|
Inn_materialSkinManager = materialSkinManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
public MaterialSkinManager Inn_materialSkinManager;
|
||||||
|
|
||||||
|
public void UIInit()
|
||||||
|
{
|
||||||
|
//this.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw | ControlStyles.AllPaintingInWmPaint, true);
|
||||||
|
//Inn_materialSkinManager = MaterialSkinManager.Instance; // 初始化 MaterialSkinManager 实例
|
||||||
|
//Inn_materialSkinManager.AddFormToManage(this); // 将要应用 Material Design 的窗体添加到管理列表中
|
||||||
|
//Inn_materialSkinManager.Theme = MaterialSkinManager.Themes.DARK; // Theme 属性用来设置整体的主题
|
||||||
|
//Inn_materialSkinManager.ColorScheme = new ColorScheme(Primary.BlueGrey800, Primary.BlueGrey900, Primary.BlueGrey500, Accent.Cyan700, TextShade.WHITE); // ColorScheme 属性来设置配色方案
|
||||||
|
}
|
||||||
|
|
||||||
|
private void materialSwitch_UI_CheckedChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (materialSwitch_UI.Checked == true)
|
||||||
|
{
|
||||||
|
Inn_materialSkinManager.Theme = MaterialSkinManager.Themes.LIGHT; // Theme 属性用来设置整体的主题
|
||||||
|
Inn_materialSkinManager.ColorScheme = new ColorScheme(Primary.Purple900, Primary.Purple800, Primary.BlueGrey300, Accent.Purple700, TextShade.WHITE); // ColorScheme 属性来设置配色方案
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Inn_materialSkinManager.Theme = MaterialSkinManager.Themes.DARK; // Theme 属性用来设置整体的主题
|
||||||
|
Inn_materialSkinManager.ColorScheme = new ColorScheme(Primary.BlueGrey800, Primary.BlueGrey900, Primary.BlueGrey500, Accent.Indigo700, TextShade.WHITE); // ColorScheme 属性来设置配色方案
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
120
src/PBAnaly/SettingForm.resx
Normal file
@ -0,0 +1,120 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
267
src/PBAnaly/SignInForm.Designer.cs
generated
Normal file
@ -0,0 +1,267 @@
|
|||||||
|
namespace PBAnaly
|
||||||
|
{
|
||||||
|
partial class SignInForm
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
this.userName_materialTextBox = new MaterialSkin.Controls.MaterialTextBox2();
|
||||||
|
this.email_materialTextBox = new MaterialSkin.Controls.MaterialTextBox2();
|
||||||
|
this.password_materialTextBox = new MaterialSkin.Controls.MaterialTextBox2();
|
||||||
|
this.confirmPassword_materialTextBox = new MaterialSkin.Controls.MaterialTextBox2();
|
||||||
|
this.signIn_materialButton = new MaterialSkin.Controls.MaterialButton();
|
||||||
|
this.materialLabel_ID = new MaterialSkin.Controls.MaterialLabel();
|
||||||
|
this.materialLabel_email = new MaterialSkin.Controls.MaterialLabel();
|
||||||
|
this.materialLabel_PS = new MaterialSkin.Controls.MaterialLabel();
|
||||||
|
this.materialLabel_PW = new MaterialSkin.Controls.MaterialLabel();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// userName_materialTextBox
|
||||||
|
//
|
||||||
|
this.userName_materialTextBox.AnimateReadOnly = false;
|
||||||
|
this.userName_materialTextBox.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
|
||||||
|
this.userName_materialTextBox.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal;
|
||||||
|
this.userName_materialTextBox.Depth = 0;
|
||||||
|
this.userName_materialTextBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel);
|
||||||
|
this.userName_materialTextBox.HideSelection = true;
|
||||||
|
this.userName_materialTextBox.LeadingIcon = null;
|
||||||
|
this.userName_materialTextBox.Location = new System.Drawing.Point(39, 92);
|
||||||
|
this.userName_materialTextBox.MaxLength = 32767;
|
||||||
|
this.userName_materialTextBox.MouseState = MaterialSkin.MouseState.OUT;
|
||||||
|
this.userName_materialTextBox.Name = "userName_materialTextBox";
|
||||||
|
this.userName_materialTextBox.PasswordChar = '\0';
|
||||||
|
this.userName_materialTextBox.PrefixSuffixText = null;
|
||||||
|
this.userName_materialTextBox.ReadOnly = false;
|
||||||
|
this.userName_materialTextBox.RightToLeft = System.Windows.Forms.RightToLeft.No;
|
||||||
|
this.userName_materialTextBox.SelectedText = "";
|
||||||
|
this.userName_materialTextBox.SelectionLength = 0;
|
||||||
|
this.userName_materialTextBox.SelectionStart = 0;
|
||||||
|
this.userName_materialTextBox.ShortcutsEnabled = true;
|
||||||
|
this.userName_materialTextBox.Size = new System.Drawing.Size(401, 48);
|
||||||
|
this.userName_materialTextBox.TabIndex = 1;
|
||||||
|
this.userName_materialTextBox.TabStop = false;
|
||||||
|
this.userName_materialTextBox.Text = "UserName Or ID";
|
||||||
|
this.userName_materialTextBox.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
|
||||||
|
this.userName_materialTextBox.TrailingIcon = null;
|
||||||
|
this.userName_materialTextBox.UseSystemPasswordChar = false;
|
||||||
|
this.userName_materialTextBox.Click += new System.EventHandler(this.userName_materialTextBox_Click);
|
||||||
|
//
|
||||||
|
// email_materialTextBox
|
||||||
|
//
|
||||||
|
this.email_materialTextBox.AnimateReadOnly = false;
|
||||||
|
this.email_materialTextBox.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
|
||||||
|
this.email_materialTextBox.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal;
|
||||||
|
this.email_materialTextBox.Depth = 0;
|
||||||
|
this.email_materialTextBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel);
|
||||||
|
this.email_materialTextBox.HideSelection = true;
|
||||||
|
this.email_materialTextBox.LeadingIcon = null;
|
||||||
|
this.email_materialTextBox.Location = new System.Drawing.Point(39, 174);
|
||||||
|
this.email_materialTextBox.MaxLength = 32767;
|
||||||
|
this.email_materialTextBox.MouseState = MaterialSkin.MouseState.OUT;
|
||||||
|
this.email_materialTextBox.Name = "email_materialTextBox";
|
||||||
|
this.email_materialTextBox.PasswordChar = '\0';
|
||||||
|
this.email_materialTextBox.PrefixSuffixText = null;
|
||||||
|
this.email_materialTextBox.ReadOnly = false;
|
||||||
|
this.email_materialTextBox.RightToLeft = System.Windows.Forms.RightToLeft.No;
|
||||||
|
this.email_materialTextBox.SelectedText = "";
|
||||||
|
this.email_materialTextBox.SelectionLength = 0;
|
||||||
|
this.email_materialTextBox.SelectionStart = 0;
|
||||||
|
this.email_materialTextBox.ShortcutsEnabled = true;
|
||||||
|
this.email_materialTextBox.Size = new System.Drawing.Size(401, 48);
|
||||||
|
this.email_materialTextBox.TabIndex = 2;
|
||||||
|
this.email_materialTextBox.TabStop = false;
|
||||||
|
this.email_materialTextBox.Text = "E-Mail";
|
||||||
|
this.email_materialTextBox.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
|
||||||
|
this.email_materialTextBox.TrailingIcon = null;
|
||||||
|
this.email_materialTextBox.UseSystemPasswordChar = false;
|
||||||
|
this.email_materialTextBox.Click += new System.EventHandler(this.email_materialTextBox_Click);
|
||||||
|
//
|
||||||
|
// password_materialTextBox
|
||||||
|
//
|
||||||
|
this.password_materialTextBox.AnimateReadOnly = false;
|
||||||
|
this.password_materialTextBox.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
|
||||||
|
this.password_materialTextBox.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal;
|
||||||
|
this.password_materialTextBox.Depth = 0;
|
||||||
|
this.password_materialTextBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel);
|
||||||
|
this.password_materialTextBox.HideSelection = true;
|
||||||
|
this.password_materialTextBox.LeadingIcon = null;
|
||||||
|
this.password_materialTextBox.Location = new System.Drawing.Point(39, 256);
|
||||||
|
this.password_materialTextBox.MaxLength = 32767;
|
||||||
|
this.password_materialTextBox.MouseState = MaterialSkin.MouseState.OUT;
|
||||||
|
this.password_materialTextBox.Name = "password_materialTextBox";
|
||||||
|
this.password_materialTextBox.PasswordChar = '\0';
|
||||||
|
this.password_materialTextBox.PrefixSuffixText = null;
|
||||||
|
this.password_materialTextBox.ReadOnly = false;
|
||||||
|
this.password_materialTextBox.RightToLeft = System.Windows.Forms.RightToLeft.No;
|
||||||
|
this.password_materialTextBox.SelectedText = "";
|
||||||
|
this.password_materialTextBox.SelectionLength = 0;
|
||||||
|
this.password_materialTextBox.SelectionStart = 0;
|
||||||
|
this.password_materialTextBox.ShortcutsEnabled = true;
|
||||||
|
this.password_materialTextBox.Size = new System.Drawing.Size(401, 48);
|
||||||
|
this.password_materialTextBox.TabIndex = 3;
|
||||||
|
this.password_materialTextBox.TabStop = false;
|
||||||
|
this.password_materialTextBox.Text = "Password";
|
||||||
|
this.password_materialTextBox.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
|
||||||
|
this.password_materialTextBox.TrailingIcon = null;
|
||||||
|
this.password_materialTextBox.UseSystemPasswordChar = false;
|
||||||
|
this.password_materialTextBox.Click += new System.EventHandler(this.password_materialTextBox_Click);
|
||||||
|
//
|
||||||
|
// confirmPassword_materialTextBox
|
||||||
|
//
|
||||||
|
this.confirmPassword_materialTextBox.AnimateReadOnly = false;
|
||||||
|
this.confirmPassword_materialTextBox.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
|
||||||
|
this.confirmPassword_materialTextBox.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal;
|
||||||
|
this.confirmPassword_materialTextBox.Depth = 0;
|
||||||
|
this.confirmPassword_materialTextBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel);
|
||||||
|
this.confirmPassword_materialTextBox.HideSelection = true;
|
||||||
|
this.confirmPassword_materialTextBox.LeadingIcon = null;
|
||||||
|
this.confirmPassword_materialTextBox.Location = new System.Drawing.Point(39, 342);
|
||||||
|
this.confirmPassword_materialTextBox.MaxLength = 32767;
|
||||||
|
this.confirmPassword_materialTextBox.MouseState = MaterialSkin.MouseState.OUT;
|
||||||
|
this.confirmPassword_materialTextBox.Name = "confirmPassword_materialTextBox";
|
||||||
|
this.confirmPassword_materialTextBox.PasswordChar = '\0';
|
||||||
|
this.confirmPassword_materialTextBox.PrefixSuffixText = null;
|
||||||
|
this.confirmPassword_materialTextBox.ReadOnly = false;
|
||||||
|
this.confirmPassword_materialTextBox.RightToLeft = System.Windows.Forms.RightToLeft.No;
|
||||||
|
this.confirmPassword_materialTextBox.SelectedText = "";
|
||||||
|
this.confirmPassword_materialTextBox.SelectionLength = 0;
|
||||||
|
this.confirmPassword_materialTextBox.SelectionStart = 0;
|
||||||
|
this.confirmPassword_materialTextBox.ShortcutsEnabled = true;
|
||||||
|
this.confirmPassword_materialTextBox.Size = new System.Drawing.Size(401, 48);
|
||||||
|
this.confirmPassword_materialTextBox.TabIndex = 4;
|
||||||
|
this.confirmPassword_materialTextBox.TabStop = false;
|
||||||
|
this.confirmPassword_materialTextBox.Text = "Confirm Password";
|
||||||
|
this.confirmPassword_materialTextBox.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
|
||||||
|
this.confirmPassword_materialTextBox.TrailingIcon = null;
|
||||||
|
this.confirmPassword_materialTextBox.UseSystemPasswordChar = false;
|
||||||
|
this.confirmPassword_materialTextBox.Click += new System.EventHandler(this.confirmPassword_materialTextBox_Click);
|
||||||
|
this.confirmPassword_materialTextBox.TextChanged += new System.EventHandler(this.confirmPassword_materialTextBox_TextChanged);
|
||||||
|
//
|
||||||
|
// signIn_materialButton
|
||||||
|
//
|
||||||
|
this.signIn_materialButton.AutoSize = false;
|
||||||
|
this.signIn_materialButton.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||||
|
this.signIn_materialButton.Density = MaterialSkin.Controls.MaterialButton.MaterialButtonDensity.Default;
|
||||||
|
this.signIn_materialButton.Depth = 0;
|
||||||
|
this.signIn_materialButton.HighEmphasis = true;
|
||||||
|
this.signIn_materialButton.Icon = null;
|
||||||
|
this.signIn_materialButton.Location = new System.Drawing.Point(232, 421);
|
||||||
|
this.signIn_materialButton.Margin = new System.Windows.Forms.Padding(4, 6, 4, 6);
|
||||||
|
this.signIn_materialButton.MouseState = MaterialSkin.MouseState.HOVER;
|
||||||
|
this.signIn_materialButton.Name = "signIn_materialButton";
|
||||||
|
this.signIn_materialButton.NoAccentTextColor = System.Drawing.Color.Empty;
|
||||||
|
this.signIn_materialButton.Size = new System.Drawing.Size(208, 36);
|
||||||
|
this.signIn_materialButton.TabIndex = 5;
|
||||||
|
this.signIn_materialButton.Text = "SIGN IN";
|
||||||
|
this.signIn_materialButton.Type = MaterialSkin.Controls.MaterialButton.MaterialButtonType.Contained;
|
||||||
|
this.signIn_materialButton.UseAccentColor = false;
|
||||||
|
this.signIn_materialButton.UseVisualStyleBackColor = true;
|
||||||
|
this.signIn_materialButton.Click += new System.EventHandler(this.signIn_materialButton_Click);
|
||||||
|
//
|
||||||
|
// materialLabel_ID
|
||||||
|
//
|
||||||
|
this.materialLabel_ID.AutoSize = true;
|
||||||
|
this.materialLabel_ID.Depth = 0;
|
||||||
|
this.materialLabel_ID.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel);
|
||||||
|
this.materialLabel_ID.Location = new System.Drawing.Point(42, 143);
|
||||||
|
this.materialLabel_ID.MouseState = MaterialSkin.MouseState.HOVER;
|
||||||
|
this.materialLabel_ID.Name = "materialLabel_ID";
|
||||||
|
this.materialLabel_ID.Size = new System.Drawing.Size(1, 0);
|
||||||
|
this.materialLabel_ID.TabIndex = 7;
|
||||||
|
this.materialLabel_ID.UseAccent = true;
|
||||||
|
//
|
||||||
|
// materialLabel_email
|
||||||
|
//
|
||||||
|
this.materialLabel_email.AutoSize = true;
|
||||||
|
this.materialLabel_email.BackColor = System.Drawing.Color.Red;
|
||||||
|
this.materialLabel_email.Depth = 0;
|
||||||
|
this.materialLabel_email.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel);
|
||||||
|
this.materialLabel_email.Location = new System.Drawing.Point(41, 225);
|
||||||
|
this.materialLabel_email.MouseState = MaterialSkin.MouseState.HOVER;
|
||||||
|
this.materialLabel_email.Name = "materialLabel_email";
|
||||||
|
this.materialLabel_email.Size = new System.Drawing.Size(1, 0);
|
||||||
|
this.materialLabel_email.TabIndex = 8;
|
||||||
|
this.materialLabel_email.UseAccent = true;
|
||||||
|
//
|
||||||
|
// materialLabel_PS
|
||||||
|
//
|
||||||
|
this.materialLabel_PS.AutoSize = true;
|
||||||
|
this.materialLabel_PS.Depth = 0;
|
||||||
|
this.materialLabel_PS.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel);
|
||||||
|
this.materialLabel_PS.Location = new System.Drawing.Point(40, 307);
|
||||||
|
this.materialLabel_PS.MouseState = MaterialSkin.MouseState.HOVER;
|
||||||
|
this.materialLabel_PS.Name = "materialLabel_PS";
|
||||||
|
this.materialLabel_PS.Size = new System.Drawing.Size(1, 0);
|
||||||
|
this.materialLabel_PS.TabIndex = 9;
|
||||||
|
this.materialLabel_PS.UseAccent = true;
|
||||||
|
//
|
||||||
|
// materialLabel_PW
|
||||||
|
//
|
||||||
|
this.materialLabel_PW.AutoSize = true;
|
||||||
|
this.materialLabel_PW.BackColor = System.Drawing.SystemColors.Control;
|
||||||
|
this.materialLabel_PW.Depth = 0;
|
||||||
|
this.materialLabel_PW.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel);
|
||||||
|
this.materialLabel_PW.Location = new System.Drawing.Point(41, 393);
|
||||||
|
this.materialLabel_PW.MouseState = MaterialSkin.MouseState.HOVER;
|
||||||
|
this.materialLabel_PW.Name = "materialLabel_PW";
|
||||||
|
this.materialLabel_PW.Size = new System.Drawing.Size(1, 0);
|
||||||
|
this.materialLabel_PW.TabIndex = 10;
|
||||||
|
this.materialLabel_PW.UseAccent = true;
|
||||||
|
//
|
||||||
|
// SignInForm
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(484, 486);
|
||||||
|
this.Controls.Add(this.materialLabel_PW);
|
||||||
|
this.Controls.Add(this.materialLabel_PS);
|
||||||
|
this.Controls.Add(this.materialLabel_email);
|
||||||
|
this.Controls.Add(this.materialLabel_ID);
|
||||||
|
this.Controls.Add(this.signIn_materialButton);
|
||||||
|
this.Controls.Add(this.confirmPassword_materialTextBox);
|
||||||
|
this.Controls.Add(this.password_materialTextBox);
|
||||||
|
this.Controls.Add(this.email_materialTextBox);
|
||||||
|
this.Controls.Add(this.userName_materialTextBox);
|
||||||
|
this.Name = "SignInForm";
|
||||||
|
this.Text = "SIGN IN";
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private MaterialSkin.Controls.MaterialTextBox2 userName_materialTextBox;
|
||||||
|
private MaterialSkin.Controls.MaterialTextBox2 email_materialTextBox;
|
||||||
|
private MaterialSkin.Controls.MaterialTextBox2 password_materialTextBox;
|
||||||
|
private MaterialSkin.Controls.MaterialTextBox2 confirmPassword_materialTextBox;
|
||||||
|
private MaterialSkin.Controls.MaterialButton signIn_materialButton;
|
||||||
|
private MaterialSkin.Controls.MaterialLabel materialLabel_ID;
|
||||||
|
private MaterialSkin.Controls.MaterialLabel materialLabel_email;
|
||||||
|
private MaterialSkin.Controls.MaterialLabel materialLabel_PS;
|
||||||
|
private MaterialSkin.Controls.MaterialLabel materialLabel_PW;
|
||||||
|
}
|
||||||
|
}
|
265
src/PBAnaly/SignInForm.cs
Normal file
@ -0,0 +1,265 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using System.IO;
|
||||||
|
using MaterialSkin;
|
||||||
|
using MaterialSkin.Controls;
|
||||||
|
using Microsoft.VisualBasic.FileIO;
|
||||||
|
|
||||||
|
namespace PBAnaly
|
||||||
|
{
|
||||||
|
|
||||||
|
public partial class SignInForm : MaterialForm
|
||||||
|
{
|
||||||
|
private MaterialSkinManager materialSkinManager;
|
||||||
|
private LoginForm loginForm;
|
||||||
|
|
||||||
|
bool confirmPCheck = false;
|
||||||
|
|
||||||
|
public SignInForm(LoginForm PassloginForm)
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
loginForm = PassloginForm;
|
||||||
|
this.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw | ControlStyles.AllPaintingInWmPaint, true);
|
||||||
|
materialSkinManager = MaterialSkinManager.Instance; // 初始化 MaterialSkinManager 实例
|
||||||
|
materialSkinManager.AddFormToManage(this); // 将要应用 Material Design 的窗体添加到管理列表中
|
||||||
|
materialSkinManager.Theme = MaterialSkinManager.Themes.DARK; // Theme 属性用来设置整体的主题
|
||||||
|
materialSkinManager.ColorScheme = new ColorScheme(Primary.BlueGrey800, Primary.BlueGrey900, Primary.BlueGrey500, Accent.Red700, TextShade.WHITE);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void userName_materialTextBox_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
userName_materialTextBox.Text = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
private void email_materialTextBox_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
email_materialTextBox.Text = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
private void password_materialTextBox_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
password_materialTextBox.Text = "";
|
||||||
|
password_materialTextBox.PasswordChar = '*';
|
||||||
|
password_materialTextBox.UseSystemPasswordChar = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void confirmPassword_materialTextBox_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
confirmPassword_materialTextBox.Text = "";
|
||||||
|
confirmPassword_materialTextBox.PasswordChar = '*';
|
||||||
|
confirmPassword_materialTextBox.UseSystemPasswordChar = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void signIn_materialButton_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
bool signInSuccess = true;
|
||||||
|
|
||||||
|
string UserID_str = userName_materialTextBox.Text;
|
||||||
|
string E_mail_str = email_materialTextBox.Text;
|
||||||
|
string Password_str = password_materialTextBox.Text;
|
||||||
|
string Con_Password_str = confirmPassword_materialTextBox.Text;
|
||||||
|
|
||||||
|
List<UserInfo> userInfos = new List<UserInfo>();
|
||||||
|
//Check Is Null Or Not
|
||||||
|
if (string.IsNullOrEmpty(UserID_str))
|
||||||
|
{
|
||||||
|
materialLabel_ID.Text = "Please Type User Name Or ID!!";
|
||||||
|
signInSuccess = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
materialLabel_ID.Text = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(E_mail_str))
|
||||||
|
{
|
||||||
|
materialLabel_email.Text = "Please Type E-Mail Address!!";
|
||||||
|
signInSuccess = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
materialLabel_email.Text = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(Password_str))
|
||||||
|
{
|
||||||
|
materialLabel_PS.Text = "Please Type Password!!";
|
||||||
|
signInSuccess = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
materialLabel_PS.Text = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(Con_Password_str))
|
||||||
|
{
|
||||||
|
materialLabel_PW.Text = "Please Type Confirm Password!!";
|
||||||
|
signInSuccess = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
materialLabel_PW.Text = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!signInSuccess)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//Check Format
|
||||||
|
if (!Password_str.Equals(Con_Password_str))
|
||||||
|
{
|
||||||
|
materialLabel_PW.Text = "*Please Type Same Password!!";
|
||||||
|
signInSuccess = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
materialLabel_PW.Text = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!E_mail_str.Contains("@"))
|
||||||
|
{
|
||||||
|
materialLabel_email.Text = "*Please Check E-mail Address!!";
|
||||||
|
signInSuccess = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
materialLabel_email.Text = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (signInSuccess)
|
||||||
|
{
|
||||||
|
//Read UserInfo CSV
|
||||||
|
string FileName = Global.mDataUser + "UserInfo.csv";
|
||||||
|
if (!File.Exists(FileName))
|
||||||
|
{
|
||||||
|
if (!Directory.Exists(Global.mDataUser))
|
||||||
|
{
|
||||||
|
Directory.CreateDirectory(Global.mDataUser);
|
||||||
|
}
|
||||||
|
|
||||||
|
userInfos.Add(new UserInfo() { autholity = Autholity.Normal, UserID = UserID_str, E_Mail = E_mail_str, Password = Password_str });
|
||||||
|
WriteCsv(FileName, userInfos);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var GetCurrentUserInfo = ReadCsv(FileName);
|
||||||
|
|
||||||
|
foreach(var item in GetCurrentUserInfo)
|
||||||
|
{
|
||||||
|
if(item.UserID.Equals(UserID_str))
|
||||||
|
{
|
||||||
|
MessageBox.Show("This UserID has been registered, please change another one!!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
GetCurrentUserInfo.Add(new UserInfo() { autholity = Autholity.Normal, UserID = UserID_str, E_Mail = E_mail_str, Password = Password_str });
|
||||||
|
WriteCsv(FileName, GetCurrentUserInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
loginForm.Visible = true;
|
||||||
|
this.Visible = false;
|
||||||
|
this.Close();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void WriteCsv(string FilePath, List<UserInfo> userInfos)
|
||||||
|
{
|
||||||
|
using (var file = new StreamWriter(FilePath))
|
||||||
|
{
|
||||||
|
foreach (var item in userInfos)
|
||||||
|
{
|
||||||
|
file.WriteLineAsync($"{item.autholity},{item.UserID},{item.E_Mail},{item.Password}");
|
||||||
|
}
|
||||||
|
|
||||||
|
file.Close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<UserInfo> ReadCsv(string FilePath)
|
||||||
|
{
|
||||||
|
List<UserInfo> returnInfo = new List<UserInfo>();
|
||||||
|
|
||||||
|
using (TextFieldParser parser = new TextFieldParser(FilePath))
|
||||||
|
{
|
||||||
|
parser.TextFieldType = FieldType.Delimited;
|
||||||
|
parser.SetDelimiters(",");
|
||||||
|
// Read and parse each line of the CSV file
|
||||||
|
try
|
||||||
|
{
|
||||||
|
while (!parser.EndOfData)
|
||||||
|
{
|
||||||
|
string[] fields = parser.ReadFields();
|
||||||
|
int count = 0;
|
||||||
|
Autholity autholity = Autholity.admin;
|
||||||
|
string UserId = "";
|
||||||
|
string Email = "";
|
||||||
|
string PassWord = "";
|
||||||
|
foreach (var item in fields)
|
||||||
|
{
|
||||||
|
if ( (count%4) == 0)
|
||||||
|
{
|
||||||
|
Enum.TryParse(item, out autholity);
|
||||||
|
}
|
||||||
|
else if ((count%4) == 1)
|
||||||
|
{
|
||||||
|
UserId = item;
|
||||||
|
}
|
||||||
|
else if ((count%4) == 2)
|
||||||
|
{
|
||||||
|
Email = item;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
PassWord = item;
|
||||||
|
returnInfo.Add(new UserInfo() { autholity = autholity, UserID = UserId, E_Mail = Email, Password = PassWord });
|
||||||
|
}
|
||||||
|
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
parser.Close();
|
||||||
|
return returnInfo;
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void confirmPassword_materialTextBox_TextChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
string Password_str = password_materialTextBox.Text;
|
||||||
|
string Confirm_Password_str = confirmPassword_materialTextBox.Text;
|
||||||
|
|
||||||
|
if ((Password_str != Confirm_Password_str) && Password_str != null && Confirm_Password_str != null)
|
||||||
|
{
|
||||||
|
materialLabel_PW.Text = "*Please Type Same Password!!";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
materialLabel_PW.Text = "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
120
src/PBAnaly/SignInForm.resx
Normal file
@ -0,0 +1,120 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
206
src/PBAnaly/UI/AnalyzeDataForm.Designer.cs
generated
Normal file
@ -0,0 +1,206 @@
|
|||||||
|
namespace PBAnaly.UI
|
||||||
|
{
|
||||||
|
partial class AnalyzeDataForm
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
this.miniToolStrip = new ReaLTaiizor.Controls.CrownMenuStrip();
|
||||||
|
this.文件ToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.选项ToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.crownMenuStrip1 = new ReaLTaiizor.Controls.CrownMenuStrip();
|
||||||
|
this.metroPanel1 = new ReaLTaiizor.Controls.MetroPanel();
|
||||||
|
this.crownLabel1 = new ReaLTaiizor.Controls.CrownLabel();
|
||||||
|
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
|
||||||
|
this.panel1 = new ReaLTaiizor.Controls.Panel();
|
||||||
|
this.dataGridView1 = new System.Windows.Forms.DataGridView();
|
||||||
|
this.crownMenuStrip1.SuspendLayout();
|
||||||
|
this.metroPanel1.SuspendLayout();
|
||||||
|
this.tableLayoutPanel1.SuspendLayout();
|
||||||
|
this.panel1.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// miniToolStrip
|
||||||
|
//
|
||||||
|
this.miniToolStrip.AccessibleName = "新项选择";
|
||||||
|
this.miniToolStrip.AccessibleRole = System.Windows.Forms.AccessibleRole.ComboBox;
|
||||||
|
this.miniToolStrip.AutoSize = false;
|
||||||
|
this.miniToolStrip.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(60)))), ((int)(((byte)(63)))), ((int)(((byte)(65)))));
|
||||||
|
this.miniToolStrip.Dock = System.Windows.Forms.DockStyle.None;
|
||||||
|
this.miniToolStrip.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(220)))), ((int)(((byte)(220)))));
|
||||||
|
this.miniToolStrip.ImageScalingSize = new System.Drawing.Size(20, 20);
|
||||||
|
this.miniToolStrip.Location = new System.Drawing.Point(91, 3);
|
||||||
|
this.miniToolStrip.Name = "miniToolStrip";
|
||||||
|
this.miniToolStrip.Padding = new System.Windows.Forms.Padding(3, 2, 0, 2);
|
||||||
|
this.miniToolStrip.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional;
|
||||||
|
this.miniToolStrip.Size = new System.Drawing.Size(872, 25);
|
||||||
|
this.miniToolStrip.TabIndex = 2;
|
||||||
|
//
|
||||||
|
// 文件ToolStripMenuItem1
|
||||||
|
//
|
||||||
|
this.文件ToolStripMenuItem1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(60)))), ((int)(((byte)(63)))), ((int)(((byte)(65)))));
|
||||||
|
this.文件ToolStripMenuItem1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(220)))), ((int)(((byte)(220)))));
|
||||||
|
this.文件ToolStripMenuItem1.Name = "文件ToolStripMenuItem1";
|
||||||
|
this.文件ToolStripMenuItem1.Size = new System.Drawing.Size(53, 21);
|
||||||
|
this.文件ToolStripMenuItem1.Text = "文件";
|
||||||
|
//
|
||||||
|
// 选项ToolStripMenuItem1
|
||||||
|
//
|
||||||
|
this.选项ToolStripMenuItem1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(60)))), ((int)(((byte)(63)))), ((int)(((byte)(65)))));
|
||||||
|
this.选项ToolStripMenuItem1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(220)))), ((int)(((byte)(220)))));
|
||||||
|
this.选项ToolStripMenuItem1.Name = "选项ToolStripMenuItem1";
|
||||||
|
this.选项ToolStripMenuItem1.Size = new System.Drawing.Size(53, 21);
|
||||||
|
this.选项ToolStripMenuItem1.Text = "选项";
|
||||||
|
//
|
||||||
|
// crownMenuStrip1
|
||||||
|
//
|
||||||
|
this.crownMenuStrip1.BackColor = System.Drawing.Color.Gray;
|
||||||
|
this.crownMenuStrip1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.crownMenuStrip1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(220)))), ((int)(((byte)(220)))));
|
||||||
|
this.crownMenuStrip1.ImageScalingSize = new System.Drawing.Size(20, 20);
|
||||||
|
this.crownMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.文件ToolStripMenuItem1,
|
||||||
|
this.选项ToolStripMenuItem1});
|
||||||
|
this.crownMenuStrip1.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.crownMenuStrip1.Name = "crownMenuStrip1";
|
||||||
|
this.crownMenuStrip1.Padding = new System.Windows.Forms.Padding(3, 2, 0, 2);
|
||||||
|
this.crownMenuStrip1.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional;
|
||||||
|
this.crownMenuStrip1.Size = new System.Drawing.Size(872, 25);
|
||||||
|
this.crownMenuStrip1.TabIndex = 2;
|
||||||
|
//
|
||||||
|
// metroPanel1
|
||||||
|
//
|
||||||
|
this.metroPanel1.BackgroundColor = System.Drawing.Color.DimGray;
|
||||||
|
this.metroPanel1.BorderColor = System.Drawing.Color.Gray;
|
||||||
|
this.metroPanel1.BorderThickness = 1;
|
||||||
|
this.tableLayoutPanel1.SetColumnSpan(this.metroPanel1, 2);
|
||||||
|
this.metroPanel1.Controls.Add(this.crownLabel1);
|
||||||
|
this.metroPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.metroPanel1.IsDerivedStyle = true;
|
||||||
|
this.metroPanel1.Location = new System.Drawing.Point(0, 31);
|
||||||
|
this.metroPanel1.Margin = new System.Windows.Forms.Padding(0);
|
||||||
|
this.metroPanel1.Name = "metroPanel1";
|
||||||
|
this.metroPanel1.Size = new System.Drawing.Size(1466, 36);
|
||||||
|
this.metroPanel1.Style = ReaLTaiizor.Enum.Metro.Style.Custom;
|
||||||
|
this.metroPanel1.StyleManager = null;
|
||||||
|
this.metroPanel1.TabIndex = 3;
|
||||||
|
this.metroPanel1.ThemeAuthor = "Taiizor";
|
||||||
|
this.metroPanel1.ThemeName = "MetroDark";
|
||||||
|
//
|
||||||
|
// crownLabel1
|
||||||
|
//
|
||||||
|
this.crownLabel1.AutoSize = true;
|
||||||
|
this.crownLabel1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(220)))), ((int)(((byte)(220)))));
|
||||||
|
this.crownLabel1.Location = new System.Drawing.Point(4, 11);
|
||||||
|
this.crownLabel1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
|
||||||
|
this.crownLabel1.Name = "crownLabel1";
|
||||||
|
this.crownLabel1.Size = new System.Drawing.Size(37, 15);
|
||||||
|
this.crownLabel1.TabIndex = 0;
|
||||||
|
this.crownLabel1.Text = "显示";
|
||||||
|
//
|
||||||
|
// tableLayoutPanel1
|
||||||
|
//
|
||||||
|
this.tableLayoutPanel1.ColumnCount = 2;
|
||||||
|
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
|
||||||
|
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
|
||||||
|
this.tableLayoutPanel1.Controls.Add(this.metroPanel1, 0, 1);
|
||||||
|
this.tableLayoutPanel1.Controls.Add(this.panel1, 0, 2);
|
||||||
|
this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.tableLayoutPanel1.Location = new System.Drawing.Point(4, 30);
|
||||||
|
this.tableLayoutPanel1.Margin = new System.Windows.Forms.Padding(4);
|
||||||
|
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
|
||||||
|
this.tableLayoutPanel1.RowCount = 3;
|
||||||
|
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 31F));
|
||||||
|
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 36F));
|
||||||
|
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||||
|
this.tableLayoutPanel1.Size = new System.Drawing.Size(1466, 1277);
|
||||||
|
this.tableLayoutPanel1.TabIndex = 3;
|
||||||
|
//
|
||||||
|
// panel1
|
||||||
|
//
|
||||||
|
this.panel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(39)))), ((int)(((byte)(51)))), ((int)(((byte)(63)))));
|
||||||
|
this.tableLayoutPanel1.SetColumnSpan(this.panel1, 2);
|
||||||
|
this.panel1.Controls.Add(this.dataGridView1);
|
||||||
|
this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.panel1.EdgeColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(41)))), ((int)(((byte)(50)))));
|
||||||
|
this.panel1.Location = new System.Drawing.Point(4, 71);
|
||||||
|
this.panel1.Margin = new System.Windows.Forms.Padding(4);
|
||||||
|
this.panel1.Name = "panel1";
|
||||||
|
this.panel1.Padding = new System.Windows.Forms.Padding(7, 6, 7, 6);
|
||||||
|
this.panel1.Size = new System.Drawing.Size(1458, 1202);
|
||||||
|
this.panel1.SmoothingType = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
|
||||||
|
this.panel1.TabIndex = 4;
|
||||||
|
this.panel1.Text = "panel1";
|
||||||
|
//
|
||||||
|
// dataGridView1
|
||||||
|
//
|
||||||
|
this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||||
|
this.dataGridView1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.dataGridView1.Location = new System.Drawing.Point(7, 6);
|
||||||
|
this.dataGridView1.Margin = new System.Windows.Forms.Padding(4);
|
||||||
|
this.dataGridView1.Name = "dataGridView1";
|
||||||
|
this.dataGridView1.RowHeadersWidth = 51;
|
||||||
|
this.dataGridView1.RowTemplate.Height = 23;
|
||||||
|
this.dataGridView1.Size = new System.Drawing.Size(1444, 1190);
|
||||||
|
this.dataGridView1.TabIndex = 0;
|
||||||
|
//
|
||||||
|
// AnalyzeDataForm
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(1474, 1311);
|
||||||
|
this.Controls.Add(this.tableLayoutPanel1);
|
||||||
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;
|
||||||
|
this.FormStyle = MaterialSkin.Controls.MaterialForm.FormStyles.ActionBar_None;
|
||||||
|
this.MainMenuStrip = this.miniToolStrip;
|
||||||
|
this.Margin = new System.Windows.Forms.Padding(4);
|
||||||
|
this.Name = "AnalyzeDataForm";
|
||||||
|
this.Padding = new System.Windows.Forms.Padding(4, 30, 4, 4);
|
||||||
|
this.Text = "AnalyzeDataForm";
|
||||||
|
this.crownMenuStrip1.ResumeLayout(false);
|
||||||
|
this.crownMenuStrip1.PerformLayout();
|
||||||
|
this.metroPanel1.ResumeLayout(false);
|
||||||
|
this.metroPanel1.PerformLayout();
|
||||||
|
this.tableLayoutPanel1.ResumeLayout(false);
|
||||||
|
this.panel1.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
private ReaLTaiizor.Controls.CrownMenuStrip miniToolStrip;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem 文件ToolStripMenuItem1;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem 选项ToolStripMenuItem1;
|
||||||
|
private ReaLTaiizor.Controls.CrownMenuStrip crownMenuStrip1;
|
||||||
|
private ReaLTaiizor.Controls.MetroPanel metroPanel1;
|
||||||
|
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
|
||||||
|
private ReaLTaiizor.Controls.CrownLabel crownLabel1;
|
||||||
|
private ReaLTaiizor.Controls.Panel panel1;
|
||||||
|
private System.Windows.Forms.DataGridView dataGridView1;
|
||||||
|
}
|
||||||
|
}
|
200
src/PBAnaly/UI/AnalyzeDataForm.cs
Normal file
@ -0,0 +1,200 @@
|
|||||||
|
using MaterialSkin.Controls;
|
||||||
|
using PBBiologyVC;
|
||||||
|
//using ReaLTaiizor.Util;
|
||||||
|
//using Sunny.UI.Win32;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace PBAnaly.UI
|
||||||
|
{
|
||||||
|
public partial class AnalyzeDataForm : MaterialForm
|
||||||
|
{
|
||||||
|
private List<_band_info> band_info;
|
||||||
|
private List<TopHeader> _headers = new List<TopHeader>();
|
||||||
|
|
||||||
|
public struct headInfo
|
||||||
|
{
|
||||||
|
public int index;
|
||||||
|
public List<string> name;
|
||||||
|
}
|
||||||
|
public List<TopHeader> Headers
|
||||||
|
{
|
||||||
|
get { return _headers; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public struct TopHeader
|
||||||
|
{
|
||||||
|
public TopHeader(int index, int span, string text)
|
||||||
|
{
|
||||||
|
this.Index = index;
|
||||||
|
this.Span = span;
|
||||||
|
this.Text = text;
|
||||||
|
}
|
||||||
|
public int Index;
|
||||||
|
public int Span;
|
||||||
|
public string Text;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public AnalyzeDataForm(List<_band_info> _band_info)
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
band_info = _band_info;
|
||||||
|
Draw();
|
||||||
|
|
||||||
|
this.dataGridView1.CellPainting += DataGridView1_CellPainting;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void Draw()
|
||||||
|
{
|
||||||
|
this.dataGridView1.Rows.Clear();
|
||||||
|
this.dataGridView1.Columns.Clear();
|
||||||
|
this.dataGridView1.RowCount = 1;
|
||||||
|
this.dataGridView1.ColumnCount = band_info.Count*7 + 1;
|
||||||
|
this.dataGridView1.Columns[0].HeaderText = "行/列";
|
||||||
|
int index_c = 0;
|
||||||
|
for (int i = 1; i < this.dataGridView1.ColumnCount; i=i+7)
|
||||||
|
{
|
||||||
|
this.dataGridView1.Columns[i].HeaderText ="分子量";
|
||||||
|
this.dataGridView1.Columns[i+1].HeaderText = "条带含量";
|
||||||
|
this.dataGridView1.Columns[i+2].HeaderText = "相对含量";
|
||||||
|
this.dataGridView1.Columns[i+3].HeaderText = "IOD";
|
||||||
|
this.dataGridView1.Columns[i+4].HeaderText = "最大OD";
|
||||||
|
this.dataGridView1.Columns[i+5].HeaderText = "百分比";
|
||||||
|
this.dataGridView1.Columns[i + 6].HeaderText = "匹配";
|
||||||
|
}
|
||||||
|
_headers = new List<TopHeader>();
|
||||||
|
int index = 1;
|
||||||
|
for (int i = 1; i < this.dataGridView1.ColumnCount; i=i+7)
|
||||||
|
{
|
||||||
|
|
||||||
|
TopHeader topHeader = new TopHeader(i, 7, "泳道" + index++);
|
||||||
|
_headers.Add(topHeader);
|
||||||
|
|
||||||
|
}
|
||||||
|
int r_index = 0;
|
||||||
|
int c_index = 1;
|
||||||
|
this.dataGridView1.Rows[0].Cells[0].Value = "r1";
|
||||||
|
foreach (var _bi in band_info)
|
||||||
|
{
|
||||||
|
foreach (var minfo in _bi.Minfo)
|
||||||
|
{
|
||||||
|
this.dataGridView1.Rows[r_index].Cells[c_index++].Value = minfo.molecular_weight;
|
||||||
|
this.dataGridView1.Rows[r_index].Cells[c_index++].Value = minfo.band_content;
|
||||||
|
this.dataGridView1.Rows[r_index].Cells[c_index++].Value = minfo.relative_content;
|
||||||
|
this.dataGridView1.Rows[r_index].Cells[c_index++].Value = minfo.IOD;
|
||||||
|
this.dataGridView1.Rows[r_index].Cells[c_index++].Value = minfo.maxOD;
|
||||||
|
this.dataGridView1.Rows[r_index].Cells[c_index++].Value = minfo.percentum;
|
||||||
|
this.dataGridView1.Rows[r_index].Cells[c_index++].Value = minfo.match;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
this.dataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing;
|
||||||
|
this.dataGridView1.ColumnHeadersHeight = 50;
|
||||||
|
|
||||||
|
this.dataGridView1.Refresh();
|
||||||
|
}
|
||||||
|
|
||||||
|
int top = 0;
|
||||||
|
int left = 0;
|
||||||
|
int height = 0;
|
||||||
|
int width1 = 0;
|
||||||
|
private void DataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
|
||||||
|
{
|
||||||
|
#region 重绘datagridview表头
|
||||||
|
DataGridView dgv = (DataGridView)(sender);
|
||||||
|
if (e.RowIndex != -1) return;
|
||||||
|
foreach (TopHeader item in Headers)
|
||||||
|
{
|
||||||
|
if (e.ColumnIndex >= item.Index && e.ColumnIndex < item.Index + item.Span)
|
||||||
|
{
|
||||||
|
if (e.ColumnIndex == item.Index)
|
||||||
|
{
|
||||||
|
top = e.CellBounds.Top;
|
||||||
|
left = e.CellBounds.Left;
|
||||||
|
height = e.CellBounds.Height;
|
||||||
|
}
|
||||||
|
int width = 0;//总长度
|
||||||
|
for (int i = item.Index; i < item.Span + item.Index; i++)
|
||||||
|
{
|
||||||
|
width += dgv.Columns[i].Width;
|
||||||
|
}
|
||||||
|
Rectangle rect = new Rectangle(left, top, width, e.CellBounds.Height);
|
||||||
|
using (Brush backColorBrush = new SolidBrush(e.CellStyle.BackColor)) //Cell背景颜色
|
||||||
|
{
|
||||||
|
//抹去原来的cell背景
|
||||||
|
e.Graphics.FillRectangle(backColorBrush, rect);
|
||||||
|
}
|
||||||
|
using (Pen gridLinePen = new Pen(dgv.GridColor)) //画笔颜色
|
||||||
|
{
|
||||||
|
e.Graphics.DrawLine(gridLinePen, left, top, left + width, top);
|
||||||
|
e.Graphics.DrawLine(gridLinePen, left, top + height / 2, left + width, top + height / 2);
|
||||||
|
e.Graphics.DrawLine(gridLinePen, left, top + height - 1, left + width, top + height - 1); //自定义区域下部横线
|
||||||
|
width1 = 0;
|
||||||
|
e.Graphics.DrawLine(gridLinePen, left - 1, top, left - 1, top + height);
|
||||||
|
for (int i = item.Index; i < item.Span + item.Index; i++)
|
||||||
|
{
|
||||||
|
if (i == 1 || i == 2)
|
||||||
|
{
|
||||||
|
width1 += dgv.Columns[i].Width - 1; //分隔区域首列
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
width1 += dgv.Columns[i].Width;
|
||||||
|
}
|
||||||
|
e.Graphics.DrawLine(gridLinePen, left + width1, top + height / 2, left + width1, top + height);
|
||||||
|
}
|
||||||
|
SizeF sf = e.Graphics.MeasureString(item.Text, e.CellStyle.Font);
|
||||||
|
float lstr = (width - sf.Width) / 2;
|
||||||
|
float rstr = (height / 2 - sf.Height) / 2;
|
||||||
|
//画出文本框
|
||||||
|
if (item.Text != "")
|
||||||
|
{
|
||||||
|
e.Graphics.DrawString(item.Text, e.CellStyle.Font,
|
||||||
|
new SolidBrush(e.CellStyle.ForeColor),
|
||||||
|
left + lstr,
|
||||||
|
top + rstr,
|
||||||
|
StringFormat.GenericDefault);
|
||||||
|
}
|
||||||
|
width = 0;
|
||||||
|
width1 = 0;
|
||||||
|
for (int i = item.Index; i < item.Span + item.Index; i++)
|
||||||
|
{
|
||||||
|
string columnValue = dgv.Columns[i].HeaderText;
|
||||||
|
width1 = dgv.Columns[i].Width;
|
||||||
|
sf = e.Graphics.MeasureString(columnValue, e.CellStyle.Font);
|
||||||
|
lstr = (width1 - sf.Width) / 2;
|
||||||
|
rstr = (height / 2 - sf.Height) / 2;
|
||||||
|
if (columnValue != "")
|
||||||
|
{
|
||||||
|
e.Graphics.DrawString(columnValue, e.CellStyle.Font,
|
||||||
|
new SolidBrush(e.CellStyle.ForeColor),
|
||||||
|
left + width + lstr,
|
||||||
|
top + height / 2 + rstr,
|
||||||
|
StringFormat.GenericDefault);
|
||||||
|
}
|
||||||
|
width += dgv.Columns[i].Width;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
e.Handled = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
126
src/PBAnaly/UI/AnalyzeDataForm.resx
Normal file
@ -0,0 +1,126 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<metadata name="miniToolStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>17, 17</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="crownMenuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>191, 17</value>
|
||||||
|
</metadata>
|
||||||
|
</root>
|
440
src/PBAnaly/UI/ImagePanel.Designer.cs
generated
Normal file
@ -0,0 +1,440 @@
|
|||||||
|
namespace PBAnaly.UI
|
||||||
|
{
|
||||||
|
partial class ImagePanel
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
|
||||||
|
this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel();
|
||||||
|
this.hpb_auto = new ReaLTaiizor.Controls.HopePictureBox();
|
||||||
|
this.hhpb_save = new ReaLTaiizor.Controls.HopePictureBox();
|
||||||
|
this.hpb_zoom_in = new ReaLTaiizor.Controls.HopePictureBox();
|
||||||
|
this.poisonLabel1 = new ReaLTaiizor.Controls.PoisonLabel();
|
||||||
|
this.hpb_zoom_out = new ReaLTaiizor.Controls.HopePictureBox();
|
||||||
|
this.mcb_mode = new ReaLTaiizor.Controls.MetroComboBox();
|
||||||
|
this.cb_scientific = new ReaLTaiizor.Controls.CheckBox();
|
||||||
|
this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel();
|
||||||
|
this.tlpanl_image_bar = new System.Windows.Forms.TableLayoutPanel();
|
||||||
|
this.pb_coloarbar_image = new System.Windows.Forms.PictureBox();
|
||||||
|
this.pl_image = new ReaLTaiizor.Controls.Panel();
|
||||||
|
this.pl_bg_image = new ReaLTaiizor.Controls.Panel();
|
||||||
|
this.pb_image = new System.Windows.Forms.PictureBox();
|
||||||
|
this.lb_wh = new AntdUI.Label();
|
||||||
|
this.lb_modename = new AntdUI.Label();
|
||||||
|
this.tableLayoutPanel4 = new System.Windows.Forms.TableLayoutPanel();
|
||||||
|
this.mlb_bottomLabel = new ReaLTaiizor.Controls.MoonLabel();
|
||||||
|
this.tableLayoutPanel1.SuspendLayout();
|
||||||
|
this.tableLayoutPanel2.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.hpb_auto)).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.hhpb_save)).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.hpb_zoom_in)).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.hpb_zoom_out)).BeginInit();
|
||||||
|
this.tableLayoutPanel3.SuspendLayout();
|
||||||
|
this.tlpanl_image_bar.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pb_coloarbar_image)).BeginInit();
|
||||||
|
this.pl_image.SuspendLayout();
|
||||||
|
this.pl_bg_image.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pb_image)).BeginInit();
|
||||||
|
this.tableLayoutPanel4.SuspendLayout();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// tableLayoutPanel1
|
||||||
|
//
|
||||||
|
this.tableLayoutPanel1.ColumnCount = 1;
|
||||||
|
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||||
|
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 15F));
|
||||||
|
this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel2, 0, 0);
|
||||||
|
this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel3, 0, 1);
|
||||||
|
this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel4, 0, 2);
|
||||||
|
this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.tableLayoutPanel1.Location = new System.Drawing.Point(2, 19);
|
||||||
|
this.tableLayoutPanel1.Margin = new System.Windows.Forms.Padding(0);
|
||||||
|
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
|
||||||
|
this.tableLayoutPanel1.RowCount = 3;
|
||||||
|
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 22F));
|
||||||
|
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||||
|
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 12F));
|
||||||
|
this.tableLayoutPanel1.Size = new System.Drawing.Size(363, 311);
|
||||||
|
this.tableLayoutPanel1.TabIndex = 0;
|
||||||
|
//
|
||||||
|
// tableLayoutPanel2
|
||||||
|
//
|
||||||
|
this.tableLayoutPanel2.ColumnCount = 7;
|
||||||
|
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 50F));
|
||||||
|
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 80F));
|
||||||
|
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||||
|
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 28F));
|
||||||
|
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 28F));
|
||||||
|
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 26F));
|
||||||
|
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 43F));
|
||||||
|
this.tableLayoutPanel2.Controls.Add(this.hpb_auto, 3, 0);
|
||||||
|
this.tableLayoutPanel2.Controls.Add(this.hhpb_save, 6, 0);
|
||||||
|
this.tableLayoutPanel2.Controls.Add(this.hpb_zoom_in, 4, 0);
|
||||||
|
this.tableLayoutPanel2.Controls.Add(this.poisonLabel1, 0, 0);
|
||||||
|
this.tableLayoutPanel2.Controls.Add(this.hpb_zoom_out, 5, 0);
|
||||||
|
this.tableLayoutPanel2.Controls.Add(this.mcb_mode, 1, 0);
|
||||||
|
this.tableLayoutPanel2.Controls.Add(this.cb_scientific, 2, 0);
|
||||||
|
this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.tableLayoutPanel2.Location = new System.Drawing.Point(2, 2);
|
||||||
|
this.tableLayoutPanel2.Margin = new System.Windows.Forms.Padding(2);
|
||||||
|
this.tableLayoutPanel2.Name = "tableLayoutPanel2";
|
||||||
|
this.tableLayoutPanel2.RowCount = 1;
|
||||||
|
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||||
|
this.tableLayoutPanel2.Size = new System.Drawing.Size(359, 18);
|
||||||
|
this.tableLayoutPanel2.TabIndex = 1;
|
||||||
|
//
|
||||||
|
// hpb_auto
|
||||||
|
//
|
||||||
|
this.hpb_auto.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(196)))), ((int)(((byte)(204)))));
|
||||||
|
this.hpb_auto.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.hpb_auto.Image = global::PBAnaly.Properties.Resources.全屏;
|
||||||
|
this.hpb_auto.Location = new System.Drawing.Point(234, 0);
|
||||||
|
this.hpb_auto.Margin = new System.Windows.Forms.Padding(0);
|
||||||
|
this.hpb_auto.Name = "hpb_auto";
|
||||||
|
this.hpb_auto.PixelOffsetType = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality;
|
||||||
|
this.hpb_auto.Size = new System.Drawing.Size(28, 18);
|
||||||
|
this.hpb_auto.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
|
||||||
|
this.hpb_auto.SmoothingType = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
|
||||||
|
this.hpb_auto.TabIndex = 4;
|
||||||
|
this.hpb_auto.TabStop = false;
|
||||||
|
this.hpb_auto.TextRenderingType = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit;
|
||||||
|
this.hpb_auto.Click += new System.EventHandler(this.hpb_auto_Click);
|
||||||
|
//
|
||||||
|
// hhpb_save
|
||||||
|
//
|
||||||
|
this.hhpb_save.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(196)))), ((int)(((byte)(204)))));
|
||||||
|
this.hhpb_save.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.hhpb_save.Image = global::PBAnaly.Properties.Resources.保存图片;
|
||||||
|
this.hhpb_save.Location = new System.Drawing.Point(316, 0);
|
||||||
|
this.hhpb_save.Margin = new System.Windows.Forms.Padding(0);
|
||||||
|
this.hhpb_save.Name = "hhpb_save";
|
||||||
|
this.hhpb_save.PixelOffsetType = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality;
|
||||||
|
this.hhpb_save.Size = new System.Drawing.Size(43, 18);
|
||||||
|
this.hhpb_save.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
|
||||||
|
this.hhpb_save.SmoothingType = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
|
||||||
|
this.hhpb_save.TabIndex = 3;
|
||||||
|
this.hhpb_save.TabStop = false;
|
||||||
|
this.hhpb_save.TextRenderingType = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit;
|
||||||
|
this.hhpb_save.Click += new System.EventHandler(this.hhpb_save_Click);
|
||||||
|
//
|
||||||
|
// hpb_zoom_in
|
||||||
|
//
|
||||||
|
this.hpb_zoom_in.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(196)))), ((int)(((byte)(204)))));
|
||||||
|
this.hpb_zoom_in.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.hpb_zoom_in.Image = global::PBAnaly.Properties.Resources.放大;
|
||||||
|
this.hpb_zoom_in.Location = new System.Drawing.Point(262, 0);
|
||||||
|
this.hpb_zoom_in.Margin = new System.Windows.Forms.Padding(0);
|
||||||
|
this.hpb_zoom_in.Name = "hpb_zoom_in";
|
||||||
|
this.hpb_zoom_in.PixelOffsetType = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality;
|
||||||
|
this.hpb_zoom_in.Size = new System.Drawing.Size(28, 18);
|
||||||
|
this.hpb_zoom_in.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
|
||||||
|
this.hpb_zoom_in.SmoothingType = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
|
||||||
|
this.hpb_zoom_in.TabIndex = 3;
|
||||||
|
this.hpb_zoom_in.TabStop = false;
|
||||||
|
this.hpb_zoom_in.TextRenderingType = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit;
|
||||||
|
this.hpb_zoom_in.Click += new System.EventHandler(this.hpb_zoom_in_Click);
|
||||||
|
//
|
||||||
|
// poisonLabel1
|
||||||
|
//
|
||||||
|
this.poisonLabel1.AutoSize = true;
|
||||||
|
this.poisonLabel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.poisonLabel1.Location = new System.Drawing.Point(2, 0);
|
||||||
|
this.poisonLabel1.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||||
|
this.poisonLabel1.Name = "poisonLabel1";
|
||||||
|
this.poisonLabel1.Size = new System.Drawing.Size(46, 18);
|
||||||
|
this.poisonLabel1.TabIndex = 0;
|
||||||
|
this.poisonLabel1.Text = "模式:";
|
||||||
|
this.poisonLabel1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||||
|
//
|
||||||
|
// hpb_zoom_out
|
||||||
|
//
|
||||||
|
this.hpb_zoom_out.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(196)))), ((int)(((byte)(204)))));
|
||||||
|
this.hpb_zoom_out.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.hpb_zoom_out.Image = global::PBAnaly.Properties.Resources.缩小;
|
||||||
|
this.hpb_zoom_out.Location = new System.Drawing.Point(290, 0);
|
||||||
|
this.hpb_zoom_out.Margin = new System.Windows.Forms.Padding(0);
|
||||||
|
this.hpb_zoom_out.Name = "hpb_zoom_out";
|
||||||
|
this.hpb_zoom_out.PixelOffsetType = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality;
|
||||||
|
this.hpb_zoom_out.Size = new System.Drawing.Size(26, 18);
|
||||||
|
this.hpb_zoom_out.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
|
||||||
|
this.hpb_zoom_out.SmoothingType = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
|
||||||
|
this.hpb_zoom_out.TabIndex = 2;
|
||||||
|
this.hpb_zoom_out.TabStop = false;
|
||||||
|
this.hpb_zoom_out.TextRenderingType = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit;
|
||||||
|
this.hpb_zoom_out.Click += new System.EventHandler(this.hpb_zoom_out_Click);
|
||||||
|
//
|
||||||
|
// mcb_mode
|
||||||
|
//
|
||||||
|
this.mcb_mode.AllowDrop = true;
|
||||||
|
this.mcb_mode.ArrowColor = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150)))));
|
||||||
|
this.mcb_mode.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
this.mcb_mode.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(238)))), ((int)(((byte)(238)))), ((int)(((byte)(238)))));
|
||||||
|
this.mcb_mode.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150)))));
|
||||||
|
this.mcb_mode.CausesValidation = false;
|
||||||
|
this.mcb_mode.DisabledBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(204)))), ((int)(((byte)(204)))), ((int)(((byte)(204)))));
|
||||||
|
this.mcb_mode.DisabledBorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(155)))), ((int)(((byte)(155)))), ((int)(((byte)(155)))));
|
||||||
|
this.mcb_mode.DisabledForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(136)))), ((int)(((byte)(136)))), ((int)(((byte)(136)))));
|
||||||
|
this.mcb_mode.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.mcb_mode.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
|
||||||
|
this.mcb_mode.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
|
this.mcb_mode.Font = new System.Drawing.Font("Microsoft Sans Serif", 11F);
|
||||||
|
this.mcb_mode.FormattingEnabled = true;
|
||||||
|
this.mcb_mode.IsDerivedStyle = true;
|
||||||
|
this.mcb_mode.ItemHeight = 20;
|
||||||
|
this.mcb_mode.Items.AddRange(new object[] {
|
||||||
|
"merge",
|
||||||
|
"mark",
|
||||||
|
"pseudocolor"});
|
||||||
|
this.mcb_mode.Location = new System.Drawing.Point(52, 2);
|
||||||
|
this.mcb_mode.Margin = new System.Windows.Forms.Padding(2);
|
||||||
|
this.mcb_mode.Name = "mcb_mode";
|
||||||
|
this.mcb_mode.SelectedItemBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(65)))), ((int)(((byte)(177)))), ((int)(((byte)(225)))));
|
||||||
|
this.mcb_mode.SelectedItemForeColor = System.Drawing.Color.White;
|
||||||
|
this.mcb_mode.Size = new System.Drawing.Size(76, 26);
|
||||||
|
this.mcb_mode.Style = ReaLTaiizor.Enum.Metro.Style.Light;
|
||||||
|
this.mcb_mode.StyleManager = null;
|
||||||
|
this.mcb_mode.TabIndex = 1;
|
||||||
|
this.mcb_mode.ThemeAuthor = "Taiizor";
|
||||||
|
this.mcb_mode.ThemeName = "MetroLight";
|
||||||
|
this.mcb_mode.SelectedIndexChanged += new System.EventHandler(this.mcb_mode_SelectedIndexChanged);
|
||||||
|
//
|
||||||
|
// cb_scientific
|
||||||
|
//
|
||||||
|
this.cb_scientific.Checked = false;
|
||||||
|
this.cb_scientific.CheckedBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(66)))), ((int)(((byte)(76)))), ((int)(((byte)(85)))));
|
||||||
|
this.cb_scientific.CheckedBorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(66)))), ((int)(((byte)(76)))), ((int)(((byte)(85)))));
|
||||||
|
this.cb_scientific.CheckedDisabledColor = System.Drawing.Color.Gray;
|
||||||
|
this.cb_scientific.CheckedEnabledColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(34)))), ((int)(((byte)(37)))));
|
||||||
|
this.cb_scientific.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||||
|
this.cb_scientific.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.cb_scientific.Enable = true;
|
||||||
|
this.cb_scientific.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F);
|
||||||
|
this.cb_scientific.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(116)))), ((int)(((byte)(125)))), ((int)(((byte)(132)))));
|
||||||
|
this.cb_scientific.Location = new System.Drawing.Point(133, 3);
|
||||||
|
this.cb_scientific.Name = "cb_scientific";
|
||||||
|
this.cb_scientific.Size = new System.Drawing.Size(98, 16);
|
||||||
|
this.cb_scientific.TabIndex = 5;
|
||||||
|
this.cb_scientific.Text = "光子数";
|
||||||
|
this.cb_scientific.CheckedChanged += new ReaLTaiizor.Controls.CheckBox.CheckedChangedEventHandler(this.cb_scientific_CheckedChanged);
|
||||||
|
//
|
||||||
|
// tableLayoutPanel3
|
||||||
|
//
|
||||||
|
this.tableLayoutPanel3.ColumnCount = 2;
|
||||||
|
this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 86.27969F));
|
||||||
|
this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 13.72032F));
|
||||||
|
this.tableLayoutPanel3.Controls.Add(this.tlpanl_image_bar, 0, 0);
|
||||||
|
this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.tableLayoutPanel3.Location = new System.Drawing.Point(2, 24);
|
||||||
|
this.tableLayoutPanel3.Margin = new System.Windows.Forms.Padding(2);
|
||||||
|
this.tableLayoutPanel3.Name = "tableLayoutPanel3";
|
||||||
|
this.tableLayoutPanel3.RowCount = 1;
|
||||||
|
this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||||
|
this.tableLayoutPanel3.Size = new System.Drawing.Size(359, 273);
|
||||||
|
this.tableLayoutPanel3.TabIndex = 2;
|
||||||
|
//
|
||||||
|
// tlpanl_image_bar
|
||||||
|
//
|
||||||
|
this.tlpanl_image_bar.ColumnCount = 2;
|
||||||
|
this.tableLayoutPanel3.SetColumnSpan(this.tlpanl_image_bar, 2);
|
||||||
|
this.tlpanl_image_bar.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 83.56546F));
|
||||||
|
this.tlpanl_image_bar.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 16.43454F));
|
||||||
|
this.tlpanl_image_bar.Controls.Add(this.pb_coloarbar_image, 1, 1);
|
||||||
|
this.tlpanl_image_bar.Controls.Add(this.pl_image, 0, 0);
|
||||||
|
this.tlpanl_image_bar.Controls.Add(this.lb_wh, 1, 2);
|
||||||
|
this.tlpanl_image_bar.Controls.Add(this.lb_modename, 1, 0);
|
||||||
|
this.tlpanl_image_bar.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.tlpanl_image_bar.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.tlpanl_image_bar.Margin = new System.Windows.Forms.Padding(0);
|
||||||
|
this.tlpanl_image_bar.Name = "tlpanl_image_bar";
|
||||||
|
this.tlpanl_image_bar.RowCount = 3;
|
||||||
|
this.tlpanl_image_bar.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 26F));
|
||||||
|
this.tlpanl_image_bar.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||||
|
this.tlpanl_image_bar.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 97F));
|
||||||
|
this.tlpanl_image_bar.Size = new System.Drawing.Size(359, 273);
|
||||||
|
this.tlpanl_image_bar.TabIndex = 2;
|
||||||
|
//
|
||||||
|
// pb_coloarbar_image
|
||||||
|
//
|
||||||
|
this.pb_coloarbar_image.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.pb_coloarbar_image.Location = new System.Drawing.Point(300, 26);
|
||||||
|
this.pb_coloarbar_image.Margin = new System.Windows.Forms.Padding(0);
|
||||||
|
this.pb_coloarbar_image.Name = "pb_coloarbar_image";
|
||||||
|
this.pb_coloarbar_image.Size = new System.Drawing.Size(59, 150);
|
||||||
|
this.pb_coloarbar_image.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
|
||||||
|
this.pb_coloarbar_image.TabIndex = 1;
|
||||||
|
this.pb_coloarbar_image.TabStop = false;
|
||||||
|
//
|
||||||
|
// pl_image
|
||||||
|
//
|
||||||
|
this.pl_image.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(39)))), ((int)(((byte)(51)))), ((int)(((byte)(63)))));
|
||||||
|
this.pl_image.Controls.Add(this.pl_bg_image);
|
||||||
|
this.pl_image.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.pl_image.EdgeColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(41)))), ((int)(((byte)(50)))));
|
||||||
|
this.pl_image.Location = new System.Drawing.Point(2, 2);
|
||||||
|
this.pl_image.Margin = new System.Windows.Forms.Padding(2);
|
||||||
|
this.pl_image.Name = "pl_image";
|
||||||
|
this.pl_image.Padding = new System.Windows.Forms.Padding(4);
|
||||||
|
this.tlpanl_image_bar.SetRowSpan(this.pl_image, 3);
|
||||||
|
this.pl_image.Size = new System.Drawing.Size(296, 269);
|
||||||
|
this.pl_image.SmoothingType = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
|
||||||
|
this.pl_image.TabIndex = 0;
|
||||||
|
this.pl_image.Text = "panel1";
|
||||||
|
//
|
||||||
|
// pl_bg_image
|
||||||
|
//
|
||||||
|
this.pl_bg_image.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(39)))), ((int)(((byte)(51)))), ((int)(((byte)(63)))));
|
||||||
|
this.pl_bg_image.Controls.Add(this.pb_image);
|
||||||
|
this.pl_bg_image.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.pl_bg_image.EdgeColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(41)))), ((int)(((byte)(50)))));
|
||||||
|
this.pl_bg_image.Location = new System.Drawing.Point(4, 4);
|
||||||
|
this.pl_bg_image.Margin = new System.Windows.Forms.Padding(0);
|
||||||
|
this.pl_bg_image.Name = "pl_bg_image";
|
||||||
|
this.pl_bg_image.Padding = new System.Windows.Forms.Padding(5);
|
||||||
|
this.pl_bg_image.Size = new System.Drawing.Size(288, 261);
|
||||||
|
this.pl_bg_image.SmoothingType = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
|
||||||
|
this.pl_bg_image.TabIndex = 1;
|
||||||
|
this.pl_bg_image.Text = "panel1";
|
||||||
|
//
|
||||||
|
// pb_image
|
||||||
|
//
|
||||||
|
this.pb_image.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.pb_image.Location = new System.Drawing.Point(5, 5);
|
||||||
|
this.pb_image.Margin = new System.Windows.Forms.Padding(0);
|
||||||
|
this.pb_image.Name = "pb_image";
|
||||||
|
this.pb_image.Size = new System.Drawing.Size(278, 251);
|
||||||
|
this.pb_image.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
|
||||||
|
this.pb_image.TabIndex = 0;
|
||||||
|
this.pb_image.TabStop = false;
|
||||||
|
//
|
||||||
|
// lb_wh
|
||||||
|
//
|
||||||
|
this.lb_wh.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.lb_wh.Font = new System.Drawing.Font("隶书", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||||
|
this.lb_wh.Location = new System.Drawing.Point(303, 179);
|
||||||
|
this.lb_wh.Name = "lb_wh";
|
||||||
|
this.lb_wh.Size = new System.Drawing.Size(53, 91);
|
||||||
|
this.lb_wh.TabIndex = 2;
|
||||||
|
this.lb_wh.Text = "Color Scale\r\nMin = 1\r\nMax= 2";
|
||||||
|
this.lb_wh.TextAlign = System.Drawing.ContentAlignment.TopCenter;
|
||||||
|
//
|
||||||
|
// lb_modename
|
||||||
|
//
|
||||||
|
this.lb_modename.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.lb_modename.Location = new System.Drawing.Point(303, 3);
|
||||||
|
this.lb_modename.Name = "lb_modename";
|
||||||
|
this.lb_modename.Size = new System.Drawing.Size(53, 20);
|
||||||
|
this.lb_modename.TabIndex = 3;
|
||||||
|
this.lb_modename.Text = "";
|
||||||
|
//
|
||||||
|
// tableLayoutPanel4
|
||||||
|
//
|
||||||
|
this.tableLayoutPanel4.ColumnCount = 2;
|
||||||
|
this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 80.93587F));
|
||||||
|
this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 19.06413F));
|
||||||
|
this.tableLayoutPanel4.Controls.Add(this.mlb_bottomLabel, 0, 0);
|
||||||
|
this.tableLayoutPanel4.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.tableLayoutPanel4.Location = new System.Drawing.Point(0, 299);
|
||||||
|
this.tableLayoutPanel4.Margin = new System.Windows.Forms.Padding(0);
|
||||||
|
this.tableLayoutPanel4.Name = "tableLayoutPanel4";
|
||||||
|
this.tableLayoutPanel4.RowCount = 1;
|
||||||
|
this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||||
|
this.tableLayoutPanel4.Size = new System.Drawing.Size(363, 12);
|
||||||
|
this.tableLayoutPanel4.TabIndex = 3;
|
||||||
|
//
|
||||||
|
// mlb_bottomLabel
|
||||||
|
//
|
||||||
|
this.mlb_bottomLabel.AutoSize = true;
|
||||||
|
this.mlb_bottomLabel.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
this.mlb_bottomLabel.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.mlb_bottomLabel.ForeColor = System.Drawing.Color.Gray;
|
||||||
|
this.mlb_bottomLabel.Location = new System.Drawing.Point(2, 0);
|
||||||
|
this.mlb_bottomLabel.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||||
|
this.mlb_bottomLabel.Name = "mlb_bottomLabel";
|
||||||
|
this.mlb_bottomLabel.Size = new System.Drawing.Size(289, 12);
|
||||||
|
this.mlb_bottomLabel.TabIndex = 0;
|
||||||
|
this.mlb_bottomLabel.Text = "1920x1080 ";
|
||||||
|
this.mlb_bottomLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||||
|
//
|
||||||
|
// ImagePanel
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.BackColor = System.Drawing.SystemColors.ButtonHighlight;
|
||||||
|
this.ClientSize = new System.Drawing.Size(367, 332);
|
||||||
|
this.Controls.Add(this.tableLayoutPanel1);
|
||||||
|
this.ForeColor = System.Drawing.SystemColors.ControlText;
|
||||||
|
this.FormStyle = MaterialSkin.Controls.MaterialForm.FormStyles.ActionBar_None;
|
||||||
|
this.Margin = new System.Windows.Forms.Padding(2);
|
||||||
|
this.Name = "ImagePanel";
|
||||||
|
this.Padding = new System.Windows.Forms.Padding(2, 19, 2, 2);
|
||||||
|
this.Text = "ImagePanel";
|
||||||
|
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.ImagePanel_FormClosing);
|
||||||
|
this.Enter += new System.EventHandler(this.ImagePanel_Enter);
|
||||||
|
this.MouseDown += new System.Windows.Forms.MouseEventHandler(this.ImagePanel_MouseDown);
|
||||||
|
this.Resize += new System.EventHandler(this.ImagePanel_Resize);
|
||||||
|
this.tableLayoutPanel1.ResumeLayout(false);
|
||||||
|
this.tableLayoutPanel2.ResumeLayout(false);
|
||||||
|
this.tableLayoutPanel2.PerformLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.hpb_auto)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.hhpb_save)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.hpb_zoom_in)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.hpb_zoom_out)).EndInit();
|
||||||
|
this.tableLayoutPanel3.ResumeLayout(false);
|
||||||
|
this.tlpanl_image_bar.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pb_coloarbar_image)).EndInit();
|
||||||
|
this.pl_image.ResumeLayout(false);
|
||||||
|
this.pl_bg_image.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pb_image)).EndInit();
|
||||||
|
this.tableLayoutPanel4.ResumeLayout(false);
|
||||||
|
this.tableLayoutPanel4.PerformLayout();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
|
||||||
|
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2;
|
||||||
|
private ReaLTaiizor.Controls.PoisonLabel poisonLabel1;
|
||||||
|
private ReaLTaiizor.Controls.MetroComboBox mcb_mode;
|
||||||
|
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3;
|
||||||
|
private ReaLTaiizor.Controls.Panel pl_image;
|
||||||
|
private System.Windows.Forms.PictureBox pb_image;
|
||||||
|
private ReaLTaiizor.Controls.HopePictureBox hpb_zoom_out;
|
||||||
|
private ReaLTaiizor.Controls.HopePictureBox hpb_zoom_in;
|
||||||
|
private ReaLTaiizor.Controls.HopePictureBox hhpb_save;
|
||||||
|
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel4;
|
||||||
|
private ReaLTaiizor.Controls.MoonLabel mlb_bottomLabel;
|
||||||
|
private ReaLTaiizor.Controls.HopePictureBox hpb_auto;
|
||||||
|
private System.Windows.Forms.TableLayoutPanel tlpanl_image_bar;
|
||||||
|
private ReaLTaiizor.Controls.Panel pl_bg_image;
|
||||||
|
private System.Windows.Forms.PictureBox pb_coloarbar_image;
|
||||||
|
private AntdUI.Label lb_wh;
|
||||||
|
private AntdUI.Label lb_modename;
|
||||||
|
private ReaLTaiizor.Controls.CheckBox cb_scientific;
|
||||||
|
}
|
||||||
|
}
|
1592
src/PBAnaly/UI/ImagePanel.cs
Normal file
120
src/PBAnaly/UI/ImagePanel.resx
Normal file
@ -0,0 +1,120 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|