自定义节点样式

This commit is contained in:
艾竹
2023-01-27 22:11:26 +08:00
parent 4feddf8392
commit ba9e3bdf58
7 changed files with 595 additions and 14 deletions

View File

@@ -7,6 +7,9 @@
xmlns:controls="clr-namespace:AIStudio.Wpf.DiagramDesigner.Demo.Controls"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800">
<UserControl.Resources>
<dd:ColorBrushConverter x:Key="ColorBrushConverter" />
</UserControl.Resources>
<Grid>
<!-- Diagram Control -->
<dd:DiagramControl x:Name="diagram" DataContext="{Binding DiagramViewModel}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" >
@@ -14,9 +17,18 @@
<ResourceDictionary>
<!--覆盖系统默认样式-->
<DataTemplate DataType="{x:Type dd:GroupDesignerItemViewModel}">
<Grid Background="Red" IsHitTestVisible="{Binding IsHitTestVisible}">
<TextBlock Text="Group"/>
</Grid>
<Border BorderThickness="{Binding ColorViewModel.LineWidth}"
BorderBrush="{Binding ColorViewModel.LineColor,Converter={StaticResource ColorBrushConverter}}"
IsHitTestVisible="False">
<Grid HorizontalAlignment="Center" VerticalAlignment="Top" Margin="0,-25,0,0">
<Ellipse Width="100"
Height="50"
StrokeThickness="{Binding ColorViewModel.LineWidth}"
Stroke="{Binding ColorViewModel.LineColor,Converter={StaticResource ColorBrushConverter}}"
Fill="{Binding ColorViewModel.FillColor,Converter={StaticResource ColorBrushConverter}}"/>
<TextBlock Text="Group" VerticalAlignment="Center" HorizontalAlignment="Center"/>
</Grid>
</Border>
</DataTemplate>
</ResourceDictionary>
</dd:DiagramControl.ResourceDictionary>

View File

@@ -9,7 +9,22 @@
d:DesignHeight="450" d:DesignWidth="800">
<Grid>
<!-- Diagram Control -->
<dd:DiagramControl x:Name="diagram" DataContext="{Binding DiagramViewModel}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
<dd:DiagramControl x:Name="diagram" DataContext="{Binding DiagramViewModel}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" >
<dd:DiagramControl.ResourceDictionary>
<ResourceDictionary>
<!--覆盖系统默认样式-->
<DataTemplate DataType="{x:Type dd:DefaultDesignerItemViewModel}">
<Grid IsHitTestVisible="False">
<Path Data="M 10,20 A 20,20 0 1 1 50,20 A 20,20 0 1 1 10,20"
Stretch="Fill"
StrokeThickness="{Binding ColorViewModel.LineWidth}"
Stroke="{Binding ColorViewModel.LineColor,Converter={StaticResource ColorBrushConverter}}"
Fill="{Binding ColorViewModel.FillColor,Converter={StaticResource ColorBrushConverter}}"/>
</Grid>
</DataTemplate>
</ResourceDictionary>
</dd:DiagramControl.ResourceDictionary>
</dd:DiagramControl>
<controls:TitleControl/>
</Grid>