Skip to content

Commit c659304

Browse files
committed
fix for form and Zindex
1 parent 9786a21 commit c659304

File tree

9 files changed

+26
-14
lines changed

9 files changed

+26
-14
lines changed

SimpleStateMachineNodeEditor/Styles/Colors.xaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44

55
<!--#region -->
66
<!--#endregion-->
7-
<!--white-->
8-
<SolidColorBrush x:Key="ColorConnector" Color="White"/>
7+
<!--White-->
8+
<SolidColorBrush x:Key="ColorConnector" Color="Red"/>
99

1010
<!--#region Node-->
1111

SimpleStateMachineNodeEditor/View/ViewConnect.xaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77
mc:Ignorable="d"
88
d:DesignHeight="450" d:DesignWidth="800" IsHitTestVisible="False">
99
<Grid>
10-
<Path x:Name="Path" StrokeDashCap="Round" StrokeLineJoin="Round" Stroke="{StaticResource ColorConnector}">
10+
<Path x:Name="Path" StrokeDashCap="Round" StrokeLineJoin="Round" Stroke="{StaticResource ColorConnector}" StrokeEndLineCap="Round" StrokeStartLineCap="Round">
1111
<Path.Data>
12-
<PathGeometry x:Name="PathGeometry" >
12+
<PathGeometry x:Name="PathGeometry">
1313
<PathFigure x:Name="PathFigure" IsClosed="False">
1414
<BezierSegment x:Name="BezierSegment"/>
1515
</PathFigure>

SimpleStateMachineNodeEditor/View/ViewConnect.xaml.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ private void SetupBinding()
4949
{
5050
this.WhenActivated(disposable =>
5151
{
52-
Canvas.SetZIndex((UIElement)this.VisualParent, this.ViewModel.FromConnector.NodesCanvas.Nodes.Count);
52+
5353
// Цвет линии
5454
this.OneWayBind(this.ViewModel, x => x.Stroke, x => x.Path.Stroke).DisposeWith(disposable);
5555

@@ -69,6 +69,8 @@ private void SetupBinding()
6969

7070
this.OneWayBind(this.ViewModel, x => x.StrokeThickness, x => x.Path.StrokeThickness).DisposeWith(disposable);
7171

72+
this.WhenAnyValue(x => x.ViewModel.ToConnector).Where(x=>x!=null).Subscribe(_ => UpdateZindex()).DisposeWith(disposable);
73+
7274
});
7375
}
7476
#endregion SetupBinding
@@ -81,6 +83,10 @@ private void SetupEvents()
8183

8284
});
8385
}
86+
private void UpdateZindex()
87+
{
88+
Canvas.SetZIndex((UIElement)this.VisualParent, this.ViewModel.ToConnector.Node.Zindex);
89+
}
8490

8591
#endregion SetupEvents
8692
}

SimpleStateMachineNodeEditor/View/ViewCutter.xaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,5 @@
1414
<TranslateTransform x:Name="Translate"/>
1515
</TransformGroup>
1616
</UserControl.RenderTransform>
17-
<Line x:Name="Line" Fill="White" Stroke="Red" HorizontalAlignment="Left" VerticalAlignment="Top" StrokeDashArray="10, 3" StrokeDashCap="Round"/>
17+
<Line x:Name="Line" Fill="White" Stroke="Red" HorizontalAlignment="Left" VerticalAlignment="Top" StrokeDashArray="10, 3" StrokeDashCap="Round" StrokeEndLineCap="Round" StrokeStartLineCap="Round"/>
1818
</UserControl>

SimpleStateMachineNodeEditor/View/ViewNode.xaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
55
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
66
xmlns:local="clr-namespace:SimpleStateMachineNodeEditor.View"
7-
mc:Ignorable="d" Focusable="True" AllowDrop="True" Visibility="Visible">
8-
7+
mc:Ignorable="d" Focusable="True" AllowDrop="True" Visibility="Visible">
8+
99
<Border x:Name="Border" CornerRadius="5,5,5,5" BorderThickness="1,1,1,1" HorizontalAlignment="Left" VerticalAlignment="Top" MinWidth="80" Background="{DynamicResource ColorNodeBody}" >
1010
<StackPanel Margin="0,0,0,5">
1111
<TextBox Name="Header" VerticalAlignment="Top" VerticalContentAlignment="Center" Style="{DynamicResource NodeHeaderStyle}" BorderBrush="{x:Null}" HorizontalContentAlignment="Center" BorderThickness="0" Padding="10,2" Foreground="{DynamicResource ColorNodeText}" />

