mirror of
https://gitee.com/akwkevin/aistudio.-wpf.-diagram
synced 2026-03-02 15:50:51 +08:00
129 lines
6.8 KiB
XML
129 lines
6.8 KiB
XML
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:model="clr-namespace:AIStudio.Wpf.ADiagram.Models"
|
|
xmlns:s="clr-namespace:Util.DiagramDesigner;assembly=Util.DiagramDesigner"
|
|
xmlns:demo="clr-namespace:AIStudio.Wpf.ADiagram.Demos.Flowchart"
|
|
xmlns:converter="clr-namespace:AIStudio.Wpf.ADiagram.Converters">
|
|
<converter:HtmlColorConverter x:Key="HtmlColorConverter"/>
|
|
<s:ColorBrushConverter x:Key="ColorBrushConverter"/>
|
|
|
|
<ControlTemplate x:Key="NormalNodeStyle" TargetType="{x:Type ContentControl}">
|
|
<Grid>
|
|
<Border BorderThickness="1" BorderBrush="{Binding ColorViewModel.LineColor,Converter={StaticResource ColorBrushConverter}}" Background="{Binding ColorViewModel.FillColor,Converter={StaticResource ColorBrushConverter}}">
|
|
<Grid>
|
|
<Border HorizontalAlignment="Left" Width="3" Background="{Binding Color}"/>
|
|
</Grid>
|
|
</Border>
|
|
</Grid>
|
|
</ControlTemplate>
|
|
|
|
<ControlTemplate x:Key="StartNodeStyle" TargetType="{x:Type ContentControl}">
|
|
<Grid>
|
|
<Border CornerRadius="3" BorderThickness="1" BorderBrush="{Binding ColorViewModel.LineColor,Converter={StaticResource ColorBrushConverter}}" Background="{Binding ColorViewModel.FillColor,Converter={StaticResource ColorBrushConverter}}">
|
|
<Grid>
|
|
<Border HorizontalAlignment="Left" CornerRadius="3,0,0,3" Width="3" Background="{Binding Color}"/>
|
|
</Grid>
|
|
</Border>
|
|
</Grid>
|
|
</ControlTemplate>
|
|
|
|
<ControlTemplate x:Key="EndNodeStyle" TargetType="{x:Type ContentControl}">
|
|
<Grid>
|
|
<Border CornerRadius="3" BorderThickness="1" BorderBrush="{Binding ColorViewModel.LineColor,Converter={StaticResource ColorBrushConverter}}" Background="{Binding ColorViewModel.FillColor,Converter={StaticResource ColorBrushConverter}}">
|
|
<Grid>
|
|
<Border HorizontalAlignment="Left" CornerRadius="3,0,0,3" Width="3" Background="{Binding Color}"/>
|
|
</Grid>
|
|
</Border>
|
|
</Grid>
|
|
</ControlTemplate>
|
|
|
|
<ControlTemplate x:Key="MiddleNodeStyle" TargetType="{x:Type ContentControl}">
|
|
<Grid>
|
|
<Border BorderThickness="1" BorderBrush="{Binding ColorViewModel.LineColor,Converter={StaticResource ColorBrushConverter}}" Background="{Binding ColorViewModel.FillColor,Converter={StaticResource ColorBrushConverter}}">
|
|
<Grid>
|
|
<Border HorizontalAlignment="Left" Width="3" Background="{Binding Color}"/>
|
|
</Grid>
|
|
</Border>
|
|
</Grid>
|
|
</ControlTemplate>
|
|
|
|
<ControlTemplate x:Key="DecideNodeStyle" TargetType="{x:Type ContentControl}">
|
|
<Grid>
|
|
<Path Stroke="{Binding ColorViewModel.LineColor,Converter={StaticResource ColorBrushConverter}}" Fill="{Binding ColorViewModel.FillColor,Converter={StaticResource ColorBrushConverter}}" StrokeThickness="1" Stretch="Fill" Data="M 0,0.25 L 0.5 0 L 1,0.25 L 0.5,0.5 Z"></Path>
|
|
</Grid>
|
|
</ControlTemplate>
|
|
|
|
|
|
<ControlTemplate x:Key="COBeginNodeStyle" TargetType="{x:Type ContentControl}">
|
|
<Grid>
|
|
<Border BorderThickness="1" BorderBrush="{Binding ColorViewModel.LineColor,Converter={StaticResource ColorBrushConverter}}" Background="{Binding ColorViewModel.FillColor,Converter={StaticResource ColorBrushConverter}}">
|
|
<Grid>
|
|
<Border HorizontalAlignment="Left" Width="3" Background="{Binding Color}"/>
|
|
</Grid>
|
|
</Border>
|
|
</Grid>
|
|
</ControlTemplate>
|
|
|
|
<ControlTemplate x:Key="COEndNodeStyle" TargetType="{x:Type ContentControl}">
|
|
<Grid>
|
|
<Border BorderThickness="1" BorderBrush="{Binding ColorViewModel.LineColor,Converter={StaticResource ColorBrushConverter}}" Background="{Binding ColorViewModel.FillColor,Converter={StaticResource ColorBrushConverter}}">
|
|
<Grid>
|
|
<Border HorizontalAlignment="Left" Width="3" Background="{Binding Color}"/>
|
|
</Grid>
|
|
</Border>
|
|
</Grid>
|
|
</ControlTemplate>
|
|
|
|
<Style x:Key="CustomFlowNodeStyle" TargetType="{x:Type ContentControl}">
|
|
<Setter Property="Template" Value="{StaticResource NormalNodeStyle}" />
|
|
<Style.Triggers>
|
|
<DataTrigger Binding="{Binding Kind}" Value="Start">
|
|
<Setter Property="Template" Value="{StaticResource StartNodeStyle}" />
|
|
</DataTrigger>
|
|
<DataTrigger Binding="{Binding Kind}" Value="End">
|
|
<Setter Property="Template" Value="{StaticResource EndNodeStyle}" />
|
|
</DataTrigger>
|
|
<DataTrigger Binding="{Binding Kind}" Value="Middle">
|
|
<Setter Property="Template" Value="{StaticResource MiddleNodeStyle}" />
|
|
</DataTrigger>
|
|
<DataTrigger Binding="{Binding Kind}" Value="Decide">
|
|
<Setter Property="Template" Value="{StaticResource DecideNodeStyle}" />
|
|
</DataTrigger>
|
|
<DataTrigger Binding="{Binding Kind}" Value="COBegin">
|
|
<Setter Property="Template" Value="{StaticResource COBeginNodeStyle}" />
|
|
</DataTrigger>
|
|
<DataTrigger Binding="{Binding Kind}" Value="COEnd">
|
|
<Setter Property="Template" Value="{StaticResource COEndNodeStyle}" />
|
|
</DataTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
|
|
|
|
<DataTemplate DataType="{x:Type model:FlowchartToolBoxData}">
|
|
<Grid Width="{Binding Width}" Height="{Binding Height}">
|
|
<Rectangle Name="Border"
|
|
StrokeThickness="1"
|
|
StrokeDashArray="2"
|
|
Fill="Transparent"
|
|
SnapsToDevicePixels="true"/>
|
|
<Viewbox Stretch="Fill">
|
|
<Grid>
|
|
<ContentControl Style="{StaticResource CustomFlowNodeStyle}" Margin="2"/>
|
|
<TextBlock Text="{Binding Text}" Margin="5" Foreground="{Binding ColorViewModel.LineColor,Converter={StaticResource ColorBrushConverter}}" VerticalAlignment="Center" HorizontalAlignment="Center" />
|
|
</Grid>
|
|
</Viewbox>
|
|
</Grid>
|
|
<DataTemplate.Triggers>
|
|
<Trigger Property="IsMouseOver" Value="true">
|
|
<Setter TargetName="Border" Property="Stroke" Value="Gray"/>
|
|
</Trigger>
|
|
</DataTemplate.Triggers>
|
|
</DataTemplate>
|
|
|
|
<DataTemplate DataType="{x:Type demo:FlowNode}">
|
|
<Grid IsHitTestVisible="False">
|
|
<ContentControl Style="{StaticResource CustomFlowNodeStyle}"/>
|
|
</Grid>
|
|
</DataTemplate>
|
|
|
|
</ResourceDictionary> |