This commit is contained in:
艾竹
2022-12-12 22:33:17 +08:00
parent 02f428d61a
commit 4b798f75a0
60 changed files with 330 additions and 277 deletions

View File

@@ -3,8 +3,9 @@
<PropertyGroup> <PropertyGroup>
<OutputType>WinExe</OutputType> <OutputType>WinExe</OutputType>
<UseWPF>true</UseWPF> <UseWPF>true</UseWPF>
<UseWindowsForms>true</UseWindowsForms>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Compile Remove="DesignItems\Custom\**" /> <Compile Remove="DesignItems\Custom\**" />
<EmbeddedResource Remove="DesignItems\Custom\**" /> <EmbeddedResource Remove="DesignItems\Custom\**" />

View File

@@ -483,9 +483,9 @@
Icon="pack://application:,,,/AIStudio.Wpf.DiagramApp;component/Images/ChangeCase.png" Icon="pack://application:,,,/AIStudio.Wpf.DiagramApp;component/Images/ChangeCase.png"
HorizontalAlignment="Left" HorizontalAlignment="Left"
SizeDefinition="Small" > SizeDefinition="Small" >
<Fluent:MenuItem Header="正常" Size="Middle" IsCheckable="True" IsChecked="{Binding FontCase,Converter={converter:ConverterValueMapToBool Parameter='None'}, ConverterParameter='None'}" /> <Fluent:MenuItem Header="正常" Size="Middle" IsCheckable="True" IsChecked="{Binding FontCase,Converter={dd:ConverterValueMapToBool Parameter='None'}, ConverterParameter='None'}" />
<Fluent:MenuItem Header="大写" Size="Middle" IsCheckable="True" IsChecked="{Binding FontCase,Converter={converter:ConverterValueMapToBool Parameter='Upper'}, ConverterParameter='Upper'}" /> <Fluent:MenuItem Header="大写" Size="Middle" IsCheckable="True" IsChecked="{Binding FontCase,Converter={dd:ConverterValueMapToBool Parameter='Upper'}, ConverterParameter='Upper'}" />
<Fluent:MenuItem Header="小写" Size="Middle" IsCheckable="True" IsChecked="{Binding FontCase,Converter={converter:ConverterValueMapToBool Parameter='Lower'}, ConverterParameter='Lower'}" /> <Fluent:MenuItem Header="小写" Size="Middle" IsCheckable="True" IsChecked="{Binding FontCase,Converter={dd:ConverterValueMapToBool Parameter='Lower'}, ConverterParameter='Lower'}" />
<Fluent:DropDownButton.ToolTip> <Fluent:DropDownButton.ToolTip>
<Fluent:ScreenTip Title="ChangeCase" <Fluent:ScreenTip Title="ChangeCase"
Text="字体大小写" Text="字体大小写"
@@ -508,28 +508,28 @@
HorizontalAlignment="Left" HorizontalAlignment="Left"
SizeDefinition="Small"> SizeDefinition="Small">
<UniformGrid Rows="3" Columns="4"> <UniformGrid Rows="3" Columns="4">
<Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding HorizontalVerticalAlignment,Converter={converter:ConverterValueMapToBool Parameter='TopAlignLeft'}, ConverterParameter='TopAlignLeft'}" ToolTip="左上对齐"> <Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding HorizontalVerticalAlignment,Converter={dd:ConverterValueMapToBool Parameter='TopAlignLeft'}, ConverterParameter='TopAlignLeft'}" ToolTip="左上对齐">
<Fluent:ToggleButton.LargeIcon> <Fluent:ToggleButton.LargeIcon>
<Border BorderThickness="1" BorderBrush="Gray" Margin="0,6,0,0"> <Border BorderThickness="1" BorderBrush="Gray" Margin="0,6,0,0">
<iconPacks:PackIconMaterial Foreground="Gray" Kind="FormatAlignLeft" VerticalAlignment="Top" HorizontalAlignment="Left"/> <iconPacks:PackIconMaterial Foreground="Gray" Kind="FormatAlignLeft" VerticalAlignment="Top" HorizontalAlignment="Left"/>
</Border> </Border>
</Fluent:ToggleButton.LargeIcon> </Fluent:ToggleButton.LargeIcon>
</Fluent:ToggleButton> </Fluent:ToggleButton>
<Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding HorizontalVerticalAlignment,Converter={converter:ConverterValueMapToBool Parameter='TopAlignCenter'}, ConverterParameter='TopAlignCenter'}" ToolTip="顶部中间对齐"> <Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding HorizontalVerticalAlignment,Converter={dd:ConverterValueMapToBool Parameter='TopAlignCenter'}, ConverterParameter='TopAlignCenter'}" ToolTip="顶部中间对齐">
<Fluent:ToggleButton.LargeIcon> <Fluent:ToggleButton.LargeIcon>
<Border BorderThickness="1" BorderBrush="Gray" Margin="0,6,0,0"> <Border BorderThickness="1" BorderBrush="Gray" Margin="0,6,0,0">
<iconPacks:PackIconMaterial Foreground="Gray" Kind="FormatAlignCenter" VerticalAlignment="Top" HorizontalAlignment="Center"/> <iconPacks:PackIconMaterial Foreground="Gray" Kind="FormatAlignCenter" VerticalAlignment="Top" HorizontalAlignment="Center"/>
</Border> </Border>
</Fluent:ToggleButton.LargeIcon> </Fluent:ToggleButton.LargeIcon>
</Fluent:ToggleButton> </Fluent:ToggleButton>
<Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding HorizontalVerticalAlignment,Converter={converter:ConverterValueMapToBool Parameter='TopAlignRight'}, ConverterParameter='TopAlignRight'}" ToolTip="右上对齐"> <Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding HorizontalVerticalAlignment,Converter={dd:ConverterValueMapToBool Parameter='TopAlignRight'}, ConverterParameter='TopAlignRight'}" ToolTip="右上对齐">
<Fluent:ToggleButton.LargeIcon> <Fluent:ToggleButton.LargeIcon>
<Border BorderThickness="1" BorderBrush="Gray" Margin="0,6,0,0"> <Border BorderThickness="1" BorderBrush="Gray" Margin="0,6,0,0">
<iconPacks:PackIconMaterial Foreground="Gray" Kind="FormatAlignRight" VerticalAlignment="Top" HorizontalAlignment="Right" /> <iconPacks:PackIconMaterial Foreground="Gray" Kind="FormatAlignRight" VerticalAlignment="Top" HorizontalAlignment="Right" />
</Border> </Border>
</Fluent:ToggleButton.LargeIcon> </Fluent:ToggleButton.LargeIcon>
</Fluent:ToggleButton> </Fluent:ToggleButton>
<Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding HorizontalVerticalAlignment,Converter={converter:ConverterValueMapToBool Parameter='TopAlignJustify'}, ConverterParameter='TopAlignJustify'}" ToolTip="顶部两端对齐"> <Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding HorizontalVerticalAlignment,Converter={dd:ConverterValueMapToBool Parameter='TopAlignJustify'}, ConverterParameter='TopAlignJustify'}" ToolTip="顶部两端对齐">
<Fluent:ToggleButton.LargeIcon> <Fluent:ToggleButton.LargeIcon>
<Border BorderThickness="1" BorderBrush="Gray" Margin="0,6,0,0"> <Border BorderThickness="1" BorderBrush="Gray" Margin="0,6,0,0">
<Viewbox VerticalAlignment="Top" HorizontalAlignment="Stretch" Height="16" Stretch="Fill"> <Viewbox VerticalAlignment="Top" HorizontalAlignment="Stretch" Height="16" Stretch="Fill">
@@ -539,28 +539,28 @@
</Fluent:ToggleButton.LargeIcon> </Fluent:ToggleButton.LargeIcon>
</Fluent:ToggleButton> </Fluent:ToggleButton>
<Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding HorizontalVerticalAlignment,Converter={converter:ConverterValueMapToBool Parameter='CenterAlignLeft'}, ConverterParameter='CenterAlignLeft'}" ToolTip="中间左对齐"> <Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding HorizontalVerticalAlignment,Converter={dd:ConverterValueMapToBool Parameter='CenterAlignLeft'}, ConverterParameter='CenterAlignLeft'}" ToolTip="中间左对齐">
<Fluent:ToggleButton.LargeIcon> <Fluent:ToggleButton.LargeIcon>
<Border BorderThickness="1" BorderBrush="Gray" Margin="0,6,0,0"> <Border BorderThickness="1" BorderBrush="Gray" Margin="0,6,0,0">
<iconPacks:PackIconMaterial Foreground="Gray" Kind="FormatAlignLeft" VerticalAlignment="Center" HorizontalAlignment="Left"/> <iconPacks:PackIconMaterial Foreground="Gray" Kind="FormatAlignLeft" VerticalAlignment="Center" HorizontalAlignment="Left"/>
</Border> </Border>
</Fluent:ToggleButton.LargeIcon> </Fluent:ToggleButton.LargeIcon>
</Fluent:ToggleButton> </Fluent:ToggleButton>
<Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding HorizontalVerticalAlignment,Converter={converter:ConverterValueMapToBool Parameter='CenterAlignCenter'}, ConverterParameter='CenterAlignCenter'}" ToolTip="居中"> <Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding HorizontalVerticalAlignment,Converter={dd:ConverterValueMapToBool Parameter='CenterAlignCenter'}, ConverterParameter='CenterAlignCenter'}" ToolTip="居中">
<Fluent:ToggleButton.LargeIcon> <Fluent:ToggleButton.LargeIcon>
<Border BorderThickness="1" BorderBrush="Gray" Margin="0,6,0,0"> <Border BorderThickness="1" BorderBrush="Gray" Margin="0,6,0,0">
<iconPacks:PackIconMaterial Foreground="Gray" Kind="FormatAlignCenter" VerticalAlignment="Center" HorizontalAlignment="Center"/> <iconPacks:PackIconMaterial Foreground="Gray" Kind="FormatAlignCenter" VerticalAlignment="Center" HorizontalAlignment="Center"/>
</Border> </Border>
</Fluent:ToggleButton.LargeIcon> </Fluent:ToggleButton.LargeIcon>
</Fluent:ToggleButton> </Fluent:ToggleButton>
<Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding HorizontalVerticalAlignment,Converter={converter:ConverterValueMapToBool Parameter='CenterAlignRight'}, ConverterParameter='CenterAlignRight'}" ToolTip="中间右对齐"> <Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding HorizontalVerticalAlignment,Converter={dd:ConverterValueMapToBool Parameter='CenterAlignRight'}, ConverterParameter='CenterAlignRight'}" ToolTip="中间右对齐">
<Fluent:ToggleButton.LargeIcon> <Fluent:ToggleButton.LargeIcon>
<Border BorderThickness="1" BorderBrush="Gray" Margin="0,6,0,0"> <Border BorderThickness="1" BorderBrush="Gray" Margin="0,6,0,0">
<iconPacks:PackIconMaterial Foreground="Gray" Kind="FormatAlignRight" VerticalAlignment="Center" HorizontalAlignment="Right"/> <iconPacks:PackIconMaterial Foreground="Gray" Kind="FormatAlignRight" VerticalAlignment="Center" HorizontalAlignment="Right"/>
</Border> </Border>
</Fluent:ToggleButton.LargeIcon> </Fluent:ToggleButton.LargeIcon>
</Fluent:ToggleButton> </Fluent:ToggleButton>
<Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding HorizontalVerticalAlignment,Converter={converter:ConverterValueMapToBool Parameter='CenterAlignJustify'}, ConverterParameter='CenterAlignJustify'}" ToolTip="中间两端对齐"> <Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding HorizontalVerticalAlignment,Converter={dd:ConverterValueMapToBool Parameter='CenterAlignJustify'}, ConverterParameter='CenterAlignJustify'}" ToolTip="中间两端对齐">
<Fluent:ToggleButton.LargeIcon> <Fluent:ToggleButton.LargeIcon>
<Border BorderThickness="1" BorderBrush="Gray" Margin="0,6,0,0"> <Border BorderThickness="1" BorderBrush="Gray" Margin="0,6,0,0">
<Viewbox VerticalAlignment="Center" HorizontalAlignment="Stretch" Height="16" Stretch="Fill"> <Viewbox VerticalAlignment="Center" HorizontalAlignment="Stretch" Height="16" Stretch="Fill">
@@ -570,28 +570,28 @@
</Fluent:ToggleButton.LargeIcon> </Fluent:ToggleButton.LargeIcon>
</Fluent:ToggleButton> </Fluent:ToggleButton>
<Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding HorizontalVerticalAlignment,Converter={converter:ConverterValueMapToBool Parameter='BottomAlignLeft'}, ConverterParameter='BottomAlignLeft'}" ToolTip="底部左对齐"> <Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding HorizontalVerticalAlignment,Converter={dd:ConverterValueMapToBool Parameter='BottomAlignLeft'}, ConverterParameter='BottomAlignLeft'}" ToolTip="底部左对齐">
<Fluent:ToggleButton.LargeIcon> <Fluent:ToggleButton.LargeIcon>
<Border BorderThickness="1" BorderBrush="Gray" Margin="0,6,0,0"> <Border BorderThickness="1" BorderBrush="Gray" Margin="0,6,0,0">
<iconPacks:PackIconMaterial Foreground="Gray" Kind="FormatAlignLeft" VerticalAlignment="Bottom" HorizontalAlignment="Left"/> <iconPacks:PackIconMaterial Foreground="Gray" Kind="FormatAlignLeft" VerticalAlignment="Bottom" HorizontalAlignment="Left"/>
</Border> </Border>
</Fluent:ToggleButton.LargeIcon> </Fluent:ToggleButton.LargeIcon>
</Fluent:ToggleButton> </Fluent:ToggleButton>
<Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding HorizontalVerticalAlignment,Converter={converter:ConverterValueMapToBool Parameter='BottomAlignCenter'}, ConverterParameter='BottomAlignCenter'}" ToolTip="底部中间对齐"> <Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding HorizontalVerticalAlignment,Converter={dd:ConverterValueMapToBool Parameter='BottomAlignCenter'}, ConverterParameter='BottomAlignCenter'}" ToolTip="底部中间对齐">
<Fluent:ToggleButton.LargeIcon> <Fluent:ToggleButton.LargeIcon>
<Border BorderThickness="1" BorderBrush="Gray" Margin="0,6,0,0"> <Border BorderThickness="1" BorderBrush="Gray" Margin="0,6,0,0">
<iconPacks:PackIconMaterial Foreground="Gray" Kind="FormatAlignCenter" VerticalAlignment="Bottom" HorizontalAlignment="Center"/> <iconPacks:PackIconMaterial Foreground="Gray" Kind="FormatAlignCenter" VerticalAlignment="Bottom" HorizontalAlignment="Center"/>
</Border> </Border>
</Fluent:ToggleButton.LargeIcon> </Fluent:ToggleButton.LargeIcon>
</Fluent:ToggleButton> </Fluent:ToggleButton>
<Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding HorizontalVerticalAlignment,Converter={converter:ConverterValueMapToBool Parameter='BottomAlignRight'}, ConverterParameter='BottomAlignRight'}" ToolTip="底部右对齐"> <Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding HorizontalVerticalAlignment,Converter={dd:ConverterValueMapToBool Parameter='BottomAlignRight'}, ConverterParameter='BottomAlignRight'}" ToolTip="底部右对齐">
<Fluent:ToggleButton.LargeIcon> <Fluent:ToggleButton.LargeIcon>
<Border BorderThickness="1" BorderBrush="Gray" Margin="0,6,0,0"> <Border BorderThickness="1" BorderBrush="Gray" Margin="0,6,0,0">
<iconPacks:PackIconMaterial Foreground="Gray" Kind="FormatAlignRight" VerticalAlignment="Bottom" HorizontalAlignment="Right"/> <iconPacks:PackIconMaterial Foreground="Gray" Kind="FormatAlignRight" VerticalAlignment="Bottom" HorizontalAlignment="Right"/>
</Border> </Border>
</Fluent:ToggleButton.LargeIcon> </Fluent:ToggleButton.LargeIcon>
</Fluent:ToggleButton> </Fluent:ToggleButton>
<Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding HorizontalVerticalAlignment,Converter={converter:ConverterValueMapToBool Parameter='BottomAlignJustify'}, ConverterParameter='BottomAlignJustify'}" ToolTip="底部两端对齐"> <Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding HorizontalVerticalAlignment,Converter={dd:ConverterValueMapToBool Parameter='BottomAlignJustify'}, ConverterParameter='BottomAlignJustify'}" ToolTip="底部两端对齐">
<Fluent:ToggleButton.LargeIcon> <Fluent:ToggleButton.LargeIcon>
<Border BorderThickness="1" BorderBrush="Gray" Margin="0,6,0,0"> <Border BorderThickness="1" BorderBrush="Gray" Margin="0,6,0,0">
<Viewbox VerticalAlignment="Bottom" HorizontalAlignment="Stretch" Height="16" Stretch="Fill"> <Viewbox VerticalAlignment="Bottom" HorizontalAlignment="Stretch" Height="16" Stretch="Fill">
@@ -611,7 +611,7 @@
Icon="pack://application:,,,/AIStudio.Wpf.DiagramApp;component/Images/Bold.png" Icon="pack://application:,,,/AIStudio.Wpf.DiagramApp;component/Images/Bold.png"
HorizontalAlignment="Left" HorizontalAlignment="Left"
SizeDefinition="Small" SizeDefinition="Small"
IsChecked="{Binding FontWeight,Converter={converter:ConverterValueMapToBool Parameter='Regular'}, ConverterParameter='Bold'}"> IsChecked="{Binding FontWeight,Converter={dd:ConverterValueMapToBool Parameter='Regular'}, ConverterParameter='Bold'}">
<Fluent:ToggleButton.ToolTip> <Fluent:ToggleButton.ToolTip>
<Fluent:ScreenTip Title="Bold" <Fluent:ScreenTip Title="Bold"
Text="加粗" Text="加粗"
@@ -622,7 +622,7 @@
Icon="pack://application:,,,/AIStudio.Wpf.DiagramApp;component/Images/Italic.png" Icon="pack://application:,,,/AIStudio.Wpf.DiagramApp;component/Images/Italic.png"
HorizontalAlignment="Left" HorizontalAlignment="Left"
SizeDefinition="Small" SizeDefinition="Small"
IsChecked="{Binding FontStyle,Converter={converter:ConverterValueMapToBool Parameter='Normal'}, ConverterParameter='Italic'}"> IsChecked="{Binding FontStyle,Converter={dd:ConverterValueMapToBool Parameter='Normal'}, ConverterParameter='Italic'}">
<Fluent:ToggleButton.ToolTip> <Fluent:ToggleButton.ToolTip>
<Fluent:ScreenTip Title="Italic" <Fluent:ScreenTip Title="Italic"
Text="斜体" Text="斜体"
@@ -675,12 +675,12 @@
Icon="pack://application:,,,/AIStudio.Wpf.DiagramApp;component/Images/line-height.png" Icon="pack://application:,,,/AIStudio.Wpf.DiagramApp;component/Images/line-height.png"
HorizontalAlignment="Left" HorizontalAlignment="Left"
SizeDefinition="Small" > SizeDefinition="Small" >
<Fluent:MenuItem Header="1.0" Size="Middle" IsCheckable="True" IsChecked="{Binding LineHeight,Converter={converter:ConverterValueMapToBool Parameter='12'}, ConverterParameter='12'}" /> <Fluent:MenuItem Header="1.0" Size="Middle" IsCheckable="True" IsChecked="{Binding LineHeight,Converter={dd:ConverterValueMapToBool Parameter='12'}, ConverterParameter='12'}" />
<Fluent:MenuItem Header="1.2" Size="Middle" IsCheckable="True" IsChecked="{Binding LineHeight,Converter={converter:ConverterValueMapToBool Parameter='15'}, ConverterParameter='15'}" /> <Fluent:MenuItem Header="1.2" Size="Middle" IsCheckable="True" IsChecked="{Binding LineHeight,Converter={dd:ConverterValueMapToBool Parameter='15'}, ConverterParameter='15'}" />
<Fluent:MenuItem Header="1.5" Size="Middle" IsCheckable="True" IsChecked="{Binding LineHeight,Converter={converter:ConverterValueMapToBool Parameter='18'}, ConverterParameter='18'}" /> <Fluent:MenuItem Header="1.5" Size="Middle" IsCheckable="True" IsChecked="{Binding LineHeight,Converter={dd:ConverterValueMapToBool Parameter='18'}, ConverterParameter='18'}" />
<Fluent:MenuItem Header="2.0" Size="Middle" IsCheckable="True" IsChecked="{Binding LineHeight,Converter={converter:ConverterValueMapToBool Parameter='24'}, ConverterParameter='24'}" /> <Fluent:MenuItem Header="2.0" Size="Middle" IsCheckable="True" IsChecked="{Binding LineHeight,Converter={dd:ConverterValueMapToBool Parameter='24'}, ConverterParameter='24'}" />
<Fluent:MenuItem Header="2.5" Size="Middle" IsCheckable="True" IsChecked="{Binding LineHeight,Converter={converter:ConverterValueMapToBool Parameter='30'}, ConverterParameter='30'}" /> <Fluent:MenuItem Header="2.5" Size="Middle" IsCheckable="True" IsChecked="{Binding LineHeight,Converter={dd:ConverterValueMapToBool Parameter='30'}, ConverterParameter='30'}" />
<Fluent:MenuItem Header="3.0" Size="Middle" IsCheckable="True" IsChecked="{Binding LineHeight,Converter={converter:ConverterValueMapToBool Parameter='36'}, ConverterParameter='36'}" /> <Fluent:MenuItem Header="3.0" Size="Middle" IsCheckable="True" IsChecked="{Binding LineHeight,Converter={dd:ConverterValueMapToBool Parameter='36'}, ConverterParameter='36'}" />
<Fluent:DropDownButton.ToolTip> <Fluent:DropDownButton.ToolTip>
<Fluent:ScreenTip Title="LineHeight" <Fluent:ScreenTip Title="LineHeight"
Text="行间距" Text="行间距"
@@ -802,10 +802,10 @@
</Fluent:ToggleButton> </Fluent:ToggleButton>
<Fluent:SplitButton Header="连接线" GroupName="DrawMode" IsCheckable="True" IsChecked="{Binding VectorLineDrawModeSelected}" Icon="{iconPacks:Material Kind=VectorPolyline}" Width="50" VerticalAlignment="Top"> <Fluent:SplitButton Header="连接线" GroupName="DrawMode" IsCheckable="True" IsChecked="{Binding VectorLineDrawModeSelected}" Icon="{iconPacks:Material Kind=VectorPolyline}" Width="50" VerticalAlignment="Top">
<Fluent:MenuItem Header="直线连接线" Size="Middle" IsCheckable="True" IsChecked="{Binding VectorLineDrawMode,Converter={converter:ConverterValueMapToBool Parameter='ConnectingLine'}, ConverterParameter='ConnectingLine'}" Icon="{iconPacks:Material Kind=VectorLine}"/> <Fluent:MenuItem Header="直线连接线" Size="Middle" IsCheckable="True" IsChecked="{Binding VectorLineDrawMode,Converter={dd:ConverterValueMapToBool Parameter='ConnectingLine'}, ConverterParameter='ConnectingLine'}" Icon="{iconPacks:Material Kind=VectorLine}"/>
<Fluent:MenuItem Header="折角连接线" Size="Middle" IsCheckable="True" IsChecked="{Binding VectorLineDrawMode,Converter={converter:ConverterValueMapToBool Parameter='CornerConnectingLine'}, ConverterParameter='CornerConnectingLine'}" Icon="{iconPacks:Material Kind=VectorPolyline}"/> <Fluent:MenuItem Header="折角连接线" Size="Middle" IsCheckable="True" IsChecked="{Binding VectorLineDrawMode,Converter={dd:ConverterValueMapToBool Parameter='CornerConnectingLine'}, ConverterParameter='CornerConnectingLine'}" Icon="{iconPacks:Material Kind=VectorPolyline}"/>
<Fluent:MenuItem Header="边界连接线" Size="Middle" IsCheckable="True" IsChecked="{Binding VectorLineDrawMode,Converter={converter:ConverterValueMapToBool Parameter='BoundaryConnectingLine'}, ConverterParameter='BoundaryConnectingLine'}" Icon="{iconPacks:Material Kind=VectorPolylineEdit}"/> <Fluent:MenuItem Header="边界连接线" Size="Middle" IsCheckable="True" IsChecked="{Binding VectorLineDrawMode,Converter={dd:ConverterValueMapToBool Parameter='BoundaryConnectingLine'}, ConverterParameter='BoundaryConnectingLine'}" Icon="{iconPacks:Material Kind=VectorPolylineEdit}"/>
<Fluent:MenuItem Header="曲线连接线" Size="Middle" IsCheckable="True" IsChecked="{Binding VectorLineDrawMode,Converter={converter:ConverterValueMapToBool Parameter='RadiusConnectingLine'}, ConverterParameter='RadiusConnectingLine'}" Icon="{iconPacks:Material Kind=VectorRadius}"/> <Fluent:MenuItem Header="曲线连接线" Size="Middle" IsCheckable="True" IsChecked="{Binding VectorLineDrawMode,Converter={dd:ConverterValueMapToBool Parameter='RadiusConnectingLine'}, ConverterParameter='RadiusConnectingLine'}" Icon="{iconPacks:Material Kind=VectorRadius}"/>
<Fluent:SplitButton.Style> <Fluent:SplitButton.Style>
<Style TargetType="{x:Type Fluent:SplitButton}" BasedOn="{StaticResource RibbonSplitButtonStyle}"> <Style TargetType="{x:Type Fluent:SplitButton}" BasedOn="{StaticResource RibbonSplitButtonStyle}">
<Setter Property="LargeIcon"> <Setter Property="LargeIcon">
@@ -853,11 +853,11 @@
</Fluent:SplitButton> </Fluent:SplitButton>
<Fluent:SplitButton Header="形状" GroupName="DrawMode" IsCheckable="True" IsChecked="{Binding ShapeDrawModeSelected}" Width="50" VerticalAlignment="Top"> <Fluent:SplitButton Header="形状" GroupName="DrawMode" IsCheckable="True" IsChecked="{Binding ShapeDrawModeSelected}" Width="50" VerticalAlignment="Top">
<Fluent:MenuItem Header="矩形工具" Size="Middle" IsCheckable="True" IsChecked="{Binding ShapeDrawMode,Converter={converter:ConverterValueMapToBool Parameter='Rectangle'}, ConverterParameter='Rectangle'}" Icon="{iconPacks:Material Kind=RectangleOutline}" /> <Fluent:MenuItem Header="矩形工具" Size="Middle" IsCheckable="True" IsChecked="{Binding ShapeDrawMode,Converter={dd:ConverterValueMapToBool Parameter='Rectangle'}, ConverterParameter='Rectangle'}" Icon="{iconPacks:Material Kind=RectangleOutline}" />
<Fluent:MenuItem Header="椭圆工具" Size="Middle" IsCheckable="True" IsChecked="{Binding ShapeDrawMode,Converter={converter:ConverterValueMapToBool Parameter='Ellipse'}, ConverterParameter='Ellipse'}" Icon="{iconPacks:Material Kind=EllipseOutline}" /> <Fluent:MenuItem Header="椭圆工具" Size="Middle" IsCheckable="True" IsChecked="{Binding ShapeDrawMode,Converter={dd:ConverterValueMapToBool Parameter='Ellipse'}, ConverterParameter='Ellipse'}" Icon="{iconPacks:Material Kind=EllipseOutline}" />
<Fluent:MenuItem Header="线条工具" Size="Middle" IsCheckable="True" IsChecked="{Binding ShapeDrawMode,Converter={converter:ConverterValueMapToBool Parameter='Line'}, ConverterParameter='Line'}" Icon="{iconPacks:Material Kind=Minus}" /> <Fluent:MenuItem Header="线条工具" Size="Middle" IsCheckable="True" IsChecked="{Binding ShapeDrawMode,Converter={dd:ConverterValueMapToBool Parameter='Line'}, ConverterParameter='Line'}" Icon="{iconPacks:Material Kind=Minus}" />
<Fluent:MenuItem Header="铅笔工具" Size="Middle" IsCheckable="True" IsChecked="{Binding ShapeDrawMode,Converter={converter:ConverterValueMapToBool Parameter='Polyline'}, ConverterParameter='Polyline'}" Icon="{iconPacks:Material Kind=Pencil}" /> <Fluent:MenuItem Header="铅笔工具" Size="Middle" IsCheckable="True" IsChecked="{Binding ShapeDrawMode,Converter={dd:ConverterValueMapToBool Parameter='Polyline'}, ConverterParameter='Polyline'}" Icon="{iconPacks:Material Kind=Pencil}" />
<Fluent:MenuItem Header="钢笔工具" Size="Middle" IsCheckable="True" IsChecked="{Binding ShapeDrawMode,Converter={converter:ConverterValueMapToBool Parameter='DirectLine'}, ConverterParameter='DirectLine'}" Icon="{iconPacks:Material Kind=FountainPenTip}" /> <Fluent:MenuItem Header="钢笔工具" Size="Middle" IsCheckable="True" IsChecked="{Binding ShapeDrawMode,Converter={dd:ConverterValueMapToBool Parameter='DirectLine'}, ConverterParameter='DirectLine'}" Icon="{iconPacks:Material Kind=FountainPenTip}" />
<Fluent:SplitButton.Style> <Fluent:SplitButton.Style>
<Style TargetType="{x:Type Fluent:SplitButton}" BasedOn="{StaticResource RibbonSplitButtonStyle}"> <Style TargetType="{x:Type Fluent:SplitButton}" BasedOn="{StaticResource RibbonSplitButtonStyle}">
<Setter Property="LargeIcon"> <Setter Property="LargeIcon">
@@ -969,9 +969,9 @@
</Fluent:DropDownButton.LargeIcon> </Fluent:DropDownButton.LargeIcon>
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<TextBlock Margin="5" Text="镜像" VerticalAlignment="Center"/> <TextBlock Margin="5" Text="镜像" VerticalAlignment="Center"/>
<Fluent:ToggleButton IsChecked="{Binding SelectedItem.ScaleX,Converter={converter:ConverterValueMapToBool Parameter='1'}, ConverterParameter='-1'}" <Fluent:ToggleButton IsChecked="{Binding SelectedItem.ScaleX,Converter={dd:ConverterValueMapToBool Parameter='1'}, ConverterParameter='-1'}"
Margin="5" Size="Small" Icon="{iconPacks:Material Kind=FlipHorizontal}"/> Margin="5" Size="Small" Icon="{iconPacks:Material Kind=FlipHorizontal}"/>
<Fluent:ToggleButton IsChecked="{Binding SelectedItem.ScaleY,Converter={converter:ConverterValueMapToBool Parameter='1'}, ConverterParameter='-1'}" <Fluent:ToggleButton IsChecked="{Binding SelectedItem.ScaleY,Converter={dd:ConverterValueMapToBool Parameter='1'}, ConverterParameter='-1'}"
Margin="5" Size="Small" Icon="{iconPacks:Material Kind=FlipVertical}"/> Margin="5" Size="Small" Icon="{iconPacks:Material Kind=FlipVertical}"/>
</StackPanel> </StackPanel>
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
@@ -1492,28 +1492,28 @@
</Fluent:SplitButton> </Fluent:SplitButton>
<Fluent:SplitButton Header="横对齐" Width="50" VerticalAlignment="Top"> <Fluent:SplitButton Header="横对齐" Width="50" VerticalAlignment="Top">
<UniformGrid Rows="4"> <UniformGrid Rows="4">
<Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding DiagramsViewModel.DiagramViewModel.CellHorizontalAlignment,Converter={converter:ConverterValueMapToBool Parameter='Left'}, ConverterParameter='Left'}" ToolTip="左对齐"> <Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding DiagramsViewModel.DiagramViewModel.CellHorizontalAlignment,Converter={dd:ConverterValueMapToBool Parameter='Left'}, ConverterParameter='Left'}" ToolTip="左对齐">
<Fluent:ToggleButton.LargeIcon> <Fluent:ToggleButton.LargeIcon>
<Border BorderThickness="1" BorderBrush="Gray" Margin="6,6,6,6"> <Border BorderThickness="1" BorderBrush="Gray" Margin="6,6,6,6">
<iconPacks:PackIconMaterial Foreground="Gray" Kind="FormatAlignLeft" VerticalAlignment="Center" HorizontalAlignment="Left"/> <iconPacks:PackIconMaterial Foreground="Gray" Kind="FormatAlignLeft" VerticalAlignment="Center" HorizontalAlignment="Left"/>
</Border> </Border>
</Fluent:ToggleButton.LargeIcon> </Fluent:ToggleButton.LargeIcon>
</Fluent:ToggleButton> </Fluent:ToggleButton>
<Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding DiagramsViewModel.DiagramViewModel.CellHorizontalAlignment,Converter={converter:ConverterValueMapToBool Parameter='Center'}, ConverterParameter='Center'}" ToolTip="居中对齐"> <Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding DiagramsViewModel.DiagramViewModel.CellHorizontalAlignment,Converter={dd:ConverterValueMapToBool Parameter='Center'}, ConverterParameter='Center'}" ToolTip="居中对齐">
<Fluent:ToggleButton.LargeIcon> <Fluent:ToggleButton.LargeIcon>
<Border BorderThickness="1" BorderBrush="Gray" Margin="6,6,6,6"> <Border BorderThickness="1" BorderBrush="Gray" Margin="6,6,6,6">
<iconPacks:PackIconMaterial Foreground="Gray" Kind="FormatAlignCenter" VerticalAlignment="Center" HorizontalAlignment="Center"/> <iconPacks:PackIconMaterial Foreground="Gray" Kind="FormatAlignCenter" VerticalAlignment="Center" HorizontalAlignment="Center"/>
</Border> </Border>
</Fluent:ToggleButton.LargeIcon> </Fluent:ToggleButton.LargeIcon>
</Fluent:ToggleButton> </Fluent:ToggleButton>
<Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding DiagramsViewModel.DiagramViewModel.CellHorizontalAlignment,Converter={converter:ConverterValueMapToBool Parameter='Right'}, ConverterParameter='Right'}" ToolTip="右对齐"> <Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding DiagramsViewModel.DiagramViewModel.CellHorizontalAlignment,Converter={dd:ConverterValueMapToBool Parameter='Right'}, ConverterParameter='Right'}" ToolTip="右对齐">
<Fluent:ToggleButton.LargeIcon> <Fluent:ToggleButton.LargeIcon>
<Border BorderThickness="1" BorderBrush="Gray" Margin="6,6,6,6"> <Border BorderThickness="1" BorderBrush="Gray" Margin="6,6,6,6">
<iconPacks:PackIconMaterial Foreground="Gray" Kind="FormatAlignRight" VerticalAlignment="Center" HorizontalAlignment="Right"/> <iconPacks:PackIconMaterial Foreground="Gray" Kind="FormatAlignRight" VerticalAlignment="Center" HorizontalAlignment="Right"/>
</Border> </Border>
</Fluent:ToggleButton.LargeIcon> </Fluent:ToggleButton.LargeIcon>
</Fluent:ToggleButton> </Fluent:ToggleButton>
<Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding DiagramsViewModel.DiagramViewModel.CellHorizontalAlignment,Converter={converter:ConverterValueMapToBool Parameter='None'}, ConverterParameter='None'}" ToolTip="无对齐"> <Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding DiagramsViewModel.DiagramViewModel.CellHorizontalAlignment,Converter={dd:ConverterValueMapToBool Parameter='None'}, ConverterParameter='None'}" ToolTip="无对齐">
<Fluent:ToggleButton.LargeIcon> <Fluent:ToggleButton.LargeIcon>
<Border BorderThickness="1" BorderBrush="Gray" Margin="6,6,6,6"> <Border BorderThickness="1" BorderBrush="Gray" Margin="6,6,6,6">
<TextBlock Text="无" HorizontalAlignment="Center" VerticalAlignment="Center"/> <TextBlock Text="无" HorizontalAlignment="Center" VerticalAlignment="Center"/>
@@ -1578,28 +1578,28 @@
</Fluent:SplitButton> </Fluent:SplitButton>
<Fluent:SplitButton Header="竖对齐" Width="50" VerticalAlignment="Top"> <Fluent:SplitButton Header="竖对齐" Width="50" VerticalAlignment="Top">
<UniformGrid Columns="4"> <UniformGrid Columns="4">
<Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding DiagramsViewModel.DiagramViewModel.CellVerticalAlignment,Converter={converter:ConverterValueMapToBool Parameter='Top'}, ConverterParameter='Top'}" ToolTip="上对齐"> <Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding DiagramsViewModel.DiagramViewModel.CellVerticalAlignment,Converter={dd:ConverterValueMapToBool Parameter='Top'}, ConverterParameter='Top'}" ToolTip="上对齐">
<Fluent:ToggleButton.LargeIcon> <Fluent:ToggleButton.LargeIcon>
<Border BorderThickness="1" BorderBrush="Gray" Margin="6,6,6,6"> <Border BorderThickness="1" BorderBrush="Gray" Margin="6,6,6,6">
<iconPacks:PackIconMaterial Foreground="Gray" Kind="FormatAlignLeft" RotationAngle="90" VerticalAlignment="Top" HorizontalAlignment="Center"/> <iconPacks:PackIconMaterial Foreground="Gray" Kind="FormatAlignLeft" RotationAngle="90" VerticalAlignment="Top" HorizontalAlignment="Center"/>
</Border> </Border>
</Fluent:ToggleButton.LargeIcon> </Fluent:ToggleButton.LargeIcon>
</Fluent:ToggleButton> </Fluent:ToggleButton>
<Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding DiagramsViewModel.DiagramViewModel.CellVerticalAlignment,Converter={converter:ConverterValueMapToBool Parameter='Center'}, ConverterParameter='Center'}" ToolTip="居中对齐"> <Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding DiagramsViewModel.DiagramViewModel.CellVerticalAlignment,Converter={dd:ConverterValueMapToBool Parameter='Center'}, ConverterParameter='Center'}" ToolTip="居中对齐">
<Fluent:ToggleButton.LargeIcon> <Fluent:ToggleButton.LargeIcon>
<Border BorderThickness="1" BorderBrush="Gray" Margin="6,6,6,6"> <Border BorderThickness="1" BorderBrush="Gray" Margin="6,6,6,6">
<iconPacks:PackIconMaterial Foreground="Gray" Kind="FormatAlignCenter" RotationAngle="90" VerticalAlignment="Center" HorizontalAlignment="Center"/> <iconPacks:PackIconMaterial Foreground="Gray" Kind="FormatAlignCenter" RotationAngle="90" VerticalAlignment="Center" HorizontalAlignment="Center"/>
</Border> </Border>
</Fluent:ToggleButton.LargeIcon> </Fluent:ToggleButton.LargeIcon>
</Fluent:ToggleButton> </Fluent:ToggleButton>
<Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding DiagramsViewModel.DiagramViewModel.CellVerticalAlignment,Converter={converter:ConverterValueMapToBool Parameter='Bottom'}, ConverterParameter='Bottom'}" ToolTip="下对齐"> <Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding DiagramsViewModel.DiagramViewModel.CellVerticalAlignment,Converter={dd:ConverterValueMapToBool Parameter='Bottom'}, ConverterParameter='Bottom'}" ToolTip="下对齐">
<Fluent:ToggleButton.LargeIcon> <Fluent:ToggleButton.LargeIcon>
<Border BorderThickness="1" BorderBrush="Gray" Margin="6,6,6,6"> <Border BorderThickness="1" BorderBrush="Gray" Margin="6,6,6,6">
<iconPacks:PackIconMaterial Foreground="Gray" Kind="FormatAlignRight" RotationAngle="90" VerticalAlignment="Bottom" HorizontalAlignment="Center"/> <iconPacks:PackIconMaterial Foreground="Gray" Kind="FormatAlignRight" RotationAngle="90" VerticalAlignment="Bottom" HorizontalAlignment="Center"/>
</Border> </Border>
</Fluent:ToggleButton.LargeIcon> </Fluent:ToggleButton.LargeIcon>
</Fluent:ToggleButton> </Fluent:ToggleButton>
<Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding DiagramsViewModel.DiagramViewModel.CellVerticalAlignment,Converter={converter:ConverterValueMapToBool Parameter='None'}, ConverterParameter='None'}" ToolTip="无对齐"> <Fluent:ToggleButton Height="48" Width="48" SizeDefinition="Large" IsChecked="{Binding DiagramsViewModel.DiagramViewModel.CellVerticalAlignment,Converter={dd:ConverterValueMapToBool Parameter='None'}, ConverterParameter='None'}" ToolTip="无对齐">
<Fluent:ToggleButton.LargeIcon> <Fluent:ToggleButton.LargeIcon>
<Border BorderThickness="1" BorderBrush="Gray" Margin="6,6,6,6"> <Border BorderThickness="1" BorderBrush="Gray" Margin="6,6,6,6">
<TextBlock Text="无" HorizontalAlignment="Center" VerticalAlignment="Center"/> <TextBlock Text="无" HorizontalAlignment="Center" VerticalAlignment="Center"/>