SimpleStateMachineNodeEditor/View/ViewNode.xaml.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ private void SetupBinding()
5454
{
5555
this.WhenActivated(disposable =>
5656
{
57-
Canvas.SetZIndex((UIElement)this.VisualParent,this.ViewModel.NodesCanvas.Nodes.Count);
57+
Canvas.SetZIndex((UIElement)this.VisualParent,this.ViewModel.Zindex);
5858

5959
//BorderBrush (Рамка вокруг узла)
6060
this.OneWayBind(this.ViewModel, x => x.BorderBrush, x => x.Border.BorderBrush).DisposeWith(disposable);

SimpleStateMachineNodeEditor/View/ViewNodesCanvas.xaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
<DataTemplate DataType="{x:Type ViewModel:ViewModelConnect}">
3434
<View:ViewConnect ViewModel="{Binding}"/>
3535
</DataTemplate>
36-
<DataTemplate DataType="{x:Type ViewModel:ViewModelNode}">
36+
<DataTemplate DataType="{x:Type ViewModel:ViewModelNode}">
3737
<View:ViewNode ViewModel="{Binding}" />
3838
</DataTemplate>
3939
</ItemsControl.Resources>

SimpleStateMachineNodeEditor/View/ViewRightConnector.xaml.cs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ private void SetupBinding()
5353
{
5454
this.WhenActivated(disposable =>
5555
{
56+
Canvas.SetZIndex((UIElement)this.VisualParent, this.ViewModel.Node.Zindex+2);
5657

5758
this.ViewModel.FormFill = Application.Current.Resources["ColorRightConnectorEllipseEnableBackground"] as SolidColorBrush;
5859
this.ViewModel.FormStroke = Application.Current.Resources["ColorRightConnectorEllipseEnableBorder"] as SolidColorBrush;
@@ -162,6 +163,7 @@ void UpdatePositionConnectPoin()
162163
{
163164

164165
Point positionConnectPoint;
166+
MyPoint Position;
165167
//Если отображается
166168
if (this.IsVisible)
167169
{
@@ -174,16 +176,20 @@ void UpdatePositionConnectPoin()
174176
//Получаем позицию центру на канвасе
175177
positionConnectPoint = this.TransformToAncestor(NodesCanvas).Transform(positionConnectPoint);
176178

179+
Position = MyPoint.CreateFromPoint(positionConnectPoint) / this.ViewModel.NodesCanvas.Scale.Value;
180+
177181
}
178182
else
179183
{
180184
//Позиция выхода
181185
positionConnectPoint = this.ViewModel.Node.Output.PositionConnectPoint.Value;
186+
187+
Position = MyPoint.CreateFromPoint(positionConnectPoint);
182188
}
183189

184190

185-
MyPoint Position = MyPoint.CreateFromPoint(positionConnectPoint);
186-
this.ViewModel.PositionConnectPoint.Set(Position / this.ViewModel.NodesCanvas.Scale.Value);
191+
192+
this.ViewModel.PositionConnectPoint.Set(Position);
187193
}
188194

189195
//void UpdatePosition()

SimpleStateMachineNodeEditor/ViewModel/ViewModelNode.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ public class ViewModelNode : ReactiveValidationObject<ViewModelNode>
9191
/// </summary>
9292
[Reactive] public ViewModelNodesCanvas NodesCanvas { get; set; }
9393

94-
[Reactive] public int Zindex { get; set; }
94+
public int Zindex { get; private set; }
9595

9696
/// <summary>
9797
/// Список переходов
@@ -106,7 +106,7 @@ public ViewModelNode(ViewModelNodesCanvas nodesCanvas)
106106
//this.WhenAnyValue(x=>x.Name).Subscribe()
107107
this.WhenAnyValue(x => x.Selected).Subscribe(value => { this.BorderBrush = value ? Brushes.Red : Brushes.LightGray; });
108108
this.WhenAnyValue(x => x.Point1.Value, x => x.Size).Subscribe(_ => UpdatePoint2());
109-
109+
Zindex = nodesCanvas.Nodes.Count;
110110
SetupConnectors();
111111
SetupCommands();
112112
}

0 commit comments

Comments
 (0)