BGA检测: ROI按钮样式、拖拽性能优化、清除测量同时清除ROI
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 682 B |
@@ -113,11 +113,15 @@ namespace XplorePlane.ViewModels.ImageProcessing
|
|||||||
_canvas.ROIItems.Add(_roiShape);
|
_canvas.ROIItems.Add(_roiShape);
|
||||||
_canvas.SelectedROI = _roiShape;
|
_canvas.SelectedROI = _roiShape;
|
||||||
|
|
||||||
// 手动注册 CollectionChanged
|
// 手动注册 CollectionChanged(仅在添加/删除顶点时更新 Adorner,拖拽不触发)
|
||||||
_roiShape.Points.CollectionChanged += (s, e) =>
|
_roiShape.Points.CollectionChanged += (s, e) =>
|
||||||
|
{
|
||||||
|
if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Add ||
|
||||||
|
e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Remove)
|
||||||
{
|
{
|
||||||
_canvas.SelectedROI = null;
|
_canvas.SelectedROI = null;
|
||||||
_canvas.SelectedROI = _roiShape;
|
_canvas.SelectedROI = _roiShape;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// 禁用右键菜单(参考点点距方式)
|
// 禁用右键菜单(参考点点距方式)
|
||||||
|
|||||||
@@ -14,7 +14,39 @@
|
|||||||
<!-- 左侧:参数面板 -->
|
<!-- 左侧:参数面板 -->
|
||||||
<ScrollViewer Grid.Column="0" VerticalScrollBarVisibility="Auto">
|
<ScrollViewer Grid.Column="0" VerticalScrollBarVisibility="Auto">
|
||||||
<StackPanel Margin="10">
|
<StackPanel Margin="10">
|
||||||
<CheckBox Content="启用ROI区域" IsChecked="{Binding RoiEnabled}" Margin="0,0,0,6" FontWeight="SemiBold" />
|
<ToggleButton IsChecked="{Binding RoiEnabled}" Margin="0,0,0,6" Padding="8,4" Cursor="Hand" ToolTip="启用ROI区域">
|
||||||
|
<ToggleButton.Style>
|
||||||
|
<Style TargetType="ToggleButton">
|
||||||
|
<Setter Property="Template">
|
||||||
|
<Setter.Value>
|
||||||
|
<ControlTemplate TargetType="ToggleButton">
|
||||||
|
<Border x:Name="Bd" Background="#EEEEEE" BorderBrush="#CCCCCC"
|
||||||
|
BorderThickness="1" CornerRadius="3" Padding="10,4">
|
||||||
|
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
|
||||||
|
</Border>
|
||||||
|
<ControlTemplate.Triggers>
|
||||||
|
<Trigger Property="IsChecked" Value="True">
|
||||||
|
<Setter TargetName="Bd" Property="Background" Value="#0078D7" />
|
||||||
|
<Setter TargetName="Bd" Property="BorderBrush" Value="#005A9E" />
|
||||||
|
</Trigger>
|
||||||
|
<Trigger Property="IsMouseOver" Value="True">
|
||||||
|
<Setter TargetName="Bd" Property="Background" Value="#DDDDDD" />
|
||||||
|
</Trigger>
|
||||||
|
<MultiTrigger>
|
||||||
|
<MultiTrigger.Conditions>
|
||||||
|
<Condition Property="IsMouseOver" Value="True" />
|
||||||
|
<Condition Property="IsChecked" Value="True" />
|
||||||
|
</MultiTrigger.Conditions>
|
||||||
|
<Setter TargetName="Bd" Property="Background" Value="#006CBE" />
|
||||||
|
</MultiTrigger>
|
||||||
|
</ControlTemplate.Triggers>
|
||||||
|
</ControlTemplate>
|
||||||
|
</Setter.Value>
|
||||||
|
</Setter>
|
||||||
|
</Style>
|
||||||
|
</ToggleButton.Style>
|
||||||
|
<Image Source="/Assets/Icons/polygon.png" Width="20" Height="20" />
|
||||||
|
</ToggleButton>
|
||||||
<TextBlock Text="BGA定位参数" FontWeight="SemiBold" Margin="0,0,0,6" />
|
<TextBlock Text="BGA定位参数" FontWeight="SemiBold" Margin="0,0,0,6" />
|
||||||
<TextBlock Text="焊球最小面积" FontSize="11" Margin="0,0,0,2" />
|
<TextBlock Text="焊球最小面积" FontSize="11" Margin="0,0,0,2" />
|
||||||
<DockPanel Margin="0,0,0,6">
|
<DockPanel Margin="0,0,0,6">
|
||||||
|
|||||||
@@ -137,6 +137,8 @@ namespace XplorePlane.Views
|
|||||||
private void ClearAllMeasurements_Click(object sender, RoutedEventArgs e)
|
private void ClearAllMeasurements_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
RoiCanvas.ClearMeasurements();
|
RoiCanvas.ClearMeasurements();
|
||||||
|
RoiCanvas.ROIItems?.Clear();
|
||||||
|
RoiCanvas.SelectedROI = null;
|
||||||
if (DataContext is ViewportPanelViewModel vm)
|
if (DataContext is ViewportPanelViewModel vm)
|
||||||
vm.ResetMeasurementState();
|
vm.ResetMeasurementState();
|
||||||
SetStatus("已清除所有测量");
|
SetStatus("已清除所有测量");
|
||||||
|
|||||||
Reference in New Issue
Block a user