View File

@@ -26,14 +26,14 @@
DataContext="{Binding SelectedItem.ColorViewModel.FillColor}" DataContext="{Binding SelectedItem.ColorViewModel.FillColor}"
Visibility="{Binding .,Converter={StaticResource NullableToVisibilityConverter}}"> Visibility="{Binding .,Converter={StaticResource NullableToVisibilityConverter}}">
<StackPanel> <StackPanel>
<RadioButton Margin="5" IsChecked="{Binding BrushType,Converter={converter:ConverterValueMapToBool Parameter='None'}, ConverterParameter='None'}" Content="无填充" /> <RadioButton Margin="5" IsChecked="{Binding BrushType,Converter={dd:ConverterValueMapToBool Parameter='None'}, ConverterParameter='None'}" Content="无填充" />
<RadioButton Margin="5" IsChecked="{Binding BrushType,Converter={converter:ConverterValueMapToBool Parameter='SolidColorBrush'}, ConverterParameter='SolidColorBrush'}" Content="单色填充"/> <RadioButton Margin="5" IsChecked="{Binding BrushType,Converter={dd:ConverterValueMapToBool Parameter='SolidColorBrush'}, ConverterParameter='SolidColorBrush'}" Content="单色填充"/>
<RadioButton Margin="5" IsChecked="{Binding BrushType,Converter={converter:ConverterValueMapToBool Parameter='LinearGradientBrush'}, ConverterParameter='LinearGradientBrush'}" Content="线性渐变填充"/> <RadioButton Margin="5" IsChecked="{Binding BrushType,Converter={dd:ConverterValueMapToBool Parameter='LinearGradientBrush'}, ConverterParameter='LinearGradientBrush'}" Content="线性渐变填充"/>
<RadioButton Margin="5" IsChecked="{Binding BrushType,Converter={converter:ConverterValueMapToBool Parameter='RadialGradientBrush'}, ConverterParameter='RadialGradientBrush'}" Content="径向渐变填充"/> <RadioButton Margin="5" IsChecked="{Binding BrushType,Converter={dd:ConverterValueMapToBool Parameter='RadialGradientBrush'}, ConverterParameter='RadialGradientBrush'}" Content="径向渐变填充"/>
<RadioButton Margin="5" IsChecked="{Binding BrushType,Converter={converter:ConverterValueMapToBool Parameter='DrawingBrush'}, ConverterParameter='DrawingBrush'}" Content="图案填充"/> <RadioButton Margin="5" IsChecked="{Binding BrushType,Converter={dd:ConverterValueMapToBool Parameter='DrawingBrush'}, ConverterParameter='DrawingBrush'}" Content="图案填充"/>
<RadioButton Margin="5" IsChecked="{Binding BrushType,Converter={converter:ConverterValueMapToBool Parameter='ImageBrush'}, ConverterParameter='ImageBrush'}" Content="图片或纹理填充"/> <RadioButton Margin="5" IsChecked="{Binding BrushType,Converter={dd:ConverterValueMapToBool Parameter='ImageBrush'}, ConverterParameter='ImageBrush'}" Content="图片或纹理填充"/>
</StackPanel> </StackPanel>
<DockPanel Visibility="{Binding BrushType,Converter={converter:ConverterValueMapSetToVisibility},ConverterParameter='SolidColorBrush'}"> <DockPanel Visibility="{Binding BrushType,Converter={dd:ConverterValueMapSetToVisibility},ConverterParameter='SolidColorBrush'}">
<!-- The following code shows theme colors mode for color gallery --> <!-- The following code shows theme colors mode for color gallery -->
<Fluent:DropDownButton DockPanel.Dock="Right" Margin="5" Height="24" Width="60" <Fluent:DropDownButton DockPanel.Dock="Right" Margin="5" Height="24" Width="60"
Template="{StaticResource RibbonDropDownButtonControlTemplate1}" Template="{StaticResource RibbonDropDownButtonControlTemplate1}"
@@ -56,8 +56,8 @@
</Fluent:DropDownButton> </Fluent:DropDownButton>
<TextBlock Margin="5" VerticalAlignment="Center" Text="颜色"/> <TextBlock Margin="5" VerticalAlignment="Center" Text="颜色"/>
</DockPanel> </DockPanel>
<StackPanel Visibility="{Binding BrushType,Converter={converter:ConverterValueMapSetToVisibility},ConverterParameter='LinearGradientBrush^RadialGradientBrush'}"> <StackPanel Visibility="{Binding BrushType,Converter={dd:ConverterValueMapSetToVisibility},ConverterParameter='LinearGradientBrush^RadialGradientBrush'}">
<DockPanel Visibility="{Binding BrushType,Converter={converter:ConverterValueMapSetToVisibility},ConverterParameter='LinearGradientBrush'}"> <DockPanel Visibility="{Binding BrushType,Converter={dd:ConverterValueMapSetToVisibility},ConverterParameter='LinearGradientBrush'}">
<Fluent:ComboBox DockPanel.Dock="Right" Margin="5" Size="Small" Width="140" IsEditable="False" helper:EnumHelper.Enum="{x:Type dd:LinearOrientation}" SelectedItem="{Binding LinearOrientation}"> <Fluent:ComboBox DockPanel.Dock="Right" Margin="5" Size="Small" Width="140" IsEditable="False" helper:EnumHelper.Enum="{x:Type dd:LinearOrientation}" SelectedItem="{Binding LinearOrientation}">
<Fluent:ComboBox.ItemTemplate> <Fluent:ComboBox.ItemTemplate>
<DataTemplate> <DataTemplate>
@@ -67,7 +67,7 @@
</Fluent:ComboBox> </Fluent:ComboBox>
<TextBlock Text="方向" VerticalAlignment="Center" Margin="5"/> <TextBlock Text="方向" VerticalAlignment="Center" Margin="5"/>
</DockPanel> </DockPanel>
<DockPanel Visibility="{Binding BrushType,Converter={converter:ConverterValueMapSetToVisibility},ConverterParameter='RadialGradientBrush'}"> <DockPanel Visibility="{Binding BrushType,Converter={dd:ConverterValueMapSetToVisibility},ConverterParameter='RadialGradientBrush'}">
<Fluent:ComboBox DockPanel.Dock="Right" Margin="5" Size="Small" Width="140" IsEditable="False" helper:EnumHelper.Enum="{x:Type dd:RadialOrientation}" SelectedItem="{Binding RadialOrientation}"> <Fluent:ComboBox DockPanel.Dock="Right" Margin="5" Size="Small" Width="140" IsEditable="False" helper:EnumHelper.Enum="{x:Type dd:RadialOrientation}" SelectedItem="{Binding RadialOrientation}">
<Fluent:ComboBox.ItemTemplate> <Fluent:ComboBox.ItemTemplate>
<DataTemplate> <DataTemplate>
@@ -84,7 +84,7 @@
</DockPanel> </DockPanel>
<controls:GradientStopControl /> <controls:GradientStopControl />
</StackPanel> </StackPanel>
<StackPanel Visibility="{Binding BrushType,Converter={converter:ConverterValueSetToOppositeVisibility},ConverterParameter='None'}"> <StackPanel Visibility="{Binding BrushType,Converter={dd:ConverterValueSetToOppositeVisibility},ConverterParameter='None'}">
<TextBlock Text="亮度" VerticalAlignment="Center" Margin="5"/> <TextBlock Text="亮度" VerticalAlignment="Center" Margin="5"/>
<DockPanel> <DockPanel>
<Fluent:Spinner DockPanel.Dock="Right" Margin="5" Width="60" Size="Small" Value="{Binding Light}" Maximum="1" Minimum="-1" <Fluent:Spinner DockPanel.Dock="Right" Margin="5" Width="60" Size="Small" Value="{Binding Light}" Maximum="1" Minimum="-1"
@@ -92,7 +92,7 @@
<Slider Margin="5" Maximum="1" Minimum="-1" Value="{Binding Light}" Style="{StaticResource DefaultSlider}"/> <Slider Margin="5" Maximum="1" Minimum="-1" Value="{Binding Light}" Style="{StaticResource DefaultSlider}"/>
</DockPanel> </DockPanel>
</StackPanel> </StackPanel>
<StackPanel Visibility="{Binding BrushType,Converter={converter:ConverterValueSetToOppositeVisibility},ConverterParameter='None'}"> <StackPanel Visibility="{Binding BrushType,Converter={dd:ConverterValueSetToOppositeVisibility},ConverterParameter='None'}">
<TextBlock Text="透明度" VerticalAlignment="Center" Margin="5"/> <TextBlock Text="透明度" VerticalAlignment="Center" Margin="5"/>
<DockPanel> <DockPanel>
<Fluent:Spinner DockPanel.Dock="Right" Margin="5" Width="60" Size="Small" Value="{Binding Opacity}" Maximum="1" Minimum="0" <Fluent:Spinner DockPanel.Dock="Right" Margin="5" Width="60" Size="Small" Value="{Binding Opacity}" Maximum="1" Minimum="0"
@@ -107,13 +107,13 @@
DataContext="{Binding SelectedItem.ColorViewModel.LineColor}" DataContext="{Binding SelectedItem.ColorViewModel.LineColor}"
Visibility="{Binding .,Converter={StaticResource NullableToVisibilityConverter}}"> Visibility="{Binding .,Converter={StaticResource NullableToVisibilityConverter}}">
<StackPanel> <StackPanel>
<RadioButton Margin="5" IsChecked="{Binding BrushType,Converter={converter:ConverterValueMapToBool Parameter='None'}, ConverterParameter='None'}" Content="无线条" /> <RadioButton Margin="5" IsChecked="{Binding BrushType,Converter={dd:ConverterValueMapToBool Parameter='None'}, ConverterParameter='None'}" Content="无线条" />
<RadioButton Margin="5" IsChecked="{Binding BrushType,Converter={converter:ConverterValueMapToBool Parameter='SolidColorBrush'}, ConverterParameter='SolidColorBrush'}" Content="实线"/> <RadioButton Margin="5" IsChecked="{Binding BrushType,Converter={dd:ConverterValueMapToBool Parameter='SolidColorBrush'}, ConverterParameter='SolidColorBrush'}" Content="实线"/>
<RadioButton Margin="5" IsChecked="{Binding BrushType,Converter={converter:ConverterValueMapToBool Parameter='LinearGradientBrush'}, ConverterParameter='LinearGradientBrush'}" Content="线性渐变填充"/> <RadioButton Margin="5" IsChecked="{Binding BrushType,Converter={dd:ConverterValueMapToBool Parameter='LinearGradientBrush'}, ConverterParameter='LinearGradientBrush'}" Content="线性渐变填充"/>
<RadioButton Margin="5" IsChecked="{Binding BrushType,Converter={converter:ConverterValueMapToBool Parameter='RadialGradientBrush'}, ConverterParameter='RadialGradientBrush'}" Content="径向渐变填充"/> <RadioButton Margin="5" IsChecked="{Binding BrushType,Converter={dd:ConverterValueMapToBool Parameter='RadialGradientBrush'}, ConverterParameter='RadialGradientBrush'}" Content="径向渐变填充"/>
</StackPanel> </StackPanel>
<DockPanel Visibility="{Binding BrushType,Converter={converter:ConverterValueMapSetToVisibility},ConverterParameter='SolidColorBrush'}"> <DockPanel Visibility="{Binding BrushType,Converter={dd:ConverterValueMapSetToVisibility},ConverterParameter='SolidColorBrush'}">
<!-- The following code shows theme colors mode for color gallery --> <!-- The following code shows theme colors mode for color gallery -->
<Fluent:DropDownButton DockPanel.Dock="Right" Margin="5" Height="24" Width="60" <Fluent:DropDownButton DockPanel.Dock="Right" Margin="5" Height="24" Width="60"
Template="{StaticResource RibbonDropDownButtonControlTemplate1}" Template="{StaticResource RibbonDropDownButtonControlTemplate1}"
@@ -136,8 +136,8 @@
</Fluent:DropDownButton> </Fluent:DropDownButton>
<TextBlock Margin="5" VerticalAlignment="Center" Text="颜色"/> <TextBlock Margin="5" VerticalAlignment="Center" Text="颜色"/>
</DockPanel> </DockPanel>
<StackPanel Visibility="{Binding BrushType,Converter={converter:ConverterValueMapSetToVisibility},ConverterParameter='LinearGradientBrush^RadialGradientBrush'}"> <StackPanel Visibility="{Binding BrushType,Converter={dd:ConverterValueMapSetToVisibility},ConverterParameter='LinearGradientBrush^RadialGradientBrush'}">
<DockPanel Visibility="{Binding BrushType,Converter={converter:ConverterValueMapSetToVisibility},ConverterParameter='LinearGradientBrush'}"> <DockPanel Visibility="{Binding BrushType,Converter={dd:ConverterValueMapSetToVisibility},ConverterParameter='LinearGradientBrush'}">
<Fluent:ComboBox DockPanel.Dock="Right" Margin="5" Size="Small" Width="140" IsEditable="False" helper:EnumHelper.Enum="{x:Type dd:LinearOrientation}" SelectedItem="{Binding LinearOrientation}"> <Fluent:ComboBox DockPanel.Dock="Right" Margin="5" Size="Small" Width="140" IsEditable="False" helper:EnumHelper.Enum="{x:Type dd:LinearOrientation}" SelectedItem="{Binding LinearOrientation}">
<Fluent:ComboBox.ItemTemplate> <Fluent:ComboBox.ItemTemplate>
<DataTemplate> <DataTemplate>
@@ -147,7 +147,7 @@
</Fluent:ComboBox> </Fluent:ComboBox>
<TextBlock Text="方向" VerticalAlignment="Center" Margin="5"/> <TextBlock Text="方向" VerticalAlignment="Center" Margin="5"/>
</DockPanel> </DockPanel>
<DockPanel Visibility="{Binding BrushType,Converter={converter:ConverterValueMapSetToVisibility},ConverterParameter='RadialGradientBrush'}"> <DockPanel Visibility="{Binding BrushType,Converter={dd:ConverterValueMapSetToVisibility},ConverterParameter='RadialGradientBrush'}">
<Fluent:ComboBox DockPanel.Dock="Right" Margin="5" Size="Small" Width="140" IsEditable="False" helper:EnumHelper.Enum="{x:Type dd:RadialOrientation}" SelectedItem="{Binding RadialOrientation}"> <Fluent:ComboBox DockPanel.Dock="Right" Margin="5" Size="Small" Width="140" IsEditable="False" helper:EnumHelper.Enum="{x:Type dd:RadialOrientation}" SelectedItem="{Binding RadialOrientation}">
<Fluent:ComboBox.ItemTemplate> <Fluent:ComboBox.ItemTemplate>
<DataTemplate> <DataTemplate>
@@ -164,7 +164,7 @@
</DockPanel> </DockPanel>
<controls:GradientStopControl /> <controls:GradientStopControl />
</StackPanel> </StackPanel>
<StackPanel Visibility="{Binding BrushType,Converter={converter:ConverterValueSetToOppositeVisibility},ConverterParameter='None'}"> <StackPanel Visibility="{Binding BrushType,Converter={dd:ConverterValueSetToOppositeVisibility},ConverterParameter='None'}">
<TextBlock Text="亮度" VerticalAlignment="Center" Margin="5"/> <TextBlock Text="亮度" VerticalAlignment="Center" Margin="5"/>
<DockPanel> <DockPanel>
<Fluent:Spinner DockPanel.Dock="Right" Margin="5" Width="60" Size="Small" Value="{Binding Light}" Maximum="1" Minimum="-1" <Fluent:Spinner DockPanel.Dock="Right" Margin="5" Width="60" Size="Small" Value="{Binding Light}" Maximum="1" Minimum="-1"
@@ -172,7 +172,7 @@
<Slider Margin="5" Maximum="1" Minimum="-1" Value="{Binding Light}" Style="{StaticResource DefaultSlider}"/> <Slider Margin="5" Maximum="1" Minimum="-1" Value="{Binding Light}" Style="{StaticResource DefaultSlider}"/>
</DockPanel> </DockPanel>
</StackPanel> </StackPanel>
<StackPanel Visibility="{Binding BrushType,Converter={converter:ConverterValueSetToOppositeVisibility},ConverterParameter='None'}"> <StackPanel Visibility="{Binding BrushType,Converter={dd:ConverterValueSetToOppositeVisibility},ConverterParameter='None'}">
<TextBlock Text="透明度" VerticalAlignment="Center" Margin="5"/> <TextBlock Text="透明度" VerticalAlignment="Center" Margin="5"/>
<DockPanel> <DockPanel>
<Fluent:Spinner DockPanel.Dock="Right" Margin="5" Width="60" Size="Small" Value="{Binding Opacity}" Maximum="1" Minimum="0" <Fluent:Spinner DockPanel.Dock="Right" Margin="5" Width="60" Size="Small" Value="{Binding Opacity}" Maximum="1" Minimum="0"
@@ -254,8 +254,8 @@
</ControlTemplate> </ControlTemplate>
<ControlTemplate TargetType="Control" x:Key="PropertyTemplate"> <ControlTemplate TargetType="Control" x:Key="PropertyTemplate">
<controls:PropertiesView SelectedObject="{Binding SelectedItem}"> <dd:PropertiesView SelectedObject="{Binding SelectedItem}">
<controls:PropertiesView.Resources> <dd:PropertiesView.Resources>
<Style x:Key="ActTypeStyle" TargetType="{x:Type ContentControl}"> <Style x:Key="ActTypeStyle" TargetType="{x:Type ContentControl}">
<Setter Property="ContentTemplate"> <Setter Property="ContentTemplate">
<Setter.Value> <Setter.Value>
@@ -277,9 +277,9 @@
<Setter.Value> <Setter.Value>
<DataTemplate> <DataTemplate>
<Grid DataContext="{Binding Path=DataContext,RelativeSource={RelativeSource AncestorType={x:Type ContentControl}}}"> <Grid DataContext="{Binding Path=DataContext,RelativeSource={RelativeSource AncestorType={x:Type ContentControl}}}">
<controls:MultiSelectComboBox BorderThickness="0" DisplayMemberPath="text" SelectedValuePath="value" <dd:MultiSelectComboBox BorderThickness="0" DisplayMemberPath="text" SelectedValuePath="value"
SelectedValues="{Binding UserIds}" SelectedValues="{Binding UserIds}"
ItemsSource="{x:Static flowchart:FlowchartService.Users}" ></controls:MultiSelectComboBox> ItemsSource="{x:Static flowchart:FlowchartService.Users}" ></dd:MultiSelectComboBox>
</Grid> </Grid>
</DataTemplate> </DataTemplate>
</Setter.Value> </Setter.Value>
@@ -290,16 +290,16 @@
<Setter.Value> <Setter.Value>
<DataTemplate> <DataTemplate>
<Grid DataContext="{Binding Path=DataContext,RelativeSource={RelativeSource AncestorType={x:Type ContentControl}}}"> <Grid DataContext="{Binding Path=DataContext,RelativeSource={RelativeSource AncestorType={x:Type ContentControl}}}">
<controls:MultiSelectComboBox BorderThickness="0" DisplayMemberPath="text" SelectedValuePath="value" <dd:MultiSelectComboBox BorderThickness="0" DisplayMemberPath="text" SelectedValuePath="value"
SelectedValues="{Binding RoleIds}" SelectedValues="{Binding RoleIds}"
ItemsSource="{x:Static flowchart:FlowchartService.Roles}"></controls:MultiSelectComboBox> ItemsSource="{x:Static flowchart:FlowchartService.Roles}"></dd:MultiSelectComboBox>
</Grid> </Grid>
</DataTemplate> </DataTemplate>
</Setter.Value> </Setter.Value>
</Setter> </Setter>
</Style> </Style>
</controls:PropertiesView.Resources> </dd:PropertiesView.Resources>
</controls:PropertiesView> </dd:PropertiesView>
</ControlTemplate> </ControlTemplate>
</UserControl.Resources> </UserControl.Resources>
<Grid > <Grid >

