From e79fc288c0649e96ae042d3b929d7f6b95e6784d Mon Sep 17 00:00:00 2001 From: "zhengxuan.zhang" Date: Sun, 15 Mar 2026 20:12:55 +0800 Subject: [PATCH] =?UTF-8?q?#0028=20=E4=BC=98=E5=8C=96MainWindow=E5=B8=83?= =?UTF-8?q?=E5=B1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- XplorePlane/App.xaml.cs | 2 +- XplorePlane/Assets/Icons/.gitkeep | 0 XplorePlane/Assets/Icons/down.png | Bin 0 -> 377 bytes XplorePlane/Assets/Icons/left.png | Bin 0 -> 391 bytes XplorePlane/Assets/Icons/right.png | Bin 0 -> 382 bytes XplorePlane/Assets/Icons/up.png | Bin 0 -> 384 bytes XplorePlane/Assets/Icons/动态范围.png | Bin 0 -> 4106 bytes XplorePlane/Assets/Icons/胶片致黑.png | Bin 0 -> 2125 bytes XplorePlane/Assets/Icons/锐化.png | Bin 0 -> 7199 bytes .../Views/Hardware/AxisControlPanelView.xaml | 342 ++++++++++++++++++ .../Hardware/AxisControlPanelView.xaml.cs | 12 + .../Views/Hardware/DetectorPanelView.xaml | 19 +- .../Hardware/MotionControlPanelView.xaml | 4 +- .../Views/Hardware/RaySourcePanelView.xaml | 153 +++++--- XplorePlane/Views/Main/MainWindow.xaml | 28 +- XplorePlane/XplorePlane.csproj | 1 + 16 files changed, 493 insertions(+), 68 deletions(-) delete mode 100644 XplorePlane/Assets/Icons/.gitkeep create mode 100644 XplorePlane/Assets/Icons/down.png create mode 100644 XplorePlane/Assets/Icons/left.png create mode 100644 XplorePlane/Assets/Icons/right.png create mode 100644 XplorePlane/Assets/Icons/up.png create mode 100644 XplorePlane/Assets/Icons/动态范围.png create mode 100644 XplorePlane/Assets/Icons/胶片致黑.png create mode 100644 XplorePlane/Assets/Icons/锐化.png create mode 100644 XplorePlane/Views/Hardware/AxisControlPanelView.xaml create mode 100644 XplorePlane/Views/Hardware/AxisControlPanelView.xaml.cs diff --git a/XplorePlane/App.xaml.cs b/XplorePlane/App.xaml.cs index 2d147a2..14f3155 100644 --- a/XplorePlane/App.xaml.cs +++ b/XplorePlane/App.xaml.cs @@ -154,7 +154,7 @@ namespace XplorePlane protected override Window CreateShell() { - return Container.Resolve(); + return Container.Resolve(); } protected override void RegisterTypes(IContainerRegistry containerRegistry) diff --git a/XplorePlane/Assets/Icons/.gitkeep b/XplorePlane/Assets/Icons/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/XplorePlane/Assets/Icons/down.png b/XplorePlane/Assets/Icons/down.png new file mode 100644 index 0000000000000000000000000000000000000000..23aac1773d3c3faa86da09f2eea13249656e38a2 GIT binary patch literal 377 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=hEVFzR`_IEGX(z6m$vJ7mD)67q=M zhOzEqS7)o}y+d5u_6g}uNr?$dgKoPk7?wT})GgOg*y=m$2oHzmiRBjGZrbhHBFk6z zN0__g@ehs|(Y{On6@@0KoRnh@Kj4$NG-=1LnH~;`p(zq4BX0A9rLJApTjbtr!9Mq_<=O>qgy}5Ri-nhEdI!p&N*XEh)nQ4;qO8R zUaea7%%=3k>6brxD!Dbf9Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0USw0K~z{r?UgYO zf-o3`i^hS$D-a`t2VjK|NgR&C{+ts-zh#%c_~CIfeNE(+0E} z1i>=BDvt{33wY|LuIoFP_Nm2^B&ky=mCOPh$8lkN#&D=rC@&d+Ip6L{I?J#p{gflJ z#C-(M1;Bg*>87({!EyF{-xqljM}RXQLP{|wTBP|QEEBN+Y{wX~<#kD%NPj4V5BO^c z$uryI#x~W`$YcN}2c*=*@TgTNxgkU*E^!=pu!tG87(Pr_Dy8!FUl2vnEeyl8VHn(; lw^o=R#YKfeq4*ydy8~D3Q6=HE6TJWc002ovPDHLkV1hWypOyds literal 0 HcmV?d00001 diff --git a/XplorePlane/Assets/Icons/right.png b/XplorePlane/Assets/Icons/right.png new file mode 100644 index 0000000000000000000000000000000000000000..eb8cbf3b9d97e7ac9068d1c37708680131cc0241 GIT binary patch literal 382 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=DjSL74G){)!Z!24PPZ$B+p3WC_;A2_ijBjch#uvsN9rcFl~@ zqLAqQ+2_Vn5-~GY0krPuUmd7%cFXVi5CbZ;X(ItbD`j1C2>V+4Is>8lu8Or!r1-a5EH^;C{d-{dg}U1H=FSrSnU~f#Jvo3P5HC XtqUQJ+8IAUVa(v^>gTe~DWM4fM5>t> literal 0 HcmV?d00001 diff --git a/XplorePlane/Assets/Icons/动态范围.png b/XplorePlane/Assets/Icons/动态范围.png new file mode 100644 index 0000000000000000000000000000000000000000..5fcee9252260c02eec11230db971189b060c862b GIT binary patch literal 4106 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 literal 0 HcmV?d00001 diff --git a/XplorePlane/Assets/Icons/胶片致黑.png b/XplorePlane/Assets/Icons/胶片致黑.png new file mode 100644 index 0000000000000000000000000000000000000000..605cd9cfbacee6f0d560e3507d4a0c8e56797698 GIT binary patch literal 2125 zcmZvedsx$08i(5wFfCHkf)$}^+JZ$zg`!Br(WF!?AOb1_URMDH)D_5xg4Z^JTrDZ1 zB3>9+abz4Xh>j?tQ-!5*U_b_Ey`dlt7Zp@+K?Kwd3xDnGA4%Ttd!GExd-5bXCoOQ< z5-Xk^kHunH`KVRPnJYDXfELX8V(6tj77OI~sIZj@?9Nkfa-VsRWzBmf`Rs5M`KjiW z++Rfo^u2P>&k$y`cX)PSv$W6IQ$MvgjhPLi&5mp!G3}5&WNU^U=YZQFl(h0_Bv^!t z8T1$~4kQnsZzND52h1)E+SZW5BKl*`ZTU-ynEP;Y{@y0nz@PR|T#*nZlVg2O|G*;X zcM^H1nuUq(ImYkjfIVkZhLQ}C96Mqt&Zl4Qy20h1EBQnmxt?jnKQZhIGi*o-hriaB zWwv!MvchyB?LHvDq~5i!?AyzQQzspm?&zR_xhJcRb%9K|^{?dyM=EB5d!=oL?X{Z0 zI+ui1+^|?1-#OCvA6qXp&AKu)4m&3MQKMkHArVcW)F#y#SlS9X4bxblW|STQVU2Nm zFP#onYEzdQ{P|j9n0yVvqog*h8zpZzNz5_Fk~lAw&5P?@aOw-Ba)N@uq-?KzI5iNK zLZCba#h?N-!5W-4NtMuhWkJ<+V%c~`U!x}Td!kiI}YuqEGSN?IH)I6;R z_>GdBRx(CW0w>22k0{7#)bf;L;PR2Fd3fbt5OdC^!?@^P9vY1Raz>~H)b`+@&G3M? zfYsERcw*xa{9qX$naA7|mWBF_xQAt+YeuMLy!KzCL2jI`5%Y5C z_H}fBhZV6`(`=Hn>Hf5^vA`$b;AJzU>a!*GHgU(7WN|=Q795a2r#wkK`-BdjZHV}F zsOpP8+)PAlGepN)B0EoH!k!vlleaFdO-ccUgdZ7R@)M}wo`0aA6VBvj5*#vi+6%Ixz#nX3eMWs~50<}40MzH-a36zTXuXv?33Knh(WK(Hi##k_ z_6|I5)yvQWkOOL+w~dYDq1`u<;K>h5w@QufQyOl8Vd;BHZShWN$vO>uy}b0i#3-6{ zZcn^<9A|g2GcE>72V8+w{t1f~;hk>y8ZErN<8rdzlrDK|PxSX%AVZG>LcGc7mFF$> zUgO)#B0yZzb$>3Z;jQIv{ z{7^Ks_4PKe$I==f3cFi6j``o20r*g}VQ>Nmytin~z$S`UBsCgJEYd=-iRrWnhy>#E4Xt_%OAU(B3 zZ)z*JB^nFdS@YC!Q#?kVsdkt>KXMaBhSxvX;kzanqC4jN)3R=L5JZQ1xIAATVjbb9 z+kU&XoCi$j5@MbimcEA*3}Cv!J3W4Bs5wS@Mcb-BsNq{M)%|$IB_|=}tcDRAPv!YQ zpoFn0s49B9S;0VjyKCe95+>uNcTwLV1p~iCy3(&oz&}ECWOzg5iiu3>!Vk7@3+v4> zU97BOtCyaE^;d0st_3kbn*NAcAuz}IXOP00h1w|Q0qm~}-Kd7MVQS;!1mE8UsZtQH z>CFhP0;C`zuJS+ExPTqQ%>T05;J42M}nqxwBpD+lHPpZ4D$obcb3 ztN)`S=iC>j6O$>imsDvmXA8wiQ;nY&>DHSl;uLUUbw^(@62k#op0i)4Ox3^z&nnu= zxeidJy`b0A8YOF=w|CwGpoj?q%lZFXcFa__*M8SGjRPu@(-yB|!XDLr_xAsluRbqc s5OmP+mDvk?{d(d1M-m1shIa#ItSYPa{OR#o4orvTvv`^6l5zv_AMwI!2LJ#7 literal 0 HcmV?d00001 diff --git a/XplorePlane/Assets/Icons/锐化.png b/XplorePlane/Assets/Icons/锐化.png new file mode 100644 index 0000000000000000000000000000000000000000..366616e8f59c82cb9efebee67d882d7f9ebc81ee GIT binary patch literal 7199 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +