134 lines
6.4 KiB
XML
134 lines
6.4 KiB
XML
<UserControl
|
|
x:Class="XplorePlane.Views.ViewportPanelView"
|
|
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"
|
|
xmlns:prism="http://prismlibrary.com/"
|
|
xmlns:roi="clr-namespace:XP.ImageProcessing.RoiControl.Controls;assembly=XP.ImageProcessing.RoiControl"
|
|
xmlns:histogram="clr-namespace:XP.Common.Controls.ImageHistogram;assembly=XP.Common"
|
|
prism:ViewModelLocator.AutoWireViewModel="True"
|
|
d:DesignHeight="400"
|
|
d:DesignWidth="600"
|
|
mc:Ignorable="d">
|
|
<UserControl.Resources>
|
|
<BooleanToVisibilityConverter x:Key="BoolToVisibilityConverter" />
|
|
</UserControl.Resources>
|
|
<Grid Background="#FFFFFF">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="*" />
|
|
<RowDefinition Height="Auto" />
|
|
</Grid.RowDefinitions>
|
|
|
|
<Border Grid.Row="0" Background="#F0F0F0" BorderBrush="#DDDDDD" BorderThickness="0,0,0,1">
|
|
<TextBlock
|
|
Margin="4,2"
|
|
HorizontalAlignment="Left"
|
|
VerticalAlignment="Center"
|
|
FontWeight="SemiBold"
|
|
Foreground="#333333"
|
|
Text="实时图像" />
|
|
</Border>
|
|
|
|
<Grid Grid.Row="1" x:Name="ImageAreaGrid">
|
|
<roi:PolygonRoiCanvas
|
|
x:Name="RoiCanvas"
|
|
ImageSource="{Binding ImageSource}"
|
|
IsImagePanEnabled="{Binding IsImagePanEnabled}"
|
|
IsWheelZoomEnabled="{Binding IsWheelZoomEnabled}"
|
|
ScaleBarMmPerPixel="0.139"
|
|
ShowScaleBar="{Binding DataContext.IsScaleBarVisible, RelativeSource={RelativeSource AncestorType=Window}}">
|
|
<roi:PolygonRoiCanvas.Background>
|
|
<DrawingBrush TileMode="Tile" Viewport="0,0,16,16" ViewportUnits="Absolute">
|
|
<DrawingBrush.Drawing>
|
|
<DrawingGroup>
|
|
<GeometryDrawing Brush="#FFFFFF">
|
|
<GeometryDrawing.Geometry>
|
|
<RectangleGeometry Rect="0,0,16,16" />
|
|
</GeometryDrawing.Geometry>
|
|
</GeometryDrawing>
|
|
<GeometryDrawing Brush="#E8E8E8">
|
|
<GeometryDrawing.Geometry>
|
|
<GeometryGroup>
|
|
<RectangleGeometry Rect="0,0,8,8" />
|
|
<RectangleGeometry Rect="8,8,8,8" />
|
|
</GeometryGroup>
|
|
</GeometryDrawing.Geometry>
|
|
</GeometryDrawing>
|
|
</DrawingGroup>
|
|
</DrawingBrush.Drawing>
|
|
</DrawingBrush>
|
|
</roi:PolygonRoiCanvas.Background>
|
|
</roi:PolygonRoiCanvas>
|
|
|
|
<!-- 十字辅助线叠加层(覆盖整个预览区域) -->
|
|
<Canvas x:Name="CrosshairOverlay"
|
|
IsHitTestVisible="False"
|
|
Visibility="Collapsed" />
|
|
|
|
<!-- 鼠标跟随蓝色十字线叠加层(实时关闭时显示) -->
|
|
<Canvas x:Name="MouseCrosshairOverlay"
|
|
IsHitTestVisible="False"
|
|
Visibility="Collapsed" />
|
|
|
|
<!-- 灰度直方图叠加层 -->
|
|
<histogram:ImageHistogramControl
|
|
x:Name="HistogramOverlay"
|
|
Width="200"
|
|
Height="150"
|
|
Margin="4"
|
|
Background="#CCFFFFFF"
|
|
IsHitTestVisible="False"
|
|
IsVisible="{Binding IsHistogramVisible}"
|
|
DisplayPosition="{Binding HistogramCorner}" />
|
|
|
|
<!-- 信息叠加层 -->
|
|
<Border
|
|
Margin="12"
|
|
Padding="10,8"
|
|
MinWidth="132"
|
|
MaxWidth="220"
|
|
Background="#CCFFFFFF"
|
|
BorderBrush="#99000000"
|
|
BorderThickness="1"
|
|
CornerRadius="4"
|
|
IsHitTestVisible="False"
|
|
Visibility="{Binding IsInfoOverlayVisible, Converter={StaticResource BoolToVisibilityConverter}}">
|
|
<Border.Style>
|
|
<Style TargetType="Border">
|
|
<Setter Property="HorizontalAlignment" Value="Right" />
|
|
<Setter Property="VerticalAlignment" Value="Bottom" />
|
|
<Style.Triggers>
|
|
<DataTrigger Binding="{Binding InfoOverlayCorner}" Value="TopLeft">
|
|
<Setter Property="HorizontalAlignment" Value="Left" />
|
|
<Setter Property="VerticalAlignment" Value="Top" />
|
|
</DataTrigger>
|
|
<DataTrigger Binding="{Binding InfoOverlayCorner}" Value="TopRight">
|
|
<Setter Property="HorizontalAlignment" Value="Right" />
|
|
<Setter Property="VerticalAlignment" Value="Top" />
|
|
</DataTrigger>
|
|
<DataTrigger Binding="{Binding InfoOverlayCorner}" Value="BottomLeft">
|
|
<Setter Property="HorizontalAlignment" Value="Left" />
|
|
<Setter Property="VerticalAlignment" Value="Bottom" />
|
|
</DataTrigger>
|
|
<DataTrigger Binding="{Binding InfoOverlayCorner}" Value="BottomRight">
|
|
<Setter Property="HorizontalAlignment" Value="Right" />
|
|
<Setter Property="VerticalAlignment" Value="Bottom" />
|
|
</DataTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
</Border.Style>
|
|
<TextBlock
|
|
FontFamily="Consolas"
|
|
FontSize="11"
|
|
Foreground="#222222"
|
|
LineHeight="13"
|
|
Text="{Binding InfoOverlayText}"
|
|
TextAlignment="Right"
|
|
TextWrapping="NoWrap" />
|
|
</Border>
|
|
</Grid>
|
|
</Grid>
|
|
</UserControl>
|