View File

@@ -11,7 +11,7 @@
xmlns:dd="https://gitee.com/akwkevin/aistudio.-wpf.-diagram" xmlns:dd="https://gitee.com/akwkevin/aistudio.-wpf.-diagram"
xmlns:conventer="clr-namespace:AIStudio.Wpf.DiagramHelper.Converters;assembly=AIStudio.Wpf.DiagramHelper" xmlns:conventer="clr-namespace:AIStudio.Wpf.DiagramHelper.Converters;assembly=AIStudio.Wpf.DiagramHelper"
xmlns:command="clr-namespace:AIStudio.Wpf.DiagramHelper.Commands;assembly=AIStudio.Wpf.DiagramHelper" xmlns:command="clr-namespace:AIStudio.Wpf.DiagramHelper.Commands;assembly=AIStudio.Wpf.DiagramHelper"
xmlns:svg="clr-namespace:Svg2XamlTestExtension;assembly=Svg2XamlTestExtension" xmlns:svg="https://gitee.com/akwkevin/aistudio.-wpf.-test/tree/master/Controls/AIStudio.Wpf.Svg2XamlExtension"
mc:Ignorable="d" mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300"> d:DesignHeight="300" d:DesignWidth="300">
<UserControl.Resources> <UserControl.Resources>

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -2,11 +2,23 @@
<PropertyGroup> <PropertyGroup>
<UseWPF>true</UseWPF> <UseWPF>true</UseWPF>
<Company>AIStudio.Wpf.Controls</Company>
<Authors>akwkevin</Authors>
<PackageProjectUrl>https://gitee.com/akwkevin</PackageProjectUrl>
<PackageIcon>A.png</PackageIcon>
<PackageIconUrl />
<NeutralLanguage />
<Version>1.0.1</Version>
<Description>一个Wpf的Diagram控件基础库</Description>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<None Remove="Images\file.png" /> <None Remove="Images\file.png" />
<None Remove="Images\FormatPainter.cur" /> <None Remove="Images\FormatPainter.cur" />
<None Include="A.png">
<Pack>True</Pack>
<PackagePath></PackagePath>
</None>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
@@ -32,6 +44,15 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Page Update="Controls\MultiSelectComboBox.xaml">
<XamlRuntime>$(DefaultXamlRuntime)</XamlRuntime>
</Page>
<Page Update="Controls\PopupWindow.xaml">
<XamlRuntime>$(DefaultXamlRuntime)</XamlRuntime>
</Page>
<Page Update="Controls\PropertiesView.xaml">
<XamlRuntime>$(DefaultXamlRuntime)</XamlRuntime>
</Page>
<Page Update="Styles\ComboBox.xaml"> <Page Update="Styles\ComboBox.xaml">
<XamlRuntime>$(DefaultXamlRuntime)</XamlRuntime> <XamlRuntime>$(DefaultXamlRuntime)</XamlRuntime>
<SubType>Designer</SubType> <SubType>Designer</SubType>

