Revert "Revert "block 可以拖拽到内部,还有少量问题待解决""

This reverts commit fcd7beb193.
This commit is contained in:
艾竹
2023-06-11 23:58:22 +08:00
parent fcd7beb193
commit 5a9bcc03f3
73 changed files with 7132 additions and 242 deletions

View File

@@ -5,7 +5,7 @@
<dd:ColorBrushConverter x:Key="ColorBrushConverter" />
<dd:ConectorOrientationConverter x:Key="ConectorOrientationConverter" />
<dd:ConectorValueConverter x:Key="ConectorValueConverter"/>
<DataTemplate DataType="{x:Type dd:FullyCreatedConnectorInfo}">
<Grid Width="{Binding ConnectorWidth}" Height="{Binding ConnectorHeight}" Cursor="Cross">
<Grid.ContextMenu>
@@ -70,7 +70,7 @@
<!-- transparent extra space makes connector easier to hit -->
<Ellipse x:Name="outer" Fill="Transparent" Opacity="0.3" Margin="-3" />
<Ellipse x:Name="innter" Fill="{Binding ColorViewModel.FillColor,Converter={StaticResource ColorBrushConverter}}" StrokeThickness="1" Stroke="{Binding ColorViewModel.LineColor,Converter={StaticResource ColorBrushConverter}}" />
</Grid>
</Grid>
<Control x:Name="label">
<Control.Template>
@@ -115,7 +115,7 @@
<ControlTemplate>
<TextBlock x:Name="txtRight" FontSize="10" RenderTransformOrigin="0.5,0.5" TextTrimming="CharacterEllipsis">
<TextBlock.Text>
<MultiBinding Converter="{StaticResource ConectorValueConverter}">
<MultiBinding Converter="{StaticResource ConectorValueConverter}">
<Binding Path="." />
<Binding Path="ConnectorChanged" />
</MultiBinding>
@@ -158,6 +158,58 @@
</DataTemplate.Triggers>
</DataTemplate>
<DataTemplate DataType="{x:Type dd:ItemsContainerInfo}">
<Grid dd:WidthAndHeightProps.Active="True"
dd:WidthAndHeightProps.BoundActualWidth="{Binding ActualItemWidth,Mode=OneWayToSource}"
dd:WidthAndHeightProps.BoundActualHeight="{Binding ActualItemHeight,Mode=OneWayToSource}">
<Rectangle x:Name="innter"
Fill="{Binding ColorViewModel.FillColor,Converter={StaticResource ColorBrushConverter}}"
StrokeThickness="{Binding ColorViewModel.LineWidth}"
Stroke="{Binding ColorViewModel.LineColor,Converter={StaticResource ColorBrushConverter}}"
/>
</Grid>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding BeAttachTo}" Value="True">
<Setter TargetName="innter" Property="Margin" Value="-1" />
<Setter TargetName="innter" Property="Stroke" Value="#f73438" />
</DataTrigger>
<DataTrigger Binding="{Binding DisableAttachTo}" Value="True">
<Setter TargetName="innter" Property="Margin" Value="-1" />
<Setter TargetName="innter" Property="Stroke" Value="Gray" />
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
<!-- DragThumb Default Template -->
<Style TargetType="{x:Type dd:ItemsContainer}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type dd:ItemsContainer}">
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
Padding="{TemplateBinding Padding}">
<Grid>
<ContentPresenter
ContentSource="Border"
ContentTemplate="{TemplateBinding BorderTemplate}"
ContentTemplateSelector="{TemplateBinding BorderTemplateSelector}"
ContentStringFormat="{TemplateBinding BorderStringFormat}"/>
<ContentPresenter
x:Name="ContentPresenter"
Content="{TemplateBinding ContentControl.Content}"
ContentTemplate="{TemplateBinding ContentControl.ContentTemplate}"
ContentTemplateSelector="{TemplateBinding ContentControl.ContentTemplateSelector}"
ContentStringFormat="{TemplateBinding ContentControl.ContentStringFormat}">
</ContentPresenter>
</Grid>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!-- DragThumb Default Template -->
<Style TargetType="{x:Type c:DragThumb}">
<Setter Property="Template">
@@ -170,4 +222,5 @@
</Style>
</ResourceDictionary>

View File

@@ -12,6 +12,7 @@
<dd:NegativeConverter x:Key="NegativeConverter"/>
<dd:LineDashConverter x:Key="LineDashConverter"/>
<dd:DoubleToThickness x:Key="DoubleToThickness"/>
<dd:InvertBoolConverter x:Key="InvertBoolConverter"/>
<DataTemplate DataType="{x:Type dd:DefaultDesignerItemViewModel}">
<Grid IsHitTestVisible="False">
@@ -98,14 +99,72 @@
</DataTemplate>
<DataTemplate DataType="{x:Type dd:BlockDesignerItemViewModel}">
<Grid IsHitTestVisible="False">
<Rectangle StrokeThickness="1" Fill="{Binding ColorViewModel.FillColor,Converter={StaticResource ColorBrushConverter}}" Stroke="{Binding ColorViewModel.LineColor,Converter={StaticResource ColorBrushConverter}}" />
<Border x:Name="left" HorizontalAlignment="Left" Width="5" Background="Transparent"/>
</Grid>
<dd:BlockBorder>
<Grid x:Name="grid" MinWidth="{Binding MinItemWidth}" MinHeight="{Binding MinItemHeight}">
<Grid IsHitTestVisible="False">
<Rectangle StrokeThickness="1" Fill="{Binding ColorViewModel.FillColor,Converter={StaticResource ColorBrushConverter}}" Stroke="{Binding ColorViewModel.LineColor,Converter={StaticResource ColorBrushConverter}}" />
<Border x:Name="left" HorizontalAlignment="Left" Width="5" Background="Transparent"/>
<Control x:Name="PART_Text" IsHitTestVisible="{Binding IsReadOnlyText,Converter={StaticResource InvertBoolConverter}}">
<Control.Style>
<Style TargetType="Control">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Grid/>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding ShowText}" Value="True">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<dd:TextControl x:Name="PART_Text" />
</ControlTemplate>
</Setter.Value>
</Setter>
</DataTrigger>
<DataTrigger Binding="{Binding Text,Converter={StaticResource NotNullOrEmptyToBoolConverter}}" Value="True">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<dd:TextControl x:Name="PART_Text" />
</ControlTemplate>
</Setter.Value>
</Setter>
</DataTrigger>
<DataTrigger Binding="{Binding CustomText}" Value="True">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Grid/>
</ControlTemplate>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</Control.Style>
</Control>
</Grid>
<dd:ItemsContainer x:Name="contain"
Margin="20"
ParentPanel="{Binding ElementName=grid}"
GetOffSetFunc="{Binding FirstContain.GetOffSetFunc,Mode=OneWayToSource}"
Border="{Binding FirstContain}">
<ItemsControl x:Name="items" ItemsSource="{Binding FirstContain.Children}">
</ItemsControl>
</dd:ItemsContainer>
</Grid>
</dd:BlockBorder>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding IsSelected}" Value="true">
<Setter TargetName="left" Property="Background" Value="#3399FF"/>
</DataTrigger>
<DataTrigger Binding="{Binding FirstContain}" Value="{x:Null}">
<Setter TargetName="contain" Property="Visibility" Value="Collapsed"/>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>