VppCalibrationPage.xaml 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <UserControl x:Class="Plugins.Vpp.Engines.VppCalibrationPage"
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. Background="Transparent">
  5. <Grid Margin="4">
  6. <Grid.ColumnDefinitions>
  7. <ColumnDefinition Width="*"/>
  8. <ColumnDefinition Width="8"/>
  9. <ColumnDefinition Width="320"/>
  10. </Grid.ColumnDefinitions>
  11. <!-- 左:标定图像区 -->
  12. <Border Grid.Column="0" Background="Black" CornerRadius="6">
  13. <Grid>
  14. <Image x:Name="CalibImage" Stretch="Uniform"/>
  15. <TextBlock x:Name="ImagePlaceholder" Text="拖入标定图片或点击右侧“载入图片”"
  16. Foreground="#888" HorizontalAlignment="Center" VerticalAlignment="Center"/>
  17. </Grid>
  18. </Border>
  19. <!-- 右:标定操作区 -->
  20. <Border Grid.Column="2" Background="{DynamicResource RegionBrush}"
  21. BorderBrush="{DynamicResource BorderBrush}" BorderThickness="1" CornerRadius="6" Padding="10,8">
  22. <DockPanel>
  23. <!-- 标定类型 -->
  24. <StackPanel DockPanel.Dock="Top" Orientation="Horizontal" Margin="0,0,0,8">
  25. <RadioButton Content="九点标定" IsChecked="True" Margin="0,0,16,0" GroupName="CalibType"
  26. Checked="NinePoint_Checked"/>
  27. <RadioButton Content="旋转中心" GroupName="CalibType" Checked="RotationCenter_Checked"/>
  28. </StackPanel>
  29. <!-- 图片操作 -->
  30. <StackPanel DockPanel.Dock="Top" Orientation="Horizontal" Margin="0,0,0,8">
  31. <Button Content="载入图片" Click="LoadImage_Click" Padding="10,3" Margin="0,0,8,0"/>
  32. <Button Content="清空点位" Click="ClearPoints_Click" Padding="10,3"/>
  33. </StackPanel>
  34. <!-- 点位表 -->
  35. <DataGrid DockPanel.Dock="Top" ItemsSource="{Binding Points}" AutoGenerateColumns="False"
  36. CanUserAddRows="False" HeadersVisibility="Column" Height="240"
  37. GridLinesVisibility="Horizontal" BorderThickness="1">
  38. <DataGrid.Columns>
  39. <DataGridTextColumn Header="#" Binding="{Binding Index}" IsReadOnly="True" Width="30"/>
  40. <DataGridTextColumn Header="机器人X" Binding="{Binding RobotX}" Width="*"/>
  41. <DataGridTextColumn Header="机器人Y" Binding="{Binding RobotY}" Width="*"/>
  42. <DataGridTextColumn Header="像素X" Binding="{Binding PixelX}" Width="*"/>
  43. <DataGridTextColumn Header="像素Y" Binding="{Binding PixelY}" Width="*"/>
  44. </DataGrid.Columns>
  45. </DataGrid>
  46. <!-- 计算与结果 -->
  47. <StackPanel DockPanel.Dock="Top" Orientation="Horizontal" Margin="8,8,0,0">
  48. <Button Content="计算标定" Click="Calculate_Click" Padding="14,4" Margin="0,0,8,0"/>
  49. <Button Content="添加一行" Click="AddRow_Click" Padding="10,4"/>
  50. </StackPanel>
  51. <TextBox x:Name="ResultText" DockPanel.Dock="Top" Margin="8,8,0,0" MinHeight="110"
  52. IsReadOnly="True" TextWrapping="Wrap" VerticalScrollBarVisibility="Auto"
  53. FontFamily="Consolas" FontSize="12"/>
  54. </DockPanel>
  55. </Border>
  56. </Grid>
  57. </UserControl>