Commit ec7e1c69981e8cd83d3f3d25df3e52fda2694041

Authored by toan
1 parent 2105531904
Exists in master

2063 : Commit source

Showing 5 changed files with 134 additions and 24 deletions Side-by-side Diff

sources/RoboforkApp/RoboforkMenu.xaml
... ... @@ -64,19 +64,17 @@
64 64 FontSize="17"
65 65 Name="VehicleAddTree"
66 66 Selected="GetVehicleAddTree"
67   - Unselected="SetVehicleAddTree">
  67 + Unselected="btnMenu_UnselectedSet" Tag="VehicleAddTree">
68 68 </TreeViewItem>
69 69 <TreeViewItem Header="--------------------">
70 70 </TreeViewItem>
71 71 </TreeViewItem>
72 72  
73   - <TreeViewItem Header="Work"
74   - FontSize="17">
75   - <TreeViewItem Header="Task patterm [FK15_#1]"
76   - FontSize="17"
  73 + <TreeViewItem Header="Work" FontSize="17">
  74 + <TreeViewItem Header="Task patterm [FK15_#1]" FontSize="17"
77 75 Name="TaskpattermTree"
78   - Selected="GetTaskpattermTree"
79   - Unselected="SetTaskpattermTree">
  76 + Selected="btnMenu_Selected"
  77 + Unselected="btnMenu_UnselectedSet" Tag="TaskpattermTree">
80 78 </TreeViewItem>
81 79 <TreeViewItem Header="[+]"
82 80 FontSize="17"
sources/RoboforkApp/RoboforkMenu.xaml.cs
... ... @@ -84,6 +84,9 @@
84 84  
85 85 DoBeginSetSchedule();
86 86 break;
  87 + case "TaskpattermTree":
  88 + DoBeginTask();
  89 + break;
87 90 default:
88 91 break;
89 92 }
... ... @@ -146,6 +149,11 @@
146 149 default:
147 150 break;
148 151 }
  152 + }
  153 +
  154 + private void DoBeginTask()
  155 + {
  156 + MyScheduleCanvas.CreateSimulation();
149 157 }
150 158  
151 159 private void DoBeginSetAutoNotes()
sources/RoboforkApp/ScheduleCanvas.cs
... ... @@ -6,32 +6,55 @@
6 6 using System.Windows;
7 7 using System.Windows.Controls;
8 8 using System.Windows.Media;
  9 +using System.Windows.Media.Animation;
