支持画笔及痕迹擦除,为白板做准备

This commit is contained in:
艾竹
2023-05-07 23:01:38 +08:00
parent 4a1d25fdf0
commit c3342ced13
30 changed files with 2639 additions and 607 deletions

View File

@@ -8,8 +8,9 @@
<BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
<dd:ColorBrushConverter x:Key="ColorBrushConverter" />
<dd:ClipConverter x:Key="ClipConverter"/>
<dd:ClipConverter x:Key="ClipConverter"/>
<dd:NegativeConverter x:Key="NegativeConverter"/>
<DataTemplate DataType="{x:Type dd:DefaultDesignerItemViewModel}">
<Grid IsHitTestVisible="False">
<Rectangle StrokeThickness="1" Fill="{Binding ColorViewModel.FillColor,Converter={StaticResource ColorBrushConverter}}" Stroke="{Binding ColorViewModel.LineColor,Converter={StaticResource ColorBrushConverter}}" />
@@ -25,102 +26,36 @@
</Grid>
</DataTemplate>
<DataTemplate DataType="{x:Type dd:ShapeDesignerItemViewModel}">
<Grid IsHitTestVisible="False" Background="White">
<Grid.ContextMenu>
<ContextMenu>
<MenuItem Header="显示点" IsCheckable="True" IsChecked="{Binding ShowConnectors}" />
</ContextMenu>
</Grid.ContextMenu>
<DataTemplate DataType="{x:Type dd:DrawingDesignerItemViewModelBase}">
<Grid IsHitTestVisible="False">
<Control x:Name="control" />
</Grid>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding DrawMode}" Value="Line">
<DataTrigger Binding="{Binding Erasable}" Value="True">
<Setter TargetName="control" Property="Template">
<Setter.Value>
<ControlTemplate>
<Line X1="{Binding ConnectionPoints[0].X}" Y1="{Binding ConnectionPoints[0].Y}"
X2="{Binding ConnectionPoints[1].X}" Y2="{Binding ConnectionPoints[1].Y}"
Stroke="{Binding ColorViewModel.LineColor,Converter={StaticResource ColorBrushConverter}}"
StrokeThickness="{Binding ColorViewModel.LineWidth}"
Stretch="Fill"></Line>
<Path Fill="{Binding ColorViewModel.LineColor,Converter={StaticResource ColorBrushConverter}}"
Data="{Binding Geometry}">
</Path>
</ControlTemplate>
</Setter.Value>
</Setter>
</DataTrigger>
<DataTrigger Binding="{Binding DrawMode}" Value="Rectangle">
<DataTrigger Binding="{Binding Erasable}" Value="False">
<Setter TargetName="control" Property="Template">
<Setter.Value>
<ControlTemplate>
<Rectangle
Stroke="{Binding ColorViewModel.LineColor,Converter={StaticResource ColorBrushConverter}}"
StrokeThickness="{Binding ColorViewModel.LineWidth}"
Fill="{Binding ColorViewModel.FillColor,Converter={StaticResource ColorBrushConverter}}"
Stretch="Fill"></Rectangle>
<Path StrokeThickness="{Binding ColorViewModel.LineWidth}"
StrokeDashArray="{Binding ColorViewModel.LineDashStyle,Converter={StaticResource LineDashConverter}}"
Stroke="{Binding ColorViewModel.LineColor,Converter={StaticResource ColorBrushConverter}}"
Fill="{Binding ColorViewModel.LineColor,Converter={StaticResource ColorBrushConverter}}"
Data="{Binding Geometry}">
</Path>
</ControlTemplate>
</Setter.Value>
</Setter>
</DataTrigger>
<DataTrigger Binding="{Binding DrawMode}" Value="Ellipse">
<Setter TargetName="control" Property="Template">
<Setter.Value>
<ControlTemplate>
<Ellipse
Stroke="{Binding ColorViewModel.LineColor,Converter={StaticResource ColorBrushConverter}}"
StrokeThickness="{Binding ColorViewModel.LineWidth}"
Fill="{Binding ColorViewModel.FillColor,Converter={StaticResource ColorBrushConverter}}"
Stretch="Fill"></Ellipse>
</ControlTemplate>
</Setter.Value>
</Setter>
</DataTrigger>
<DataTrigger Binding="{Binding DrawMode}" Value="Polyline">
<Setter TargetName="control" Property="Template">
<Setter.Value>
<ControlTemplate>
<Polyline
Points="{Binding ConnectionPoints, Converter={x:Static dd:ConnectionPointConverter.Instance}}"
Stroke="{Binding ColorViewModel.LineColor,Converter={StaticResource ColorBrushConverter}}"
StrokeThickness="{Binding ColorViewModel.LineWidth}"
Fill="{Binding ColorViewModel.FillColor,Converter={StaticResource ColorBrushConverter}}"
FillRule="Nonzero"
Stretch="Fill"></Polyline>
</ControlTemplate>
</Setter.Value>
</Setter>
</DataTrigger>
<DataTrigger Binding="{Binding DrawMode}" Value="Polygon">
<Setter TargetName="control" Property="Template">
<Setter.Value>
<ControlTemplate>
<Polygon
Points="{Binding ConnectionPoints, Converter={x:Static dd:ConnectionPointConverter.Instance}}"
Stroke="{Binding ColorViewModel.LineColor,Converter={StaticResource ColorBrushConverter}}"
StrokeThickness="{Binding ColorViewModel.LineWidth}"
Fill="{Binding ColorViewModel.FillColor,Converter={StaticResource ColorBrushConverter}}"
FillRule="Nonzero"
Stretch="Fill"></Polygon>
</ControlTemplate>
</Setter.Value>
</Setter>
</DataTrigger>
<DataTrigger Binding="{Binding DrawMode}" Value="DirectLine">
<Setter TargetName="control" Property="Template">
<Setter.Value>
<ControlTemplate>
<Polyline
Points="{Binding ConnectionPoints, Converter={x:Static dd:ConnectionPointConverter.Instance}}"
Stroke="{Binding ColorViewModel.LineColor,Converter={StaticResource ColorBrushConverter}}"
StrokeThickness="{Binding ColorViewModel.LineWidth}"
Fill="{Binding ColorViewModel.FillColor,Converter={StaticResource ColorBrushConverter}}"
FillRule="Nonzero"
Stretch="Fill"></Polyline>
</ControlTemplate>
</Setter.Value>
</Setter>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>