View File

@@ -1,4 +1,4 @@
<UserControl x:Class="AIStudio.Wpf.DiagramHelper.Controls.MultiSelectComboBox" <UserControl x:Class="AIStudio.Wpf.DiagramDesigner.Controls.MultiSelectComboBox"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ComboBox Background="Transparent" BorderBrush="Transparent" <ComboBox Background="Transparent" BorderBrush="Transparent"

View File

@@ -1,23 +1,13 @@
using System; using System;
using System.Collections.Generic; using System.Collections;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Windows; using System.Windows;
using System.Windows.Controls; using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Collections;
using AIStudio.Wpf.DiagramHelper.Helpers;
using AIStudio.Wpf.DiagramDesigner;
namespace AIStudio.Wpf.DiagramHelper.Controls namespace AIStudio.Wpf.DiagramDesigner.Controls
{ {
/// <summary> /// <summary>
/// Interaction logic for MultiSelectComboBox.xaml /// Interaction logic for MultiSelectComboBox.xaml

View File

@@ -1,4 +1,4 @@
<Window x:Class="AIStudio.Wpf.DiagramHelper.Controls.PopupWindow" <Window x:Class="AIStudio.Wpf.DiagramDesigner.Controls.PopupWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="{Binding Title}" Title="{Binding Title}"

View File

@@ -12,7 +12,7 @@ using System.Windows.Media;
using System.Windows.Media.Imaging; using System.Windows.Media.Imaging;
using System.Windows.Shapes; using System.Windows.Shapes;
namespace AIStudio.Wpf.DiagramHelper.Controls namespace AIStudio.Wpf.DiagramDesigner.Controls
{ {
/// <summary> /// <summary>
/// PopupWindow.xaml 的交互逻辑 /// PopupWindow.xaml 的交互逻辑

View File

@@ -1,4 +1,4 @@
<UserControl x:Class="AIStudio.Wpf.DiagramHelper.Controls.PropertiesView" <UserControl x:Class="AIStudio.Wpf.DiagramDesigner.Controls.PropertiesView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

View File

@@ -14,7 +14,7 @@ using System.Windows.Shapes;
using System.ComponentModel; using System.ComponentModel;
using System.Reflection; using System.Reflection;
namespace AIStudio.Wpf.DiagramHelper.Controls namespace AIStudio.Wpf.DiagramDesigner.Controls
{ {
/// <summary> /// <summary>
/// Interaction logic for PropertiesView.xaml /// Interaction logic for PropertiesView.xaml

View File

@@ -7,7 +7,7 @@ using System.Threading.Tasks;
using System.Windows; using System.Windows;
using System.Windows.Data; using System.Windows.Data;
namespace AIStudio.Wpf.DiagramHelper.Converters namespace AIStudio.Wpf.DiagramDesigner.Converters
{ {
public class BoolVisibilityConverter : IValueConverter public class BoolVisibilityConverter : IValueConverter
{ {

View File

@@ -4,7 +4,7 @@ using System.Windows;
using System.Windows.Data; using System.Windows.Data;
using System.Windows.Markup; using System.Windows.Markup;
namespace AIStudio.Wpf.DiagramHelper.Converters namespace AIStudio.Wpf.DiagramDesigner.Converters
{ {
public class ConverterBoolToValueMap : MarkupExtension, IValueConverter public class ConverterBoolToValueMap : MarkupExtension, IValueConverter
{ {

View File

@@ -7,7 +7,7 @@ using System.Windows;
using System.Windows.Data; using System.Windows.Data;
using System.Windows.Markup; using System.Windows.Markup;
namespace AIStudio.Wpf.DiagramHelper.Converters namespace AIStudio.Wpf.DiagramDesigner.Converters
{ {
public class ConverterValueMapSetToVisibility : MarkupExtension, IValueConverter public class ConverterValueMapSetToVisibility : MarkupExtension, IValueConverter
{ {

View File

@@ -4,7 +4,7 @@ using System.Windows;
using System.Windows.Data; using System.Windows.Data;
using System.Windows.Markup; using System.Windows.Markup;
namespace AIStudio.Wpf.DiagramHelper.Converters namespace AIStudio.Wpf.DiagramDesigner.Converters
{ {
public class ConverterValueMapToBool : MarkupExtension, IValueConverter public class ConverterValueMapToBool : MarkupExtension, IValueConverter
{ {

View File

@@ -7,7 +7,7 @@ using System.Windows;
using System.Windows.Data; using System.Windows.Data;
using System.Windows.Markup; using System.Windows.Markup;
namespace AIStudio.Wpf.DiagramHelper.Converters namespace AIStudio.Wpf.DiagramDesigner.Converters
{ {
public class ConverterValueMapToVisibility : MarkupExtension, IValueConverter public class ConverterValueMapToVisibility : MarkupExtension, IValueConverter
{ {

View File

@@ -7,7 +7,7 @@ using System.Windows;
using System.Windows.Data; using System.Windows.Data;
using System.Windows.Markup; using System.Windows.Markup;
namespace AIStudio.Wpf.DiagramHelper.Converters namespace AIStudio.Wpf.DiagramDesigner.Converters
{ {
public class ConverterValueSetToOppositeVisibility : MarkupExtension, IValueConverter public class ConverterValueSetToOppositeVisibility : MarkupExtension, IValueConverter
{ {

View File

@@ -4,7 +4,7 @@ using System.Globalization;
using System.Windows; using System.Windows;
using System.Windows.Data; using System.Windows.Data;
namespace AIStudio.Wpf.DiagramHelper.Converters namespace AIStudio.Wpf.DiagramDesigner.Converters
{ {
#region Half #region Half
public class HalfConverter : IValueConverter public class HalfConverter : IValueConverter

View File

@@ -1,7 +1,7 @@
using System; using System;
using System.Windows.Data; using System.Windows.Data;
namespace AIStudio.Wpf.DiagramHelper.Converters namespace AIStudio.Wpf.DiagramDesigner.Converters
{ {
public class IntToBoolConverter : IValueConverter public class IntToBoolConverter : IValueConverter
{ {

View File

@@ -12,5 +12,6 @@ using System.Windows.Markup;
[assembly: XmlnsDefinition("https://gitee.com/akwkevin/aistudio.-wpf.-diagram", "AIStudio.Wpf.DiagramDesigner")] [assembly: XmlnsDefinition("https://gitee.com/akwkevin/aistudio.-wpf.-diagram", "AIStudio.Wpf.DiagramDesigner")]
[assembly: XmlnsDefinition("https://gitee.com/akwkevin/aistudio.-wpf.-diagram", "AIStudio.Wpf.DiagramDesigner.Controls")] [assembly: XmlnsDefinition("https://gitee.com/akwkevin/aistudio.-wpf.-diagram", "AIStudio.Wpf.DiagramDesigner.Controls")]
[assembly: XmlnsDefinition("https://gitee.com/akwkevin/aistudio.-wpf.-diagram", "AIStudio.Wpf.DiagramDesigner.Converters")]
[assembly: XmlnsPrefix("https://gitee.com/akwkevin/aistudio.-wpf.-diagram", "dd")] [assembly: XmlnsPrefix("https://gitee.com/akwkevin/aistudio.-wpf.-diagram", "dd")]

View File

@@ -1,11 +1,6 @@
using AIStudio.Wpf.DiagramHelper.Services; using System;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AIStudio.Wpf.DiagramHelper namespace AIStudio.Wpf.DiagramDesigner.Services
{ {
/// <summary> /// <summary>
/// Simple service interface /// Simple service interface

View File

@@ -4,7 +4,7 @@ using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace AIStudio.Wpf.DiagramHelper.Services namespace AIStudio.Wpf.DiagramDesigner.Services
{ {
/// <summary> /// <summary>
/// Available Button options. /// Available Button options.

View File

@@ -4,7 +4,7 @@ using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace AIStudio.Wpf.DiagramHelper.Services namespace AIStudio.Wpf.DiagramDesigner.Services
{ {
/// <summary> /// <summary>
/// This interface defines a UI controller which can be used to display dialogs /// This interface defines a UI controller which can be used to display dialogs

View File

@@ -5,7 +5,7 @@ using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows; using System.Windows;
namespace AIStudio.Wpf.DiagramHelper.Services namespace AIStudio.Wpf.DiagramDesigner.Services
{ {
/// <summary> /// <summary>
/// This class implements the IMessageBoxService for WPF purposes. /// This class implements the IMessageBoxService for WPF purposes.

View File

@@ -1,12 +1,7 @@
using AIStudio.Wpf.DiagramHelper.Controls; using System.Windows;
using System; using AIStudio.Wpf.DiagramDesigner.Controls;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
namespace AIStudio.Wpf.DiagramHelper.Services namespace AIStudio.Wpf.DiagramDesigner.Services
{ {
public class WPFUIVisualizerService : IUIVisualizerService public class WPFUIVisualizerService : IUIVisualizerService
{ {

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -3,73 +3,38 @@
<PropertyGroup> <PropertyGroup>
<UseWPF>true</UseWPF> <UseWPF>true</UseWPF>
<UseWindowsForms>true</UseWindowsForms> <UseWindowsForms>true</UseWindowsForms>
<Company>AIStudio.Wpf.Controls</Company>
<Authors>akwkevin</Authors>
<PackageProjectUrl>https://gitee.com/akwkevin</PackageProjectUrl>
<PackageIcon>A.png</PackageIcon>
<PackageIconUrl />
<NeutralLanguage />
<Version>1.0.1</Version>
<Description>一个Wpf的Diagram控件帮助库</Description>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Fluent.Ribbon" Version="8.0.3" /> <PackageReference Include="Fluent.Ribbon" Version="8.0.3" />
<PackageReference Include="MahApps.Metro.IconPacks" Version="4.8.0" /> <PackageReference Include="MahApps.Metro.IconPacks" Version="4.8.0" />
<PackageReference Include="AIStudio.Wpf.Svg2XamlExtension" Version="1.2.2" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" /> <PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
<PackageReference Include="Util.Svg2XamlTestExtension" Version="1.2.5" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\AIStudio.Wpf.DiagramDesigner\AIStudio.Wpf.DiagramDesigner.csproj" /> <ProjectReference Include="..\AIStudio.Wpf.DiagramDesigner\AIStudio.Wpf.DiagramDesigner.csproj" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<None Include="A.png">
<Pack>True</Pack>
<PackagePath></PackagePath>
</None>
</ItemGroup>
<ItemGroup> <ItemGroup>
<Reference Include="zxing.core"> <Reference Include="zxing.core">
<HintPath>DLL\zxing.core.dll</HintPath> <HintPath>DLL\zxing.core.dll</HintPath>
</Reference> </Reference>
</ItemGroup> </ItemGroup>
<ItemGroup>
<Page Update="Controls\Barcode.xaml">
<XamlRuntime>$(DefaultXamlRuntime)</XamlRuntime>
</Page>
<Page Update="Controls\GradientStopControl.xaml">
<XamlRuntime>$(DefaultXamlRuntime)</XamlRuntime>
</Page>
<Page Update="Controls\MultiSelectComboBox.xaml">
<XamlRuntime>$(DefaultXamlRuntime)</XamlRuntime>
<SubType>Designer</SubType>
</Page>
<Page Update="Controls\PopupWindow.xaml">
<XamlRuntime>$(DefaultXamlRuntime)</XamlRuntime>
</Page>
<Page Update="Controls\PropertiesView.xaml">
<XamlRuntime>$(DefaultXamlRuntime)</XamlRuntime>
</Page>
<Page Update="Controls\SliderRotation.xaml">
<XamlRuntime>$(DefaultXamlRuntime)</XamlRuntime>
<SubType>Designer</SubType>
</Page>
<Page Update="Extensions\ViewModels\BarcodeDesignerItemViewModel.xaml">
<XamlRuntime>$(DefaultXamlRuntime)</XamlRuntime>
<SubType>Designer</SubType>
</Page>
<Page Update="Extensions\ViewModels\OutLineTextDesignerItemViewModel.xaml">
<XamlRuntime>$(DefaultXamlRuntime)</XamlRuntime>
<SubType>Designer</SubType>
</Page>
<Page Update="Extensions\ViewModels\PathItemViewModel.xaml">
<XamlRuntime>$(DefaultXamlRuntime)</XamlRuntime>
</Page>
<Page Update="Extensions\ViewModels\PersistDesignerItemViewModel.xaml">
<XamlRuntime>$(DefaultXamlRuntime)</XamlRuntime>
<SubType>Designer</SubType>
</Page>
<Page Update="Extensions\ViewModels\SettingsDesignerItemViewModel.xaml">
<XamlRuntime>$(DefaultXamlRuntime)</XamlRuntime>
<SubType>Designer</SubType>
</Page>
<Page Update="Extensions\ViewModels\SvgDesignerItemViewModel.xaml">
<XamlRuntime>$(DefaultXamlRuntime)</XamlRuntime>
<SubType>Designer</SubType>
</Page>
</ItemGroup>
<ItemGroup>
<Folder Include="Themes\" />
</ItemGroup>
</Project> </Project>

View File

@@ -1,6 +1,6 @@
using AIStudio.Wpf.DiagramHelper.Services; using System;
using System;
using AIStudio.Wpf.DiagramDesigner; using AIStudio.Wpf.DiagramDesigner;
using AIStudio.Wpf.DiagramDesigner.Services;
using ZXing; using ZXing;
namespace AIStudio.Wpf.DiagramHelper.Extensions.ViewModels namespace AIStudio.Wpf.DiagramHelper.Extensions.ViewModels

View File

@@ -6,12 +6,11 @@
xmlns:controls="clr-namespace:AIStudio.Wpf.DiagramHelper.Controls" xmlns:controls="clr-namespace:AIStudio.Wpf.DiagramHelper.Controls"
xmlns:dd="https://gitee.com/akwkevin/aistudio.-wpf.-diagram" xmlns:dd="https://gitee.com/akwkevin/aistudio.-wpf.-diagram"
xmlns:Fluent="urn:fluent-ribbon" xmlns:Fluent="urn:fluent-ribbon"
xmlns:s="clr-namespace:AIStudio.Wpf.DiagramDesigner;assembly=AIStudio.Wpf.DiagramDesigner"
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"> xmlns:i="http://schemas.microsoft.com/xaml/behaviors">
<converter:BoolVisibilityConverter x:Key="BoolVisibilityConverter"/> <dd:BoolVisibilityConverter x:Key="BoolVisibilityConverter"/>
<converter:DoubleToThickness x:Key="DoubleToThickness"/> <converter:DoubleToThickness x:Key="DoubleToThickness"/>
<s:ColorBrushConverter x:Key="ColorBrushConverter"/> <dd:ColorBrushConverter x:Key="ColorBrushConverter"/>
<DataTemplate DataType="{x:Type viewmodel:BarcodeDesignerItemViewModel}"> <DataTemplate DataType="{x:Type viewmodel:BarcodeDesignerItemViewModel}">

View File

@@ -1,8 +1,8 @@
using AIStudio.Wpf.DiagramHelper.Services; using System.Globalization;
using System.Globalization;
using System.Windows; using System.Windows;
using System.Windows.Media; using System.Windows.Media;
using AIStudio.Wpf.DiagramDesigner; using AIStudio.Wpf.DiagramDesigner;
using AIStudio.Wpf.DiagramDesigner.Services;
namespace AIStudio.Wpf.DiagramHelper.Extensions.ViewModels namespace AIStudio.Wpf.DiagramHelper.Extensions.ViewModels
{ {

View File

@@ -2,16 +2,14 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:viewmodel="clr-namespace:AIStudio.Wpf.DiagramHelper.Extensions.ViewModels" xmlns:viewmodel="clr-namespace:AIStudio.Wpf.DiagramHelper.Extensions.ViewModels"
xmlns:gif="http://wpfanimatedgif.codeplex.com" xmlns:gif="http://wpfanimatedgif.codeplex.com"
xmlns:converter="clr-namespace:AIStudio.Wpf.DiagramHelper.Converters"
xmlns:controls="clr-namespace:AIStudio.Wpf.DiagramHelper.Controls" xmlns:controls="clr-namespace:AIStudio.Wpf.DiagramHelper.Controls"
xmlns:dd="https://gitee.com/akwkevin/aistudio.-wpf.-diagram" xmlns:dd="https://gitee.com/akwkevin/aistudio.-wpf.-diagram"
xmlns:Fluent="urn:fluent-ribbon" xmlns:Fluent="urn:fluent-ribbon"
xmlns:s="clr-namespace:AIStudio.Wpf.DiagramDesigner;assembly=AIStudio.Wpf.DiagramDesigner"
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"> xmlns:i="http://schemas.microsoft.com/xaml/behaviors">
<converter:BoolVisibilityConverter x:Key="BoolVisibilityConverter"/> <dd:BoolVisibilityConverter x:Key="BoolVisibilityConverter"/>
<converter:DoubleToThickness x:Key="DoubleToThickness"/> <dd:DoubleToThickness x:Key="DoubleToThickness"/>
<s:ColorBrushConverter x:Key="ColorBrushConverter"/> <dd:ColorBrushConverter x:Key="ColorBrushConverter"/>
<DataTemplate DataType="{x:Type viewmodel:OutLineTextDesignerItemViewModel}"> <DataTemplate DataType="{x:Type viewmodel:OutLineTextDesignerItemViewModel}">
<Viewbox Stretch="Fill" IsHitTestVisible="False"> <Viewbox Stretch="Fill" IsHitTestVisible="False">
@@ -44,9 +42,9 @@
Text="{Binding Text}" Text="{Binding Text}"
FontSize="{Binding ElementName=comboBoxFontSize,Path=SelectedItem}" FontSize="{Binding ElementName=comboBoxFontSize,Path=SelectedItem}"
FontFamily="{Binding ElementName=comboBoxFontName,Path=SelectedItem}" FontFamily="{Binding ElementName=comboBoxFontName,Path=SelectedItem}"
FontWeight="{Binding ElementName=buttonBold,Path=IsChecked,Converter={converter:ConverterBoolToValueMap Parameter='Regular'}, ConverterParameter='Bold'}" FontWeight="{Binding ElementName=buttonBold,Path=IsChecked,Converter={dd:ConverterBoolToValueMap Parameter='Regular'}, ConverterParameter='Bold'}"
FontStyle="{Binding ElementName=buttonItalic,Path=IsChecked,Converter={converter:ConverterBoolToValueMap Parameter='Normal'}, ConverterParameter='Italic'}" FontStyle="{Binding ElementName=buttonItalic,Path=IsChecked,Converter={dd:ConverterBoolToValueMap Parameter='Normal'}, ConverterParameter='Italic'}"
TextDecorations="{Binding ElementName=buttonUnderline,Path=IsChecked,Converter={converter:ConverterBoolToValueMap Parameter='None'}, ConverterParameter='Underline'}" TextDecorations="{Binding ElementName=buttonUnderline,Path=IsChecked,Converter={dd:ConverterBoolToValueMap Parameter='None'}, ConverterParameter='Underline'}"
Height="100" Height="100"
Margin="5" Margin="5"
TextWrapping="Wrap"/> TextWrapping="Wrap"/>
@@ -94,13 +92,13 @@
Icon="pack://application:,,,/AIStudio.Wpf.DiagramHelper;component/Images/Bold.png" Icon="pack://application:,,,/AIStudio.Wpf.DiagramHelper;component/Images/Bold.png"
HorizontalAlignment="Left" HorizontalAlignment="Left"
SizeDefinition="Small" SizeDefinition="Small"
IsChecked="{Binding FontViewModel.FontWeight,Converter={converter:ConverterValueMapToBool Parameter='Regular'}, ConverterParameter='Bold'}"/> IsChecked="{Binding FontViewModel.FontWeight,Converter={dd:ConverterValueMapToBool Parameter='Regular'}, ConverterParameter='Bold'}"/>
<Fluent:ToggleButton x:Name="buttonItalic" <Fluent:ToggleButton x:Name="buttonItalic"
KeyTip="I" KeyTip="I"
Icon="pack://application:,,,/AIStudio.Wpf.DiagramHelper;component/Images/Italic.png" Icon="pack://application:,,,/AIStudio.Wpf.DiagramHelper;component/Images/Italic.png"
HorizontalAlignment="Left" HorizontalAlignment="Left"
SizeDefinition="Small" SizeDefinition="Small"
IsChecked="{Binding FontViewModel.FontStyle,Converter={converter:ConverterValueMapToBool Parameter='Normal'}, ConverterParameter='Italic'}"/> IsChecked="{Binding FontViewModel.FontStyle,Converter={dd:ConverterValueMapToBool Parameter='Normal'}, ConverterParameter='Italic'}"/>
<Fluent:ToggleButton x:Name="buttonUnderline" <Fluent:ToggleButton x:Name="buttonUnderline"
KeyTip="U" KeyTip="U"
Icon="pack://application:,,,/AIStudio.Wpf.DiagramHelper;component/Images/Underline.png" Icon="pack://application:,,,/AIStudio.Wpf.DiagramHelper;component/Images/Underline.png"

View File

@@ -1,7 +1,7 @@
using AIStudio.Wpf.DiagramHelper.Services; using System;
using AIStudio.Wpf.DiagramDesigner; using AIStudio.Wpf.DiagramDesigner;
using AIStudio.Wpf.DiagramDesigner.Services;
using AIStudio.Wpf.DiagramHelper.Extensions.Models; using AIStudio.Wpf.DiagramHelper.Extensions.Models;
using System;
namespace AIStudio.Wpf.DiagramHelper.Extensions.ViewModels namespace AIStudio.Wpf.DiagramHelper.Extensions.ViewModels
{ {

View File

@@ -5,13 +5,11 @@
xmlns:converter="clr-namespace:AIStudio.Wpf.DiagramHelper.Converters" xmlns:converter="clr-namespace:AIStudio.Wpf.DiagramHelper.Converters"
xmlns:controls="clr-namespace:AIStudio.Wpf.DiagramHelper.Controls" xmlns:controls="clr-namespace:AIStudio.Wpf.DiagramHelper.Controls"
xmlns:dd="https://gitee.com/akwkevin/aistudio.-wpf.-diagram" xmlns:dd="https://gitee.com/akwkevin/aistudio.-wpf.-diagram"
xmlns:Fluent="urn:fluent-ribbon"
xmlns:s="clr-namespace:AIStudio.Wpf.DiagramDesigner;assembly=AIStudio.Wpf.DiagramDesigner"
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"> xmlns:i="http://schemas.microsoft.com/xaml/behaviors">
<converter:BoolVisibilityConverter x:Key="BoolVisibilityConverter"/> <dd:BoolVisibilityConverter x:Key="BoolVisibilityConverter"/>
<converter:DoubleToThickness x:Key="DoubleToThickness"/> <dd:DoubleToThickness x:Key="DoubleToThickness"/>
<s:ColorBrushConverter x:Key="ColorBrushConverter"/> <dd:ColorBrushConverter x:Key="ColorBrushConverter"/>
<ControlTemplate x:Key="infoButtonTemplate" TargetType="Button"> <ControlTemplate x:Key="infoButtonTemplate" TargetType="Button">
<Grid x:Name="grid" Opacity="0.1"> <Grid x:Name="grid" Opacity="0.1">

View File

@@ -1,6 +1,6 @@
using AIStudio.Wpf.DiagramHelper.Services; using System;
using System;
using AIStudio.Wpf.DiagramDesigner; using AIStudio.Wpf.DiagramDesigner;
using AIStudio.Wpf.DiagramDesigner.Services;
using AIStudio.Wpf.DiagramHelper.Extensions.Models; using AIStudio.Wpf.DiagramHelper.Extensions.Models;
namespace AIStudio.Wpf.DiagramHelper.Extensions.ViewModels namespace AIStudio.Wpf.DiagramHelper.Extensions.ViewModels

View File

@@ -6,12 +6,11 @@
xmlns:controls="clr-namespace:AIStudio.Wpf.DiagramHelper.Controls" xmlns:controls="clr-namespace:AIStudio.Wpf.DiagramHelper.Controls"
xmlns:dd="https://gitee.com/akwkevin/aistudio.-wpf.-diagram" xmlns:dd="https://gitee.com/akwkevin/aistudio.-wpf.-diagram"
xmlns:Fluent="urn:fluent-ribbon" xmlns:Fluent="urn:fluent-ribbon"
xmlns:s="clr-namespace:AIStudio.Wpf.DiagramDesigner;assembly=AIStudio.Wpf.DiagramDesigner"
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"> xmlns:i="http://schemas.microsoft.com/xaml/behaviors">
<converter:BoolVisibilityConverter x:Key="BoolVisibilityConverter"/> <dd:BoolVisibilityConverter x:Key="BoolVisibilityConverter"/>
<converter:DoubleToThickness x:Key="DoubleToThickness"/> <converter:DoubleToThickness x:Key="DoubleToThickness"/>
<s:ColorBrushConverter x:Key="ColorBrushConverter"/> <dd:ColorBrushConverter x:Key="ColorBrushConverter"/>
<ControlTemplate x:Key="infoButtonTemplate" TargetType="Button"> <ControlTemplate x:Key="infoButtonTemplate" TargetType="Button">
<Grid x:Name="grid" Opacity="0.1"> <Grid x:Name="grid" Opacity="0.1">

View File

@@ -2,7 +2,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:s="clr-namespace:AIStudio.Wpf.DiagramDesigner;assembly=AIStudio.Wpf.DiagramDesigner" xmlns:s="clr-namespace:AIStudio.Wpf.DiagramDesigner;assembly=AIStudio.Wpf.DiagramDesigner"
xmlns:viewmodel="clr-namespace:AIStudio.Wpf.DiagramHelper.Extensions.ViewModels" xmlns:viewmodel="clr-namespace:AIStudio.Wpf.DiagramHelper.Extensions.ViewModels"
xmlns:svg="clr-namespace:Svg2XamlTestExtension;assembly=Svg2XamlTestExtension"> xmlns:svg="https://gitee.com/akwkevin/aistudio.-wpf.-test/tree/master/Controls/AIStudio.Wpf.Svg2XamlExtension">
<s:ColorBrushConverter x:Key="ColorBrushConverter" /> <s:ColorBrushConverter x:Key="ColorBrushConverter" />
<DataTemplate DataType="{x:Type viewmodel:SvgDesignerItemViewModel}"> <DataTemplate DataType="{x:Type viewmodel:SvgDesignerItemViewModel}">

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -2,16 +2,20 @@
<PropertyGroup> <PropertyGroup>
<UseWPF>true</UseWPF> <UseWPF>true</UseWPF>
<Company>AIStudio.Wpf.Controls</Company>
<Authors>akwkevin</Authors>
<PackageProjectUrl>https://gitee.com/akwkevin</PackageProjectUrl>
<PackageIcon>A.png</PackageIcon>
<PackageIconUrl />
<NeutralLanguage />
<Version>1.0.1</Version>
<Description>一个Wpf的流程图控件</Description>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="MathParser.org-mXparser" Version="4.4.2" /> <PackageReference Include="MathParser.org-mXparser" Version="4.4.2" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<ProjectReference Include="..\AIStudio.Wpf.DiagramHelper\AIStudio.Wpf.DiagramHelper.csproj" />
</ItemGroup>
<ItemGroup> <ItemGroup>
<Page Update="Controls\ToolBoxControl.xaml"> <Page Update="Controls\ToolBoxControl.xaml">
<XamlRuntime>$(DefaultXamlRuntime)</XamlRuntime> <XamlRuntime>$(DefaultXamlRuntime)</XamlRuntime>
@@ -19,4 +23,15 @@
</Page> </Page>
</ItemGroup> </ItemGroup>
<ItemGroup>
<None Include="A.png">
<Pack>True</Pack>
<PackagePath></PackagePath>
</None>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\AIStudio.Wpf.DiagramDesigner\AIStudio.Wpf.DiagramDesigner.csproj" />
</ItemGroup>
</Project> </Project>

View File

@@ -40,7 +40,7 @@ namespace AIStudio.Wpf.Flowchart.Controls
_diagramViewModel.PageSizeType = PageSizeType.Custom; _diagramViewModel.PageSizeType = PageSizeType.Custom;
_diagramViewModel.PageSize = new Size(double.NaN, double.NaN); _diagramViewModel.PageSize = new Size(double.NaN, double.NaN);
_diagramViewModel.ColorViewModel = new ColorViewModel() { LineWidth = 2 }; _diagramViewModel.ColorViewModel = new ColorViewModel() { LineWidth = 2 };
_diagramViewModel.DrawModeViewModel = new DrawModeViewModel() { VectorLineDrawMode = DrawMode.BoundaryConnectingLine }; //_diagramViewModel.DrawModeViewModel = new DrawModeViewModel() { VectorLineDrawMode = DrawMode.BoundaryConnectingLine };
_diagramViewModel.PropertyChanged += DiagramViewModel_PropertyChanged; _diagramViewModel.PropertyChanged += DiagramViewModel_PropertyChanged;
} }

View File

@@ -1,10 +1,9 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:s="clr-namespace:AIStudio.Wpf.DiagramDesigner;assembly=AIStudio.Wpf.DiagramDesigner" xmlns:dd="https://gitee.com/akwkevin/aistudio.-wpf.-diagram"
xmlns:viewmodel="clr-namespace:AIStudio.Wpf.Flowchart.ViewModels" xmlns:viewmodel="clr-namespace:AIStudio.Wpf.Flowchart.ViewModels">
xmlns:converter="clr-namespace:AIStudio.Wpf.DiagramHelper.Converters;assembly=AIStudio.Wpf.DiagramHelper">
<s:ColorBrushConverter x:Key="ColorBrushConverter"/> <dd:ColorBrushConverter x:Key="ColorBrushConverter"/>
<ControlTemplate x:Key="NormalNodeStyle" TargetType="{x:Type ContentControl}"> <ControlTemplate x:Key="NormalNodeStyle" TargetType="{x:Type ContentControl}">
<Grid> <Grid>
@@ -113,10 +112,10 @@
<Grid Background="{DynamicResource Fluent.Ribbon.Brushes.AccentBaseColorBrush}"> <Grid Background="{DynamicResource Fluent.Ribbon.Brushes.AccentBaseColorBrush}">
<StackPanel Orientation="Vertical"> <StackPanel Orientation="Vertical">
<StackPanel Margin="5" Orientation="Horizontal" > <StackPanel Margin="5" Orientation="Horizontal" >
<RadioButton Margin="3" IsChecked="{Binding Status,Converter={converter:ConverterValueMapToBool Parameter=100}, ConverterParameter=100}" Content="通过"/> <RadioButton Margin="3" IsChecked="{Binding Status,Converter={dd:ConverterValueMapToBool Parameter=100}, ConverterParameter=100}" Content="通过"/>
<RadioButton Margin="3" IsChecked="{Binding Status,Converter={converter:ConverterValueMapToBool Parameter=2}, ConverterParameter=2}" Content="驳回上一级"/> <RadioButton Margin="3" IsChecked="{Binding Status,Converter={dd:ConverterValueMapToBool Parameter=2}, ConverterParameter=2}" Content="驳回上一级"/>
<RadioButton Margin="3" IsChecked="{Binding Status,Converter={converter:ConverterValueMapToBool Parameter=3}, ConverterParameter=3}" Content="驳回重提"/> <RadioButton Margin="3" IsChecked="{Binding Status,Converter={dd:ConverterValueMapToBool Parameter=3}, ConverterParameter=3}" Content="驳回重提"/>
<RadioButton Margin="3" IsChecked="{Binding Status,Converter={converter:ConverterValueMapToBool Parameter=4}, ConverterParameter=4}" Content="否决"/> <RadioButton Margin="3" IsChecked="{Binding Status,Converter={dd:ConverterValueMapToBool Parameter=4}, ConverterParameter=4}" Content="否决"/>
</StackPanel> </StackPanel>
<TextBox Height="28" Margin="5" Text="{Binding Remark}" VerticalContentAlignment="Center"></TextBox> <TextBox Height="28" Margin="5" Text="{Binding Remark}" VerticalContentAlignment="Center"></TextBox>
</StackPanel> </StackPanel>

View File

@@ -1,10 +1,9 @@
using AIStudio.Wpf.DiagramHelper; using System;
using AIStudio.Wpf.DiagramHelper.Services;
using AIStudio.Wpf.Flowchart.Models;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using AIStudio.Wpf.DiagramDesigner; using AIStudio.Wpf.DiagramDesigner;
using System; using AIStudio.Wpf.DiagramDesigner.Services;
using AIStudio.Wpf.Flowchart.Models;
namespace AIStudio.Wpf.Flowchart.ViewModels namespace AIStudio.Wpf.Flowchart.ViewModels
{ {

View File

@@ -1,8 +1,8 @@
using AIStudio.Wpf.DiagramHelper.Controls; using System.Collections.Generic;
using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using System.Windows; using System.Windows;
using AIStudio.Wpf.DiagramDesigner; using AIStudio.Wpf.DiagramDesigner;
using AIStudio.Wpf.DiagramDesigner.Controls;
namespace AIStudio.Wpf.Flowchart.ViewModels namespace AIStudio.Wpf.Flowchart.ViewModels
{ {

View File

@@ -1,9 +1,22 @@
using AIStudio.Wpf.DiagramHelper.Models; using AIStudio.Wpf.DiagramDesigner;
namespace AIStudio.Wpf.Flowchart.ViewModels namespace AIStudio.Wpf.Flowchart.ViewModels
{ {
public class MiddleFlowNodeData : TitleBindableBase public class MiddleFlowNodeData : BindableBase
{ {
private string _title;
public string Title
{
get
{
return _title;
}
set
{
SetProperty(ref _title, value);
}
}
public MiddleFlowNodeData() public MiddleFlowNodeData()
{ {
Title = "审批"; Title = "审批";

View File

@@ -5,7 +5,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\AIStudio.Wpf.DiagramHelper\AIStudio.Wpf.DiagramHelper.csproj" /> <ProjectReference Include="..\AIStudio.Wpf.DiagramDesigner\AIStudio.Wpf.DiagramDesigner.csproj" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@@ -3,16 +3,12 @@
xmlns:local="clr-namespace:AIStudio.Wpf.Logical" xmlns:local="clr-namespace:AIStudio.Wpf.Logical"
xmlns:viewmodel="clr-namespace:AIStudio.Wpf.Logical.ViewModels" xmlns:viewmodel="clr-namespace:AIStudio.Wpf.Logical.ViewModels"
xmlns:gif="http://wpfanimatedgif.codeplex.com" xmlns:gif="http://wpfanimatedgif.codeplex.com"
xmlns:converter="clr-namespace:AIStudio.Wpf.DiagramHelper.Converters;assembly=AIStudio.Wpf.DiagramHelper"
xmlns:controls="clr-namespace:AIStudio.Wpf.DiagramHelper.Controls;assembly=AIStudio.Wpf.DiagramHelper"
xmlns:dd="https://gitee.com/akwkevin/aistudio.-wpf.-diagram" xmlns:dd="https://gitee.com/akwkevin/aistudio.-wpf.-diagram"
xmlns:Fluent="urn:fluent-ribbon"
xmlns:s="clr-namespace:AIStudio.Wpf.DiagramDesigner;assembly=AIStudio.Wpf.DiagramDesigner"
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"> xmlns:i="http://schemas.microsoft.com/xaml/behaviors">
<converter:BoolVisibilityConverter x:Key="BoolVisibilityConverter"/> <dd:BoolVisibilityConverter x:Key="BoolVisibilityConverter"/>
<converter:DoubleToThickness x:Key="DoubleToThickness"/> <dd:DoubleToThickness x:Key="DoubleToThickness"/>
<s:ColorBrushConverter x:Key="ColorBrushConverter"/> <dd:ColorBrushConverter x:Key="ColorBrushConverter"/>
<DataTemplate DataType="{x:Type viewmodel:LogicalGateItemViewModel}"> <DataTemplate DataType="{x:Type viewmodel:LogicalGateItemViewModel}">
<Grid IsHitTestVisible="False"> <Grid IsHitTestVisible="False">

View File

@@ -1,4 +1,4 @@
using AIStudio.Wpf.DiagramHelper.Models; using AIStudio.Wpf.DiagramDesigner;
namespace AIStudio.Wpf.Logical.ViewModels namespace AIStudio.Wpf.Logical.ViewModels
{ {
@@ -8,8 +8,21 @@ namespace AIStudio.Wpf.Logical.ViewModels
/// the popup to be cancelled without applying any changes to the calling ViewModel /// the popup to be cancelled without applying any changes to the calling ViewModel
/// whos data will be updated if the PopupWindow.xaml window is closed successfully /// whos data will be updated if the PopupWindow.xaml window is closed successfully
/// </summary> /// </summary>
public class LinkPointDesignerItemData : TitleBindableBase public class LinkPointDesignerItemData : BindableBase
{ {
private string _title;
public string Title
{
get
{
return _title;
}
set
{
SetProperty(ref _title, value);
}
}
public LinkPointDesignerItemData(LinkPoint linkPoint) public LinkPointDesignerItemData(LinkPoint linkPoint)
{ {
this.LinkPoint = linkPoint; this.LinkPoint = linkPoint;

View File

@@ -1,5 +1,4 @@
using AIStudio.Wpf.DiagramHelper.Models; using System.Collections.Generic;
using System.Collections.Generic;
using System.Collections.ObjectModel; using System.Collections.ObjectModel;
using AIStudio.Wpf.DiagramDesigner; using AIStudio.Wpf.DiagramDesigner;
@@ -11,8 +10,21 @@ namespace AIStudio.Wpf.Logical.ViewModels
/// the popup to be cancelled without applying any changes to the calling ViewModel /// the popup to be cancelled without applying any changes to the calling ViewModel
/// whos data will be updated if the PopupWindow.xaml window is closed successfully /// whos data will be updated if the PopupWindow.xaml window is closed successfully
/// </summary> /// </summary>
public class LogicalGateItemData : TitleBindableBase public class LogicalGateItemData : BindableBase
{ {
private string _title;
public string Title
{
get
{
return _title;
}
set
{
SetProperty(ref _title, value);
}
}
public LogicalGateItemData(IEnumerable<FullyCreatedConnectorInfo> inputvalues) public LogicalGateItemData(IEnumerable<FullyCreatedConnectorInfo> inputvalues)
{ {
this.InputValues = new ObservableCollection<FullyCreatedConnectorInfo>(inputvalues); this.InputValues = new ObservableCollection<FullyCreatedConnectorInfo>(inputvalues);

View File

@@ -1,10 +1,9 @@
using AIStudio.Wpf.DiagramHelper; using System;
using AIStudio.Wpf.DiagramHelper.Services;
using System;
using System.Collections.ObjectModel; using System.Collections.ObjectModel;
using System.Linq; using System.Linq;
using System.Windows.Media; using System.Windows.Media;
using AIStudio.Wpf.DiagramDesigner; using AIStudio.Wpf.DiagramDesigner;
using AIStudio.Wpf.DiagramDesigner.Services;
namespace AIStudio.Wpf.Logical.ViewModels namespace AIStudio.Wpf.Logical.ViewModels
{ {

View File

@@ -1,4 +1,4 @@
using AIStudio.Wpf.DiagramHelper.Models; using AIStudio.Wpf.DiagramDesigner;
namespace AIStudio.Wpf.Logical.ViewModels namespace AIStudio.Wpf.Logical.ViewModels
{ {
@@ -8,8 +8,21 @@ namespace AIStudio.Wpf.Logical.ViewModels
/// the popup to be cancelled without applying any changes to the calling ViewModel /// the popup to be cancelled without applying any changes to the calling ViewModel
/// whos data will be updated if the PopupWindow.xaml window is closed successfully /// whos data will be updated if the PopupWindow.xaml window is closed successfully
/// </summary> /// </summary>
public class ValueDesignerItemData : TitleBindableBase public class ValueDesignerItemData : BindableBase
{ {
private string _title;
public string Title
{
get
{
return _title;
}
set
{
SetProperty(ref _title, value);
}
}
public ValueDesignerItemData(double value) public ValueDesignerItemData(double value)
{ {
this.Value = value; this.Value = value;

View File

@@ -9,7 +9,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\AIStudio.Wpf.DiagramHelper\AIStudio.Wpf.DiagramHelper.csproj" /> <ProjectReference Include="..\AIStudio.Wpf.DiagramDesigner\AIStudio.Wpf.DiagramDesigner.csproj" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@@ -1,13 +1,12 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:s="clr-namespace:AIStudio.Wpf.DiagramDesigner;assembly=AIStudio.Wpf.DiagramDesigner" xmlns:dd="https://gitee.com/akwkevin/aistudio.-wpf.-diagram"
xmlns:viewmodel="clr-namespace:AIStudio.Wpf.SFC.ViewModels" xmlns:viewmodel="clr-namespace:AIStudio.Wpf.SFC.ViewModels"
xmlns:local="clr-namespace:AIStudio.Wpf.SFC" xmlns:local="clr-namespace:AIStudio.Wpf.SFC">
xmlns:converter="clr-namespace:AIStudio.Wpf.DiagramHelper.Converters;assembly=AIStudio.Wpf.DiagramHelper">
<s:ColorBrushConverter x:Key="ColorBrushConverter"/> <dd:ColorBrushConverter x:Key="ColorBrushConverter"/>
<converter:HalfConverter x:Key="HalfConverter"/> <dd:HalfConverter x:Key="HalfConverter"/>
<converter:IntToBoolConverter x:Key="IntToBoolConverter"/> <dd:IntToBoolConverter x:Key="IntToBoolConverter"/>
<ControlTemplate x:Key="StartStyle" TargetType="{x:Type ContentControl}"> <ControlTemplate x:Key="StartStyle" TargetType="{x:Type ContentControl}">
<Grid IsHitTestVisible="False"> <Grid IsHitTestVisible="False">

View File

@@ -1,10 +1,4 @@
using AIStudio.Wpf.DiagramHelper.Commands; using AIStudio.Wpf.DiagramDesigner;
using AIStudio.Wpf.DiagramHelper.Models;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Windows.Input;
using AIStudio.Wpf.DiagramDesigner;
namespace AIStudio.Wpf.SFC.ViewModels namespace AIStudio.Wpf.SFC.ViewModels
{ {
@@ -14,8 +8,21 @@ namespace AIStudio.Wpf.SFC.ViewModels
/// the popup to be cancelled without applying any changes to the calling ViewModel /// the popup to be cancelled without applying any changes to the calling ViewModel
/// whos data will be updated if the PopupWindow.xaml window is closed successfully /// whos data will be updated if the PopupWindow.xaml window is closed successfully
/// </summary> /// </summary>
public class SFCActionNodeData : TitleBindableBase public class SFCActionNodeData : BindableBase
{ {
private string _title;
public string Title
{
get
{
return _title;
}
set
{
SetProperty(ref _title, value);
}
}
public SFCActionNodeData(LinkPoint linkPoint, string expression) public SFCActionNodeData(LinkPoint linkPoint, string expression)
{ {
Title = "输出动作"; Title = "输出动作";

View File

@@ -1,7 +1,4 @@
using AIStudio.Wpf.DiagramHelper.Commands; using System.Collections.Generic;
using AIStudio.Wpf.DiagramHelper.Models;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel; using System.Collections.ObjectModel;
using System.Windows.Input; using System.Windows.Input;
using AIStudio.Wpf.DiagramDesigner; using AIStudio.Wpf.DiagramDesigner;
@@ -14,8 +11,20 @@ namespace AIStudio.Wpf.SFC.ViewModels
/// the popup to be cancelled without applying any changes to the calling ViewModel /// the popup to be cancelled without applying any changes to the calling ViewModel
/// whos data will be updated if the PopupWindow.xaml window is closed successfully /// whos data will be updated if the PopupWindow.xaml window is closed successfully
/// </summary> /// </summary>
public class SFCConditionNodeData : TitleBindableBase public class SFCConditionNodeData : BindableBase
{ {
private string _title;
public string Title
{
get
{
return _title;
}
set
{
SetProperty(ref _title, value);
}
}
public SFCConditionNodeData(IEnumerable<LinkPoint> linkPoint, string expression) public SFCConditionNodeData(IEnumerable<LinkPoint> linkPoint, string expression)
{ {
Title = "转移条件"; Title = "转移条件";
@@ -54,7 +63,7 @@ namespace AIStudio.Wpf.SFC.ViewModels
{ {
get get
{ {
return this._addCommand ?? (this._addCommand = new DelegateCommand<object>(para => this.AddExecuted(para))); return this._addCommand ?? (this._addCommand = new SimpleCommand(para => { return true; }, para => this.AddExecuted(para)));
} }
} }
@@ -63,7 +72,7 @@ namespace AIStudio.Wpf.SFC.ViewModels
{ {
get get
{ {
return this._deleteCommand ?? (this._deleteCommand = new DelegateCommand<object>(para => this.DeleteExecuted(para))); return this._deleteCommand ?? (this._deleteCommand = new SimpleCommand(para => { return true; }, para => this.DeleteExecuted(para)));
} }
} }

View File

@@ -4,8 +4,7 @@ using System.ComponentModel;
using System.Linq; using System.Linq;
using System.Windows.Media; using System.Windows.Media;
using AIStudio.Wpf.DiagramDesigner; using AIStudio.Wpf.DiagramDesigner;
using AIStudio.Wpf.DiagramHelper; using AIStudio.Wpf.DiagramDesigner.Services;
using AIStudio.Wpf.DiagramHelper.Services;
using AIStudio.Wpf.SFC.Models; using AIStudio.Wpf.SFC.Models;
namespace AIStudio.Wpf.SFC.ViewModels namespace AIStudio.Wpf.SFC.ViewModels

View File

@@ -1,13 +1,22 @@
using AIStudio.Wpf.DiagramHelper.Models; using AIStudio.Wpf.DiagramDesigner;
using System;
using System.Collections.Generic;
using System.Text;
using AIStudio.Wpf.DiagramDesigner;
namespace AIStudio.Wpf.SFC.ViewModels namespace AIStudio.Wpf.SFC.ViewModels
{ {
public class Simulate_SolenoidViewModelData : TitleBindableBase public class Simulate_SolenoidViewModelData : BindableBase
{ {
private string _title;
public string Title
{
get
{
return _title;
}
set
{
SetProperty(ref _title, value);
}
}
public Simulate_SolenoidViewModelData(LinkPoint dILinkPoint, LinkPoint dOLinkPoint) public Simulate_SolenoidViewModelData(LinkPoint dILinkPoint, LinkPoint dOLinkPoint)
{ {
Title = "阀门"; Title = "阀门";

View File

@@ -1,13 +1,22 @@
using AIStudio.Wpf.DiagramHelper.Models; using AIStudio.Wpf.DiagramDesigner;
using System;
using System.Collections.Generic;
using System.Text;
using AIStudio.Wpf.DiagramDesigner;
namespace AIStudio.Wpf.SFC.ViewModels namespace AIStudio.Wpf.SFC.ViewModels
{ {
public class Simulate_TankViewModelData : TitleBindableBase public class Simulate_TankViewModelData : BindableBase
{ {
private string _title;
public string Title
{
get
{
return _title;
}
set
{
SetProperty(ref _title, value);
}
}
public Simulate_TankViewModelData(LinkPoint linkPoint) public Simulate_TankViewModelData(LinkPoint linkPoint)
{ {
Title = "容器"; Title = "容器";