9 10 using System.Windows.Shapes;
10 11  
11 12 namespace RoboforkApp
12 13 {
13 14 public class ScheduleCanvas : Canvas
14 15 {
15   - // Add variable for Set Schedule
16   - private Path pScheduleNode = new Path();
17   - private Path pScheduleLine = new Path();
18   - private GeometryGroup gGrpScheduleNode = new GeometryGroup();
19   - private GeometryGroup gGrpScheduleLine = new GeometryGroup();
  16 + private simulationRobo simulation;
20 17  
21   - public void DrawRoute(List<ucNode> listNode)
  18 + public void CreateSimulation()
22 19 {
23   - //Update after
24   - }
  20 + if(simulation != null || this.Children.Count < 2)
  21 + {
  22 + return;
  23 + }
25 24  
26   - private void CreateNode(Point point, int indexNode)
27   - {
28   - ucNode _ucNode = new ucNode();
29   - _ucNode.btnWidth = 20.0;
30   - _ucNode.btnHeight = 20.0;
31   - _ucNode.txtNode = indexNode.ToString();
32   - Canvas.SetLeft(_ucNode, point.X);
33   - Canvas.SetTop(_ucNode, point.Y);
34   - this.Children.Add(_ucNode);
  25 + PathGeometry animationPath = new PathGeometry();
  26 + PathFigure pFigure = new PathFigure();
  27 + pFigure.StartPoint = new Point(50, 65);
  28 + LineSegment lineSegment = new LineSegment();
  29 + lineSegment.Point = new Point(1270, 65);
  30 + pFigure.Segments.Add(lineSegment);
  31 + animationPath.Figures.Add(pFigure);
  32 +
  33 + // Freeze the PathGeometry for performance benefits.
  34 + animationPath.Freeze();
  35 +
  36 + // Create a MatrixAnimationUsingPath to move the
  37 + // button along the path by animating
  38 + // its MatrixTransform.
  39 + MatrixAnimationUsingPath matrixAnimation = new MatrixAnimationUsingPath();
  40 + matrixAnimation.PathGeometry = animationPath;
  41 + matrixAnimation.Duration = TimeSpan.FromSeconds(10);
  42 + //matrixAnimation.RepeatBehavior = RepeatBehavior.Forever;
  43 + matrixAnimation.AutoReverse = false;
  44 + matrixAnimation.DoesRotateWithTangent = true;
  45 +
  46 + // Set the animation to target the Matrix property
  47 + // of the MatrixTransform named "ButtonMatrixTransform".
  48 + Storyboard.SetTargetName(matrixAnimation, "fl");
  49 + Storyboard.SetTargetProperty(matrixAnimation, new PropertyPath(MatrixTransform.MatrixProperty));
  50 +
  51 + // Create a Storyboard to contain and apply the animation.
  52 + Storyboard pathAnimationStoryboard = new Storyboard();
  53 + pathAnimationStoryboard.Children.Add(matrixAnimation);
  54 +
  55 + simulation = new simulationRobo();
  56 + simulation.storyBoard = pathAnimationStoryboard;
  57 + this.Children.Add(simulation);
35 58 }
36 59 }
37 60 }
sources/RoboforkApp/UserControls/simulationRobo.xaml
  1 +<UserControl x:Class="RoboforkApp.simulationRobo"
  2 + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3 + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4 + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  5 + xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  6 + mc:Ignorable="d"
  7 + x:Name="SimulationRobo">
  8 + <Path Name="smuliRobo" Stroke="Orange" StrokeThickness="2" Fill="Orange" RenderTransformOrigin="0.5,0.5" Margin="0,0">
  9 + <Path.Effect>
  10 + <DropShadowEffect BlurRadius="20" Opacity="0.5" ShadowDepth="4" />
  11 + </Path.Effect>
  12 + <Path.Data>
  13 + <PathGeometry>
  14 + <PathGeometry.Figures>
  15 + <PathFigure StartPoint="0,0" IsClosed="True">
  16 + <LineSegment Point="40,0"/>
  17 + <LineSegment Point="60,15"/>
  18 + <LineSegment Point="40,30"/>
  19 + <LineSegment Point="0,30"/>
  20 + </PathFigure>
  21 + </PathGeometry.Figures>
  22 + </PathGeometry>
  23 + </Path.Data>
  24 +
  25 + <Path.RenderTransform>
  26 + <TransformGroup>
  27 + <MatrixTransform x:Name="fl">
  28 + <MatrixTransform.Matrix>
  29 + <Matrix />
  30 + </MatrixTransform.Matrix>
  31 + </MatrixTransform>
  32 + </TransformGroup>
  33 + </Path.RenderTransform>
  34 +
  35 + <Path.Triggers>
  36 + <EventTrigger RoutedEvent="FrameworkElement.Loaded">
  37 + <BeginStoryboard Storyboard="{Binding storyBoard, ElementName=SimulationRobo}" >
  38 + </BeginStoryboard>
  39 + </EventTrigger>
  40 + </Path.Triggers>
  41 + </Path>
  42 +</UserControl>
sources/RoboforkApp/UserControls/simulationRobo.xaml.cs
  1 +using System;
  2 +using System.Collections.Generic;
  3 +using System.Linq;
  4 +using System.Text;
  5 +using System.Threading.Tasks;
  6 +using System.Windows;
  7 +using System.Windows.Controls;
  8 +using System.Windows.Data;
  9 +using System.Windows.Documents;
  10 +using System.Windows.Input;
  11 +using System.Windows.Media;
  12 +using System.Windows.Media.Animation;
  13 +using System.Windows.Media.Imaging;
  14 +using System.Windows.Navigation;
  15 +using System.Windows.Shapes;
  16 +
  17 +namespace RoboforkApp
  18 +{
  19 + /// <summary>
  20 + /// Interaction logic for simulationRobo.xaml
  21 + /// </summary>
  22 + public partial class simulationRobo : UserControl
  23 + {
  24 + public static readonly DependencyProperty storyBoardProperty =
  25 + DependencyProperty.Register("storyBoard", typeof(Storyboard),
  26 + typeof(simulationRobo), new FrameworkPropertyMetadata(new Storyboard()));
  27 +
  28 + public simulationRobo()
  29 + {
  30 + InitializeComponent();
  31 + }
  32 +
  33 + public Storyboard storyBoard
  34 + {
  35 + get { return (Storyboard)GetValue(storyBoardProperty); }
  36 + set { SetValue(storyBoardProperty, value); }
  37 + }
  38 + }
  39 +}