#0028 优化MainWindow布局

This commit is contained in:
zhengxuan.zhang
2026-03-15 20:12:55 +08:00
parent 9398182393
commit e79fc288c0
16 changed files with 493 additions and 68 deletions
+1 -1
View File
@@ -154,7 +154,7 @@ namespace XplorePlane
protected override Window CreateShell() protected override Window CreateShell()
{ {
return Container.Resolve<MainWindowB>(); return Container.Resolve<MainWindow>();
} }
protected override void RegisterTypes(IContainerRegistry containerRegistry) protected override void RegisterTypes(IContainerRegistry containerRegistry)
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 377 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 391 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 382 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 384 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

@@ -0,0 +1,342 @@
<UserControl
x:Class="XplorePlane.Views.AxisControlPanelView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
d:DesignHeight="260"
d:DesignWidth="340"
mc:Ignorable="d">
<UserControl.Resources>
<Style x:Key="GreenValueBox" TargetType="Border">
<Setter Property="Background" Value="#00CC00" />
<Setter Property="CornerRadius" Value="10" />
<Setter Property="Padding" Value="8,3" />
<Setter Property="Margin" Value="0,0,4,5" />
<Setter Property="MinWidth" Value="68" />
</Style>
<Style x:Key="GrayValueBox" TargetType="Border">
<Setter Property="Background" Value="#D8D8D8" />
<Setter Property="CornerRadius" Value="10" />
<Setter Property="Padding" Value="8,3" />
<Setter Property="Margin" Value="0,0,4,5" />
<Setter Property="MinWidth" Value="48" />
</Style>
</UserControl.Resources>
<Grid Background="#F0F0F0">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<!-- 标题 -->
<TextBlock
Grid.Row="0"
Margin="8,6,0,6"
HorizontalAlignment="Left"
FontSize="13"
FontWeight="SemiBold"
Foreground="#333333"
Text="运动控制" />
<!-- 主体 -->
<Grid Grid.Row="1" Margin="8,0,8,4">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<!-- 左侧: 轴参数 -->
<StackPanel Grid.Column="0" VerticalAlignment="Top">
<!-- X inc -->
<StackPanel Orientation="Horizontal">
<Border Style="{StaticResource GreenValueBox}">
<TextBlock
HorizontalAlignment="Right"
FontSize="13"
FontWeight="Bold"
Foreground="Black"
Text="260663" />
</Border>
<TextBlock
VerticalAlignment="Center"
FontSize="13"
FontWeight="SemiBold"
Foreground="#333333"
Text="X inc" />
</StackPanel>
<!-- Y inc -->
<StackPanel Orientation="Horizontal">
<Border Style="{StaticResource GreenValueBox}">
<TextBlock
HorizontalAlignment="Right"
FontSize="13"
FontWeight="Bold"
Foreground="Black"
Text="149584" />
</Border>
<TextBlock
VerticalAlignment="Center"
FontSize="13"
FontWeight="SemiBold"
Foreground="#333333"
Text="Y inc" />
</StackPanel>
<!-- Z inc -->
<StackPanel Orientation="Horizontal">
<Border Style="{StaticResource GreenValueBox}">
<TextBlock
HorizontalAlignment="Right"
FontSize="13"
FontWeight="Bold"
Foreground="Black"
Text="52150" />
</Border>
<TextBlock
VerticalAlignment="Center"
FontSize="13"
FontWeight="SemiBold"
Foreground="#333333"
Text="Z inc" />
</StackPanel>
<!-- R'/100 -->
<StackPanel Orientation="Horizontal">
<Border Style="{StaticResource GreenValueBox}">
<TextBlock
HorizontalAlignment="Right"
FontSize="13"
FontWeight="Bold"
Foreground="Black"
Text="0" />
</Border>
<TextBlock
VerticalAlignment="Center"
FontSize="13"
FontWeight="SemiBold"
Foreground="#333333"
Text="R'/100" />
</StackPanel>
<!-- T'/100 -->
<StackPanel Orientation="Horizontal">
<Border Style="{StaticResource GreenValueBox}">
<TextBlock
HorizontalAlignment="Right"
FontSize="13"
FontWeight="Bold"
Foreground="Black"
Text="0" />
</Border>
<TextBlock
VerticalAlignment="Center"
FontSize="13"
FontWeight="SemiBold"
Foreground="#333333"
Text="T'/100" />
</StackPanel>
<!-- 速度1 -->
<StackPanel Orientation="Horizontal">
<Border Width="67" Style="{StaticResource GrayValueBox}">
<TextBlock
HorizontalAlignment="Right"
FontSize="13"
FontWeight="Bold"
Foreground="Black"
Text="0" />
</Border>
<Border
Margin="0,0,0,5"
Padding="4,2"
VerticalAlignment="Center"
Background="#889988"
CornerRadius="3">
<Rectangle
Width="24"
Height="8"
Fill="#CC4444" />
</Border>
</StackPanel>
<!-- 速度2 -->
<StackPanel Orientation="Horizontal">
<Border Style="{StaticResource GreenValueBox}">
<TextBlock
HorizontalAlignment="Right"
FontSize="13"
FontWeight="Bold"
Foreground="Black"
Text="0" />
</Border>
<Border
Margin="0,0,0,5"
Padding="4,2"
VerticalAlignment="Center"
Background="#889988"
CornerRadius="3">
<Rectangle
Width="24"
Height="8"
Fill="#CC4444" />
</Border>
</StackPanel>
</StackPanel>
<!-- 中间: 缩放按钮 -->
<StackPanel
Grid.Column="1"
Margin="8,0,8,0"
VerticalAlignment="Top">
<Button
Width="44"
Height="44"
Margin="0,0,0,4"
Background="#D0D0D0"
BorderBrush="#A0A0A0"
Content="🔍+"
Cursor="Hand"
FontSize="14"
RenderTransformOrigin="5.179,0.786"
ToolTip="放大" />
<Ellipse
Width="36"
Height="36"
Margin="2,8,2,8"
Fill="#B0B0B0"
Stroke="#909090"
StrokeThickness="1" />
<Button
Width="44"
Height="44"
Margin="0,4,0,0"
Background="#D0D0D0"
BorderBrush="#A0A0A0"
Content="🔍−"
Cursor="Hand"
FontSize="14"
ToolTip="缩小" />
</StackPanel>
<!-- 右侧: 方向控制十字键 -->
<Grid
Grid.Column="2"
Margin="0,4,0,0"
HorizontalAlignment="Center"
VerticalAlignment="Top">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<!-- 上 -->
<Button
Grid.Row="0"
Grid.Column="1"
Width="44"
Height="44"
Background="#D0D0D0"
BorderBrush="#A0A0A0"
Content="⇧"
Cursor="Hand"
FontSize="22"
Foreground="#888888"
ToolTip="上移" />
<!-- 左 -->
<Button
Grid.Row="1"
Grid.Column="0"
Width="44"
Height="44"
Background="#D0D0D0"
BorderBrush="#A0A0A0"
Content="⇦"
Cursor="Hand"
FontSize="22"
Foreground="#888888"
ToolTip="左移" />
<!-- 中心 -->
<Ellipse
Grid.Row="1"
Grid.Column="1"
Width="36"
Height="36"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Fill="#A8A8A8"
Stroke="#888888"
StrokeThickness="2" />
<!-- 右 -->
<Button
Grid.Row="1"
Grid.Column="2"
Width="44"
Height="44"
Background="#D0D0D0"
BorderBrush="#A0A0A0"
Content="⇨"
Cursor="Hand"
FontSize="22"
Foreground="#888888"
ToolTip="右移" />
<!-- 下 -->
<Button
Grid.Row="2"
Grid.Column="1"
Width="44"
Height="44"
Background="#D0D0D0"
BorderBrush="#A0A0A0"
Content="⇩"
Cursor="Hand"
FontSize="22"
Foreground="#888888"
ToolTip="下移" />
</Grid>
</Grid>
<!-- 底部工具栏 -->
<StackPanel
Grid.Row="2"
Margin="8,4,8,6"
HorizontalAlignment="Right"
Orientation="Horizontal">
<Button
Width="36"
Height="28"
Margin="0,0,4,0"
Background="#D8D8D8"
BorderBrush="#A0A0A0"
Content="🔬"
Cursor="Hand"
FontSize="14"
ToolTip="显微镜" />
<Button
Width="36"
Height="28"
Margin="0,0,4,0"
Background="#D8D8D8"
BorderBrush="#A0A0A0"
Content="💾"
Cursor="Hand"
FontSize="14"
ToolTip="保存" />
<Button
Width="36"
Height="28"
Background="#D8D8D8"
BorderBrush="#A0A0A0"
Content="📂"
Cursor="Hand"
FontSize="14"
ToolTip="打开" />
</StackPanel>
</Grid>
</UserControl>
@@ -0,0 +1,12 @@
using System.Windows.Controls;
namespace XplorePlane.Views
{
public partial class AxisControlPanelView : UserControl
{
public AxisControlPanelView()
{
InitializeComponent();
}
}
}
@@ -12,14 +12,21 @@
<RowDefinition Height="Auto" /> <RowDefinition Height="Auto" />
<RowDefinition Height="*" /> <RowDefinition Height="*" />
</Grid.RowDefinitions> </Grid.RowDefinitions>
<Border Grid.Row="0" Background="#F0F0F0" BorderBrush="#DDDDDD" BorderThickness="0,0,0,1"> <Border
<TextBlock Margin="8,4" HorizontalAlignment="Left" VerticalAlignment="Center" Grid.Row="0"
FontWeight="SemiBold" Foreground="#333333" Text="探测器" /> Background="#F0F0F0"
BorderBrush="#DDDDDD"
BorderThickness="0,0,0,1">
<TextBlock
Margin="8,4"
HorizontalAlignment="Left"
VerticalAlignment="Center"
FontWeight="SemiBold"
Foreground="#333333"
Text="探测器" />
</Border> </Border>
<ScrollViewer Grid.Row="1" VerticalScrollBarVisibility="Auto"> <ScrollViewer Grid.Row="1" VerticalScrollBarVisibility="Auto">
<StackPanel Margin="8"> <StackPanel Margin="8" />
<TextBlock Text="探测器控件(待集成)" Foreground="#999999" />
</StackPanel>
</ScrollViewer> </ScrollViewer>
</Grid> </Grid>
</UserControl> </UserControl>
@@ -4,7 +4,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
d:DesignHeight="300" d:DesignHeight="220"
d:DesignWidth="300" d:DesignWidth="300"
mc:Ignorable="d"> mc:Ignorable="d">
<Grid Background="#FFFFFF"> <Grid Background="#FFFFFF">
@@ -23,7 +23,7 @@
VerticalAlignment="Center" VerticalAlignment="Center"
FontWeight="SemiBold" FontWeight="SemiBold"
Foreground="#333333" Foreground="#333333"
Text="探测器" /> Text="运动控制" />
</Border> </Border>
<ScrollViewer <ScrollViewer
Grid.Row="1" Grid.Row="1"
@@ -5,14 +5,14 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:rayViews="clr-namespace:XP.Hardware.RaySource.Views;assembly=XP.Hardware.RaySource" xmlns:rayViews="clr-namespace:XP.Hardware.RaySource.Views;assembly=XP.Hardware.RaySource"
d:DesignHeight="140" d:DesignHeight="100"
d:DesignWidth="300" d:DesignWidth="300"
mc:Ignorable="d"> mc:Ignorable="d">
<Grid Background="#F5F5F5"> <Grid Background="#F5F5F5">
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="Auto" /> <RowDefinition Height="Auto" />
<RowDefinition Height="Auto" /> <RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions> </Grid.RowDefinitions>
<!-- 顶部: 标签页 + 状态指示 --> <!-- 顶部: 标签页 + 状态指示 -->
@@ -23,28 +23,42 @@
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<!-- 标签页 --> <!-- 标签页 -->
<StackPanel Grid.Column="0" Orientation="Horizontal"> <StackPanel Grid.Column="0" Orientation="Horizontal">
<RadioButton Content="X-Ray" GroupName="RaySourceTab" IsChecked="True"
Margin="2,2,0,0" Padding="6,3" Background="White" <TextBlock
BorderBrush="#AAAAAA" BorderThickness="1,1,1,0" /> Margin="8,4"
<RadioButton Content="Microfocus" GroupName="RaySourceTab" HorizontalAlignment="Left"
Margin="2,2,0,0" Padding="6,3" Background="#E8E8E8" VerticalAlignment="Center"
BorderBrush="#AAAAAA" BorderThickness="1,1,1,0" /> FontWeight="SemiBold"
<TextBlock Text="▪" Margin="4,4,2,0" VerticalAlignment="Center" /> Foreground="#333333"
<RadioButton Content="TXI" GroupName="RaySourceTab" Text="射线源" />
Margin="0,2,0,0" Padding="6,3" Background="#E8E8E8"
BorderBrush="#AAAAAA" BorderThickness="1,1,1,0" />
</StackPanel> </StackPanel>
<!-- X-Ray ON 状态 --> <!-- X-Ray ON 状态 -->
<Border Grid.Column="1" Background="#4CAF50" CornerRadius="2" <Border
Margin="8,3,8,3" Padding="8,2" HorizontalAlignment="Center"> Grid.Column="1"
<TextBlock Text="X-Ray ON" Foreground="White" FontWeight="SemiBold" Margin="8,3,8,3"
HorizontalAlignment="Center" VerticalAlignment="Center" /> Padding="8,2"
HorizontalAlignment="Right"
Background="#4CAF50"
CornerRadius="2">
<TextBlock
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontWeight="SemiBold"
Foreground="White"
Text="X-Ray ON" />
</Border> </Border>
</Grid> </Grid>
<!-- 中间: Voltage / Power + ON/OFF --> <!-- 中间: Voltage / Power + ON/OFF -->
<Border Grid.Row="1" Background="#F0F0F0" BorderBrush="#CCCCCC" BorderThickness="0,1,0,1" <Border
Padding="8,6"> Grid.Row="1"
Padding="8,6"
Background="#F0F0F0"
BorderBrush="#CCCCCC"
BorderThickness="0,1,0,1">
<Grid> <Grid>
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="*" /> <ColumnDefinition Width="*" />
@@ -63,40 +77,77 @@
<ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<TextBlock Grid.Row="0" Grid.Column="0" Text="Voltage" VerticalAlignment="Center" <TextBlock
Margin="0,0,6,2" FontStyle="Italic" Foreground="#555555" /> Grid.Row="0"
<TextBox Grid.Row="0" Grid.Column="1" Text="100" TextAlignment="Right" Grid.Column="0"
Margin="0,0,4,2" Padding="2" VerticalContentAlignment="Center" /> Margin="0,0,6,2"
<TextBlock Grid.Row="0" Grid.Column="2" Text="kV" VerticalAlignment="Center" VerticalAlignment="Center"
Margin="0,0,0,2" Foreground="#555555" /> FontStyle="Italic"
Foreground="#555555"
Text="电压" />
<TextBox
Grid.Row="0"
Grid.Column="1"
Margin="0,0,4,2"
Padding="2"
VerticalContentAlignment="Center"
Text="100"
TextAlignment="Right" />
<TextBlock
Grid.Row="0"
Grid.Column="2"
Margin="0,0,0,2"
VerticalAlignment="Center"
Foreground="#555555"
Text="kV" />
<TextBlock Grid.Row="1" Grid.Column="0" Text="Power" VerticalAlignment="Center" <TextBlock
Margin="0,0,6,0" FontStyle="Italic" Foreground="#555555" /> Grid.Row="1"
<TextBox Grid.Row="1" Grid.Column="1" Text="1.30" TextAlignment="Right" Grid.Column="0"
Margin="0,0,4,0" Padding="2" VerticalContentAlignment="Center" /> Margin="0,0,6,0"
<TextBlock Grid.Row="1" Grid.Column="2" Text="W" VerticalAlignment="Center" VerticalAlignment="Center"
Foreground="#555555" /> FontStyle="Italic"
Foreground="#555555"
Text="功率" />
<TextBox
Grid.Row="1"
Grid.Column="1"
Margin="0,0,4,0"
Padding="2"
VerticalContentAlignment="Center"
Text="1.30"
TextAlignment="Right" />
<TextBlock
Grid.Row="1"
Grid.Column="2"
VerticalAlignment="Center"
Foreground="#555555"
Text="W" />
</Grid> </Grid>
<!-- ON / OFF 按钮 --> <!-- ON / OFF 按钮 -->
<StackPanel Grid.Column="1" Orientation="Horizontal" VerticalAlignment="Center" <StackPanel
Margin="10,0,0,0"> Grid.Column="1"
<Button Content="ON" Width="50" Height="30" Margin="0,0,4,0" Margin="10,0,0,0"
FontWeight="Bold" FontSize="13" /> VerticalAlignment="Center"
<Button Content="OFF" Width="50" Height="30" Orientation="Horizontal">
FontWeight="Bold" FontSize="13" /> <Button
Width="50"
Height="30"
Margin="0,0,4,0"
Content="ON"
FontSize="13"
FontWeight="Bold" />
<Button
Width="50"
Height="30"
Content="OFF"
FontSize="13"
FontWeight="Bold" />
</StackPanel> </StackPanel>
</Grid> </Grid>
</Border> </Border>
<!-- 底部: Manipulation 标题栏 -->
<Border Grid.Row="2" Background="#C0C0C0" BorderBrush="#AAAAAA" BorderThickness="0,0,0,1">
<StackPanel Orientation="Horizontal" Margin="6,3">
<TextBlock Text="Manipulation" FontWeight="SemiBold" Foreground="#333333"
VerticalAlignment="Center" />
<TextBlock Text="⚙" Margin="6,0,0,0" VerticalAlignment="Center"
Foreground="#666666" FontSize="12" />
</StackPanel>
</Border>
</Grid> </Grid>
</UserControl> </UserControl>
+20 -8
View File
@@ -1738,7 +1738,7 @@
<ColumnDefinition Width="180" /> <ColumnDefinition Width="180" />
<ColumnDefinition Width="*" /> <ColumnDefinition Width="*" />
<ColumnDefinition Width="200" /> <ColumnDefinition Width="200" />
<ColumnDefinition Width="200" /> <ColumnDefinition Width="350" />
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<!-- 左侧: 计划导航 --> <!-- 左侧: 计划导航 -->
@@ -1762,16 +1762,28 @@
<!-- 右侧: 属性面板 --> <!-- 右侧: 属性面板 -->
<Grid Grid.Column="3"> <Grid Grid.Column="3">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="300*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="100" />
<RowDefinition Height="250" />
<RowDefinition Height="*" /> <RowDefinition Height="*" />
<RowDefinition Height="*" /> <RowDefinition Height="300" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions> </Grid.RowDefinitions>
<views:RaySourcePanelView Grid.Row="0" /> <views:RaySourcePanelView Grid.Row="0" Grid.ColumnSpan="2" />
<views:MotionControlPanelView Grid.Row="1" /> <views:AxisControlPanelView
<views:DetectorPanelView Grid.Row="2" /> Grid.Row="1"
<views:NavigationPropertyPanelView Grid.Row="3" /> Grid.RowSpan="2"
Grid.ColumnSpan="2"
Margin="0,0,0,10" />
<views:DetectorPanelView
Grid.Row="2"
Grid.RowSpan="2"
Grid.ColumnSpan="2"
Margin="0,0,0,170" />
<views:NavigationPropertyPanelView Grid.Row="3" Grid.ColumnSpan="2" />
</Grid> </Grid>
</Grid> </Grid>
+1
View File
@@ -69,6 +69,7 @@
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Reference Include="Telerik.Windows.Controls"> <Reference Include="Telerik.Windows.Controls">
<HintPath>..\lib\RCWPF\2024.1.408.70.NoXaml\Telerik.Windows.Controls.dll</HintPath> <HintPath>..\lib\RCWPF\2024.1.408.70.NoXaml\Telerik.Windows.Controls.dll</HintPath>