107 lines
6.1 KiB
XML
107 lines
6.1 KiB
XML
<ResourceDictionary
|
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:local="clr-namespace:XP.ImageProcessing.RoiControl.Controls">
|
|
|
|
<!-- ControlThumb样式 - 14*14灰色矩形 -->
|
|
<Style x:Key="AreaControlThumbStyle" TargetType="{x:Type Thumb}">
|
|
<Setter Property="Width" Value="14" />
|
|
<Setter Property="Height" Value="14" />
|
|
<Setter Property="Cursor" Value="Hand" />
|
|
<Setter Property="Template">
|
|
<Setter.Value>
|
|
<ControlTemplate TargetType="{x:Type Thumb}">
|
|
<Grid>
|
|
<!-- 灰色矩形 -->
|
|
<Rectangle x:Name="ThumbRect"
|
|
Fill="#FF808080"
|
|
Stroke="White"
|
|
StrokeThickness="1"
|
|
Width="14"
|
|
Height="14" />
|
|
</Grid>
|
|
<ControlTemplate.Triggers>
|
|
<!-- 鼠标悬停效果 -->
|
|
<Trigger Property="IsMouseOver" Value="True">
|
|
<Setter TargetName="ThumbRect" Property="Fill" Value="#FF999999" />
|
|
<Setter TargetName="ThumbRect" Property="StrokeThickness" Value="2" />
|
|
</Trigger>
|
|
<!-- 拖拽时效果 -->
|
|
<Trigger Property="IsDragging" Value="True">
|
|
<Setter TargetName="ThumbRect" Property="Fill" Value="#FFAAAAAA" />
|
|
<Setter TargetName="ThumbRect" Property="StrokeThickness" Value="2" />
|
|
<Setter Property="Cursor" Value="SizeAll" />
|
|
</Trigger>
|
|
</ControlTemplate.Triggers>
|
|
</ControlTemplate>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Style>
|
|
|
|
<!-- ImageROICanvas控件模板 -->
|
|
<Style TargetType="{x:Type local:ImageROICanvas}">
|
|
<Setter Property="Background" Value="LightGray" />
|
|
<Setter Property="ClipToBounds" Value="True" />
|
|
<Setter Property="Template">
|
|
<Setter.Value>
|
|
<ControlTemplate TargetType="{x:Type local:ImageROICanvas}">
|
|
<Border Background="{TemplateBinding Background}"
|
|
BorderBrush="{TemplateBinding BorderBrush}"
|
|
BorderThickness="{TemplateBinding BorderThickness}"
|
|
ClipToBounds="True">
|
|
<Grid>
|
|
<ScrollViewer HorizontalScrollBarVisibility="Auto"
|
|
VerticalScrollBarVisibility="Auto"
|
|
x:Name="PART_ScrollViewer">
|
|
<Grid>
|
|
<Grid.RenderTransform>
|
|
<TransformGroup>
|
|
<ScaleTransform ScaleX="{TemplateBinding ZoomScale}"
|
|
ScaleY="{TemplateBinding ZoomScale}"
|
|
CenterX="{Binding ZoomCenter.X, RelativeSource={RelativeSource TemplatedParent}}"
|
|
CenterY="{Binding ZoomCenter.Y, RelativeSource={RelativeSource TemplatedParent}}" />
|
|
<TranslateTransform X="{TemplateBinding PanningOffsetX}"
|
|
Y="{TemplateBinding PanningOffsetY}" />
|
|
</TransformGroup>
|
|
</Grid.RenderTransform>
|
|
|
|
<AdornerDecorator x:Name="PART_Adorner">
|
|
<Canvas x:Name="PART_Canvas"
|
|
Width="{TemplateBinding ImageWidth}"
|
|
Height="{TemplateBinding ImageHeight}"
|
|
Background="White">
|
|
|
|
<!-- 图像显示 -->
|
|
<Image Source="{TemplateBinding ImageSource}"
|
|
Width="{TemplateBinding ImageWidth}"
|
|
Height="{TemplateBinding ImageHeight}"
|
|
Stretch="Fill" />
|
|
|
|
<!-- ROI项目容器 - 只支持多边形 -->
|
|
<ItemsControl ItemsSource="{TemplateBinding ROIItems}">
|
|
<ItemsControl.ItemsPanel>
|
|
<ItemsPanelTemplate>
|
|
<Canvas />
|
|
</ItemsPanelTemplate>
|
|
</ItemsControl.ItemsPanel>
|
|
<ItemsControl.ItemTemplate>
|
|
<DataTemplate>
|
|
<!-- 多边形ROI -->
|
|
<Polygon Points="{Binding Points}"
|
|
Stroke="{Binding Color}"
|
|
StrokeThickness="1"
|
|
Fill="Transparent" />
|
|
</DataTemplate>
|
|
</ItemsControl.ItemTemplate>
|
|
</ItemsControl>
|
|
</Canvas>
|
|
</AdornerDecorator>
|
|
</Grid>
|
|
</ScrollViewer>
|
|
</Grid>
|
|
</Border>
|
|
</ControlTemplate>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Style>
|
|
</ResourceDictionary> |