source: trunk/CrypPlugins/Enigma/Rotor2.cs @ 2636

Last change on this file since 2636 was 2636, checked in by weyers, 11 years ago

Enigma Presentation first implementation attempt.

File size: 46.1 KB
Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using System.Windows;
6using System.Windows.Controls;
7using System.Windows.Data;
8using System.Windows.Documents;
9using System.Windows.Input;
10using System.Windows.Media;
11using System.Windows.Media.Imaging;
12using System.Windows.Navigation;
13using System.Windows.Shapes;
14using System.Windows.Media.Animation;
15using System.Threading;
16using System.Xaml;
17
18namespace Cryptool.Enigma
19{
20
21
22    class Rotor2 : Canvas
23    {
24        double width;
25        double height;
26        public readonly int map;
27        List<TextBlock> tebo = new List<TextBlock>();
28        List<TextBlock> tebo2 = new List<TextBlock>();
29        Line[] lines = new Line[26];
30        TextBlock custom = new TextBlock();
31        TextBlock custom2 = new TextBlock();
32        Canvas lineCanvas = new Canvas();
33        Line lineToAnimat = new Line();
34        Line lineToAnimat2 = new Line();
35        List<Line> lineTrash = new List<Line>();
36        TextBlock[] textBlockToAnimat = new TextBlock[2];
37        TextBlock[] textBlockToAnimat2 = new TextBlock[2];
38
39        public TextBlock iAm = new TextBlock();
40
41        public Boolean anomalie = false;
42
43        public double fast = 400;
44
45        public Boolean next = false;
46        Boolean rotated = false;
47        int nextint = 0;
48
49        public int[,] maparray = new int[26, 2];
50
51        int einsnext = 16;
52        int zweinext = 4;
53        int dreinext = 21;
54        int viernext = 9;
55        int fuenfnext = 25;
56
57        int[] eins = new int[] { 4, 10, 12, 5, 11, 6, 3, 16, 21, 25, 13, 19, 14, 22, 24, 7, 23, 20, 18, 15, 0, 8, 1, 17, 2, 9 };
58        int[] zwei = new int[] { 0, 9, 3, 10, 18, 8, 17, 20, 23, 1, 11, 7, 22, 19, 12, 2, 16, 6, 25, 13, 15, 24, 5, 21, 14, 4 };
59        int[] drei = new int[] { 1, 3, 5, 7, 9, 11, 2, 15, 17, 19, 23, 21, 25, 13, 24, 4, 8, 22, 6, 0, 10, 12, 20, 18, 16, 14 };
60        int[] vier = new int[] { 4, 18, 14, 21, 15, 25, 9, 0, 24, 16, 20, 8, 17, 7, 23, 11, 13, 5, 19, 6, 10, 3, 2, 12, 22, 1 };
61        int[] fuenf = new int[] { 21, 25, 1, 17, 6, 8, 19, 24, 20, 15, 18, 3, 13, 7, 11, 23, 0, 22, 12, 9, 16, 14, 5, 4, 2, 10 };
62
63
64
65
66
67        public int returnMap()
68        {
69            return map;
70        }
71
72        public Rotor2(int map, double width, double height)
73        {
74
75
76            StackPanel s = new StackPanel();
77            s.Orientation = Orientation.Vertical;
78
79            this.width = width;
80            this.height = height;
81            this.map = map;
82
83
84            this.Children.Add(alpha());
85        }
86
87        public int mapto(int x, Boolean off)
88        {
89
90
91            int help = 0;
92
93
94            lineToAnimat = lines[maparray[x, 0]];
95            textBlockToAnimat[0] = tebo[maparray[x, 0]];
96            textBlockToAnimat[1] = tebo2[maparray[x, 1]];
97            rotated = false;
98
99            if (off)
100            {
101                tebo[x].Background = Brushes.Green;
102                tebo2[maparray[x, 1]].Background = Brushes.Green;
103                //tebo[x].Text = "ä";
104                lines[x].Stroke = Brushes.Green;
105                lines[x].Opacity = 1.0;
106            }
107            return maparray[x, 1];
108        }
109
110        public int maptoreverse(int y, Boolean off)
111        {
112            int help = 0;
113            for (int x = 0; x < maparray.GetLength(0); x++)
114            {
115                if (maparray[x, 1] == y)
116                    help = x;
117
118            }
119
120            // tebo[help].Background = Brushes.Red;
121            //lines[help].Stroke = Brushes.Red;
122            //lines[help].Opacity = 1.0;
123
124            textBlockToAnimat2[1] = tebo2[maparray[y, 0]];
125            textBlockToAnimat2[0] = tebo[help];
126
127            lineToAnimat2 = lines[help];
128            if (off)
129            {
130                tebo2[y].Background = Brushes.Red;
131                tebo[help].Background = Brushes.Red;
132                //tebo[x].Text = "ä";
133                lines[help].Stroke = Brushes.Red;
134                lines[help].Opacity = 1.0;
135            }
136            return help;
137        }
138
139        public void startAnimation()
140        {
141
142            animateThisTebo(textBlockToAnimat[0], true);
143
144        }
145
146        public void startAnimationReverse()
147        {
148
149            animateThisTebo2(textBlockToAnimat2[1], true);
150
151
152        }
153
154        private void helpNextAnimationMethod13(object sender, EventArgs e)
155        {
156            animateThisLine2(lineToAnimat2);
157        }
158
159        private void helpNextAnimationMethod14(object sender, EventArgs e)
160        {
161            helpNextAnimation2(this, EventArgs.Empty);
162        }
163
164        private void helpNextAnimationMethod1(object sender, EventArgs e)
165        {
166            animateThisLine(lineToAnimat);
167        }
168
169        private void helpNextAnimationMethod12(object sender, EventArgs e)
170        {
171            helpNextAnimation(this, EventArgs.Empty);
172        }
173
174        private void helpNextAnimationMethod2(object sender, EventArgs e)
175        {
176            animateThisTebo2(textBlockToAnimat2[0], false);
177
178
179        }
180
181        private void helpNextAnimationMethod(object sender, EventArgs e)
182        {
183            animateThisTebo(textBlockToAnimat[1], false);
184
185        }
186
187        public event EventHandler helpNextAnimation;
188        public event EventHandler helpNextAnimation2;
189
190
191
192        private void animateThisTebo(TextBlock tebo, Boolean b)
193        {
194            SolidColorBrush brush = new SolidColorBrush();
195            brush.Color = Colors.Transparent;
196
197            ColorAnimation colorAni = new ColorAnimation();
198            string s = tebo.Text;
199            colorAni.From = Colors.Gainsboro;
200            if (tebo.Background == Brushes.Silver)
201                colorAni.From = Colors.Silver;
202            colorAni.To = Colors.YellowGreen;
203            colorAni.Duration = new Duration(TimeSpan.FromMilliseconds(fast));
204            if (b)
205                colorAni.Completed += helpNextAnimationMethod1;
206            else
207                colorAni.Completed += helpNextAnimationMethod12;
208
209            tebo.Background = brush;
210            //  tebo.Background = Brushes.HotPink;
211            brush.BeginAnimation(SolidColorBrush.ColorProperty, colorAni);
212        }
213
214        private void animateThisTebo2(TextBlock tebo, Boolean b)
215        {
216            SolidColorBrush brush = new SolidColorBrush();
217            brush.Color = Colors.Transparent;
218
219            ColorAnimation colorAni = new ColorAnimation();
220            string s = tebo.Text;
221            colorAni.From = Colors.Gainsboro;
222            if (tebo.Background == Brushes.Silver)
223                colorAni.From = Colors.Silver;
224            colorAni.To = Colors.Tomato;
225            colorAni.Duration = new Duration(TimeSpan.FromMilliseconds(fast));
226
227            if (b)
228                colorAni.Completed += helpNextAnimationMethod13;
229            else
230                colorAni.Completed += helpNextAnimationMethod14;
231
232            tebo.Background = brush;
233
234            brush.BeginAnimation(SolidColorBrush.ColorProperty, colorAni);
235        }
236
237        private void animateThisLine2(Line l)
238        {
239
240
241
242            Line l1 = new Line();
243
244            Canvas.SetLeft(l, Canvas.GetLeft(l));
245
246            Canvas.SetTop(l, Canvas.GetTop(l));
247
248            l1.StrokeThickness = 5.0;
249            l1.Stroke = Brushes.Tomato;
250
251
252            l1.X1 = l.X2;
253            l1.X2 = l.X2;
254            DoubleAnimation mydouble1 = new DoubleAnimation();
255            if (rotated)
256            {
257                l1.Y1 = l.Y2 - 30;
258                l1.Y2 = l.Y2 - 30;
259
260
261                mydouble1.From = l.Y2 - 30;
262                mydouble1.To = l.Y1 - 30;
263                double abst = Math.Sqrt(Math.Pow(l.X2 - l.X1, 2) + Math.Pow(l.Y2 - l.Y1, 2));
264                if (abst == 0)
265                    abst = 1;
266
267                mydouble1.Duration = new Duration(TimeSpan.FromMilliseconds((abst * fast)));
268
269            }
270            else
271            {
272                l1.Y1 = l.Y2;
273                l1.Y2 = l.Y2;
274
275
276                mydouble1.From = l.Y2;
277                mydouble1.To = l.Y1;
278                mydouble1.Duration = new Duration(TimeSpan.FromMilliseconds((fast)));
279
280            }
281
282            DoubleAnimation mydouble = new DoubleAnimation();
283            mydouble.From = l.X2;
284            mydouble.To = l.X1;
285            mydouble.Duration = new Duration(TimeSpan.FromMilliseconds((fast)));
286            mydouble.Completed += helpNextAnimationMethod2;
287
288
289            lineCanvas.Children.Add(l1);
290
291            l1.BeginAnimation(Line.X2Property, mydouble);
292            l1.BeginAnimation(Line.Y2Property, mydouble1);
293
294            lineTrash.Add(l1);
295        }
296
297        private void animateThisLine(Line l)
298        {
299
300            //resetColors();
301
302            Line l1 = new Line();
303
304            Canvas.SetLeft(l, Canvas.GetLeft(l));
305
306            Canvas.SetTop(l, Canvas.GetTop(l));
307
308            l1.StrokeThickness = 5.0;
309            l1.Stroke = Brushes.LawnGreen;
310
311
312            l1.X1 = l.X1;
313            l1.X2 = l.X1;
314            DoubleAnimation mydouble1 = new DoubleAnimation();
315            if (rotated)
316            {
317                l1.Y1 = l.Y1 - 30;
318                l1.Y2 = l.Y1 - 30;
319
320
321                mydouble1.From = l.Y1 - 30;
322                mydouble1.To = l.Y2 - 30;
323
324                double abst = Math.Sqrt(Math.Pow(l.X2 - l.X1, 2) + Math.Pow(l.Y2 - l.Y1, 2));
325                if (abst == 0)
326                    abst = 1;
327                mydouble1.Duration = new Duration(TimeSpan.FromMilliseconds((abst * fast)));
328
329            }
330            else
331            {
332                l1.Y1 = l.Y1;
333                l1.Y2 = l.Y1;
334
335
336                mydouble1.From = l.Y1;
337                mydouble1.To = l.Y2;
338                mydouble1.Duration = new Duration(TimeSpan.FromMilliseconds((fast)));
339
340            }
341
342            DoubleAnimation mydouble = new DoubleAnimation();
343            mydouble.From = l.X1;
344            mydouble.To = l.X2;
345            mydouble.Duration = new Duration(TimeSpan.FromMilliseconds((fast)));
346            mydouble.Completed += helpNextAnimationMethod;
347
348
349            lineCanvas.Children.Add(l1);
350
351            l1.BeginAnimation(Line.X2Property, mydouble);
352            l1.BeginAnimation(Line.Y2Property, mydouble1);
353
354            lineTrash.Add(l1);
355        }
356
357        public void coloring(Brush brush, int x)
358        {
359
360        }
361
362
363
364        private void helpdownererclick(object sender, EventArgs e)
365        {
366
367            DoubleAnimation mydouble = new DoubleAnimation();
368            mydouble.From = 30.0;
369            mydouble.To = 60.0;
370            mydouble.Duration = new Duration(TimeSpan.FromMilliseconds((0)));
371            //mydouble.RepeatBehavior = RepeatBehavior.Forever;
372
373            DoubleAnimation mydouble1 = new DoubleAnimation();
374            mydouble1.From = -30.0;
375            mydouble1.To = 0.0;
376            mydouble1.Duration = new Duration(TimeSpan.FromMilliseconds((0)));
377            //mydouble1.RepeatBehavior = RepeatBehavior.Forever;
378            DoubleAnimation mydouble3 = new DoubleAnimation();
379            mydouble3.From = 0.0;
380            mydouble3.To = 1.0;
381            mydouble3.Duration = new Duration(TimeSpan.FromMilliseconds((0)));
382
383            DoubleAnimation mydouble4 = new DoubleAnimation();
384            mydouble4.From = 0.0;
385            mydouble4.To = 1.0;
386            mydouble4.Duration = new Duration(TimeSpan.FromMilliseconds((fast)));
387
388            custom.BeginAnimation(OpacityProperty, mydouble4);
389
390            tebo[25].BeginAnimation(OpacityProperty, mydouble3);
391            tebo2[25].BeginAnimation(OpacityProperty, mydouble3);
392
393            stack.Children.RemoveAt(0);
394            stack1.Children.RemoveAt(0);
395
396
397            stack.BeginAnimation(Canvas.TopProperty, mydouble);
398            stack1.BeginAnimation(Canvas.TopProperty, mydouble);
399            lineCanvas.BeginAnimation(Canvas.TopProperty, mydouble1);
400
401
402            char c = custom.Text[0];
403            int ix = (int)c - 65;
404            if (ix > 0)
405                ix = ix - 1;
406            else
407                ix = 25;
408
409
410            custom.Text = Convert.ToChar(ix + 65) + "";
411
412            TextBlock dummy = tebo[25];
413            tebo.RemoveAt(25);
414            tebo.Insert(0, dummy);
415
416            TextBlock dummy2 = tebo2[25];
417            tebo2.RemoveAt(25);
418            tebo2.Insert(0, dummy2);
419
420            stack.Children.RemoveAt(25);
421            stack.Children.Insert(0, dummy);
422
423
424            stack1.Children.RemoveAt(25);
425            stack1.Children.Insert(0, dummy2);
426
427            derotate();
428            b = true;
429        }
430
431        private void downerclick(object sender, EventArgs e)
432        {
433            if (b)
434            {
435                resetColors();
436                b = false;
437                DoubleAnimation mydouble = new DoubleAnimation();
438                mydouble.From = 31.0;
439                mydouble.To = 60.0;
440                mydouble.Duration = new Duration(TimeSpan.FromMilliseconds((fast)));
441                //mydouble.RepeatBehavior = RepeatBehavior.Forever;
442
443                DoubleAnimation mydouble1 = new DoubleAnimation();
444                mydouble1.From = 0.0;
445                mydouble1.To = 30.0;
446                mydouble1.Duration = new Duration(TimeSpan.FromMilliseconds((fast)));
447                //mydouble1.RepeatBehavior = RepeatBehavior.Forever;
448
449                DoubleAnimation mydouble2 = new DoubleAnimation();
450                mydouble2.From = 0.0;
451                mydouble2.To = 1.0;
452                mydouble2.Duration = new Duration(TimeSpan.FromMilliseconds((fast)));
453
454
455
456                DoubleAnimation mydouble3 = new DoubleAnimation();
457                mydouble3.From = 1.0;
458                mydouble3.To = 0.0;
459                mydouble3.Duration = new Duration(TimeSpan.FromMilliseconds((fast)));
460
461                DoubleAnimation mydouble4 = new DoubleAnimation();
462                mydouble4.From = 850.0;
463                mydouble4.To = 50.0;
464                mydouble4.Duration = new Duration(TimeSpan.FromMilliseconds((fast)));
465
466                mydouble1.Completed += helpdownererclick;
467                TextBlock dummy = cloneTextBlock(tebo[25]);
468
469                TextBlock dummy2 = cloneTextBlock(tebo2[25]);
470
471
472                Line l = new Line();
473                l = this.cloneLine(lines[0]);
474
475                //stack.Children.Add(dummy);
476                stack.Children.Insert(0, dummy);
477                //stack1.Children.Add(dummy2);
478                stack1.Children.Insert(0, dummy2);
479                tebo[25].BeginAnimation(OpacityProperty, mydouble3);
480                tebo2[25].BeginAnimation(OpacityProperty, mydouble3);
481                custom.BeginAnimation(OpacityProperty, mydouble3);
482
483                dummy.BeginAnimation(OpacityProperty, mydouble2);
484                dummy2.BeginAnimation(OpacityProperty, mydouble2);
485
486                lines[25].BeginAnimation(Line.Y1Property, mydouble4);
487
488                for (int i = 0; i < maparray.GetLength(0); i++)
489                    if (maparray[i, 1] == 25)
490                        lines[i].BeginAnimation(Line.Y2Property, mydouble4);
491
492                stack.BeginAnimation(Canvas.TopProperty, mydouble);
493
494                stack1.BeginAnimation(Canvas.TopProperty, mydouble);
495
496                lineCanvas.BeginAnimation(Canvas.TopProperty, mydouble1);
497            }
498        }
499
500
501        private void helpdownererclick1(object sender, EventArgs e)
502        {
503
504            DoubleAnimation mydouble = new DoubleAnimation();
505            mydouble.From = 30.0;
506            mydouble.To = 60.0;
507            mydouble.Duration = new Duration(TimeSpan.FromMilliseconds((0)));
508            //mydouble.RepeatBehavior = RepeatBehavior.Forever;
509
510            DoubleAnimation mydouble1 = new DoubleAnimation();
511            mydouble1.From = -30.0;
512            mydouble1.To = 0.0;
513            mydouble1.Duration = new Duration(TimeSpan.FromMilliseconds((0)));
514            //mydouble1.RepeatBehavior = RepeatBehavior.Forever;
515            DoubleAnimation mydouble3 = new DoubleAnimation();
516            mydouble3.From = 0.0;
517            mydouble3.To = 1.0;
518            mydouble3.Duration = new Duration(TimeSpan.FromMilliseconds((0)));
519
520            DoubleAnimation mydouble4 = new DoubleAnimation();
521            mydouble4.From = 0.0;
522            mydouble4.To = 1.0;
523            mydouble4.Duration = new Duration(TimeSpan.FromMilliseconds((fast)));
524
525            custom2.BeginAnimation(OpacityProperty, mydouble4);
526
527            tebo[25].BeginAnimation(OpacityProperty, mydouble3);
528            //tebo2[25].BeginAnimation(OpacityProperty, mydouble3);
529
530            stack.Children.RemoveAt(0);
531            //stack1.Children.RemoveAt(0);
532
533
534            stack.BeginAnimation(Canvas.TopProperty, mydouble);
535            //stack1.BeginAnimation(Canvas.TopProperty, mydouble);
536            lineCanvas.BeginAnimation(Canvas.TopProperty, mydouble1);
537
538            TextBlock dummy = tebo[25];
539            tebo.RemoveAt(25);
540            tebo.Insert(0, dummy);
541
542            stack.Children.RemoveAt(25);
543            stack.Children.Insert(0, dummy);
544
545
546            int x = Int32.Parse(custom2.Text);
547            if (x != 26)
548                custom2.Text = "" + (x + 1);
549            else
550                custom2.Text = 1 + "";
551
552
553            derotate();
554            for (int i = 0; i < tebo.Count; i++)
555            {
556                if (tebo[i].FontWeight == FontWeights.UltraBold)
557                {
558                    if (i == 0)
559                    {
560                        tebo[25].Foreground = Brushes.Red;
561                        tebo[25].FontWeight = FontWeights.UltraBold;
562                        tebo[0].FontWeight = FontWeights.Normal;
563                        tebo[0].Foreground = Brushes.Black;
564                        break;
565                    }
566                    else if (i <= 25 && i > 0)
567                    {
568                        tebo[i - 1].Foreground = Brushes.Red;
569                        tebo[i - 1].FontWeight = FontWeights.UltraBold;
570                        tebo[i].FontWeight = FontWeights.Normal;
571                        tebo[i].Foreground = Brushes.Black;
572                    }
573
574                }
575            }
576            b = true;
577        }
578
579        public void downerclick1(object sender, EventArgs e)
580        {
581            if (b)
582            {
583                resetColors();
584                b = false;
585                DoubleAnimation mydouble = new DoubleAnimation();
586                mydouble.From = 31.0;
587                mydouble.To = 60.0;
588                mydouble.Duration = new Duration(TimeSpan.FromMilliseconds((fast)));
589                //mydouble.RepeatBehavior = RepeatBehavior.Forever;
590
591                DoubleAnimation mydouble1 = new DoubleAnimation();
592                mydouble1.From = 0.0;
593                mydouble1.To = 30.0;
594                mydouble1.Duration = new Duration(TimeSpan.FromMilliseconds((fast)));
595                //mydouble1.RepeatBehavior = RepeatBehavior.Forever;
596
597                DoubleAnimation mydouble2 = new DoubleAnimation();
598                mydouble2.From = 0.0;
599                mydouble2.To = 1.0;
600                mydouble2.Duration = new Duration(TimeSpan.FromMilliseconds((fast)));
601
602
603
604                DoubleAnimation mydouble3 = new DoubleAnimation();
605                mydouble3.From = 1.0;
606                mydouble3.To = 0.0;
607                mydouble3.Duration = new Duration(TimeSpan.FromMilliseconds((fast)));
608
609                DoubleAnimation mydouble4 = new DoubleAnimation();
610                mydouble4.From = 850.0;
611                mydouble4.To = 50.0;
612                mydouble4.Duration = new Duration(TimeSpan.FromMilliseconds((fast)));
613
614                mydouble1.Completed += helpdownererclick1;
615                TextBlock dummy = cloneTextBlock(tebo[25]);
616
617                TextBlock dummy2 = cloneTextBlock(tebo2[25]);
618
619
620                Line l = new Line();
621                l = this.cloneLine(lines[0]);
622
623                //stack.Children.Add(dummy);
624                stack.Children.Insert(0, dummy);
625                //stack1.Children.Add(dummy2);
626                //stack1.Children.Insert(0, dummy2);
627                tebo[25].BeginAnimation(OpacityProperty, mydouble3);
628                //tebo2[25].BeginAnimation(OpacityProperty, mydouble3);
629                custom2.BeginAnimation(OpacityProperty, mydouble3);
630
631                dummy.BeginAnimation(OpacityProperty, mydouble2);
632                //dummy2.BeginAnimation(OpacityProperty, mydouble2);
633
634                lines[25].BeginAnimation(Line.Y1Property, mydouble4);
635
636                for (int i = 0; i < maparray.GetLength(0); i++)
637                    if (maparray[i, 1] == 25)
638                        lines[i].BeginAnimation(Line.Y2Property, mydouble4);
639
640                stack.BeginAnimation(Canvas.TopProperty, mydouble);
641
642                //stack1.BeginAnimation(Canvas.TopProperty, mydouble);
643
644                lineCanvas.BeginAnimation(Canvas.TopProperty, mydouble1);
645            }
646
647        }
648
649
650        public void derotate()
651        {
652
653
654
655            next = false;
656            if (tebo2[0].Text[0] == Convert.ToChar(nextint + 65))
657            {
658                next = true;
659            }
660            //int dummy = maparray[0,0];
661            int dummy1 = maparray[25, 1];
662
663            for (int i = 25; i > 0; i--)
664            {
665                //  maparray[i,0] = maparray[i + 1, 0];
666                if (maparray[i - 1, 1] == 25)
667                    maparray[i, 1] = 0;
668                else
669                    maparray[i, 1] = maparray[i - 1, 1] + 1;
670            }
671
672            //maparray[maparray.GetLength(0) - 1, 0] = dummy;
673            if (dummy1 == 25)
674                maparray[0, 1] = 0;
675            else
676                maparray[0, 1] = dummy1 + 1;
677
678
679
680
681
682            foreach (Line l in lines)
683            {
684                lineCanvas.Children.Remove(l);
685            }
686            for (int i = 0; i < 26; i++)
687            {
688                Line t1 = new Line();
689                t1.X1 = 170;
690                t1.Y1 = 29.4 * i + 75;
691                t1.Opacity = 0.5;
692                t1.X2 = 30;
693                t1.Y2 = 0;
694
695                t1.Stroke = Brushes.Black;
696
697                t1.Y2 = 29.4 * maparray[i, 1] + 75;
698
699                lines[i] = t1;
700                lineCanvas.Children.Add(t1);
701            }
702        }
703
704        private void helpupperclick(object sender, EventArgs e)
705        {
706
707            DoubleAnimation mydouble = new DoubleAnimation();
708            mydouble.From = 30.0;
709            mydouble.To = 60.0;
710            mydouble.Duration = new Duration(TimeSpan.FromMilliseconds((0)));
711            //mydouble.RepeatBehavior = RepeatBehavior.Forever;
712
713            DoubleAnimation mydouble1 = new DoubleAnimation();
714            mydouble1.From = -30.0;
715            mydouble1.To = 0.0;
716            mydouble1.Duration = new Duration(TimeSpan.FromMilliseconds((0)));
717            //mydouble1.RepeatBehavior = RepeatBehavior.Forever;
718
719            DoubleAnimation mydouble3 = new DoubleAnimation();
720            mydouble3.From = 0.0;
721            mydouble3.To = 1.0;
722            mydouble3.Duration = new Duration(TimeSpan.FromMilliseconds((0)));
723            tebo[0].BeginAnimation(OpacityProperty, mydouble3);
724            tebo2[0].BeginAnimation(OpacityProperty, mydouble3);
725
726            DoubleAnimation mydouble4 = new DoubleAnimation();
727            mydouble4.From = 0.0;
728            mydouble4.To = 1.0;
729            mydouble4.Duration = new Duration(TimeSpan.FromMilliseconds((fast)));
730
731            custom.BeginAnimation(OpacityProperty, mydouble4);
732
733            //stack.Children.RemoveAt(26);
734            //stack1.Children.RemoveAt(26);
735
736
737            stack.BeginAnimation(Canvas.TopProperty, mydouble);
738            stack1.BeginAnimation(Canvas.TopProperty, mydouble);
739            lineCanvas.BeginAnimation(Canvas.TopProperty, mydouble1);
740
741
742            char c = custom.Text[0];
743            int ix = (int)c - 65;
744            ix = (ix + 1) % 26;
745
746            custom.Text = Convert.ToChar(ix + 65) + "";
747
748            TextBlock dummy = cloneTextBlock(tebo[0]);
749            tebo.RemoveAt(0);
750            tebo.Add((TextBlock)stack.Children[26]);
751            //tebo.Insert(25, dummy);
752
753            TextBlock dummy2 = cloneTextBlock(tebo2[0]);
754            tebo2.RemoveAt(0);
755            tebo2.Add((TextBlock)stack1.Children[26]);
756            //tebo2.Insert(25,dummy2);
757
758            stack.Children.RemoveAt(0);
759            //stack.Children.Add(dummy);
760
761            stack1.Children.RemoveAt(0);
762            //stack1.Children.Add(dummy2);
763
764
765
766            rotate();
767
768            b = true;
769
770        }
771        Boolean b = true;
772        public void upperclick(object sender, EventArgs e)
773        {
774            //int dummy = maparray[0,0];
775
776            if (b)
777            {
778                int dummy1 = maparray[0, 1];
779
780
781                for (int i = 0; i < maparray.GetLength(0) - 1; i++)
782                {
783                    //  maparray[i,0] = maparray[i + 1, 0];
784                    if (maparray[i + 1, 1] == 0)
785                        maparray[i, 1] = 25;
786                    else
787                        maparray[i, 1] = maparray[i + 1, 1] - 1;
788                }
789
790                //maparray[maparray.GetLength(0) - 1, 0] = dummy;
791                if (dummy1 == 0)
792                    maparray[maparray.GetLength(0) - 1, 1] = 25;
793                else
794                    maparray[maparray.GetLength(0) - 1, 1] = dummy1 - 1;
795
796
797                resetColors();
798                b = false;
799                DoubleAnimation mydouble = new DoubleAnimation();
800                mydouble.From = 60.0;
801                mydouble.To = 31.0;
802                mydouble.Duration = new Duration(TimeSpan.FromMilliseconds((fast)));
803                //mydouble.RepeatBehavior = RepeatBehavior.Forever;
804
805                DoubleAnimation mydouble1 = new DoubleAnimation();
806                mydouble1.From = 0.0;
807                mydouble1.To = -30.0;
808                mydouble1.Duration = new Duration(TimeSpan.FromMilliseconds((fast)));
809                //mydouble1.RepeatBehavior = RepeatBehavior.Forever;
810
811                DoubleAnimation mydouble2 = new DoubleAnimation();
812                mydouble2.From = 0.0;
813                mydouble2.To = 1.0;
814                mydouble2.Duration = new Duration(TimeSpan.FromMilliseconds((fast)));
815
816                DoubleAnimation mydouble3 = new DoubleAnimation();
817                mydouble3.From = 1.0;
818                mydouble3.To = 0.0;
819                mydouble3.Duration = new Duration(TimeSpan.FromMilliseconds((fast)));
820
821                DoubleAnimation mydouble4 = new DoubleAnimation();
822                mydouble4.From = 75;
823                mydouble4.To = 850.0;
824                mydouble4.Duration = new Duration(TimeSpan.FromMilliseconds((fast)));
825
826                mydouble1.Completed += helpupperclick;
827                TextBlock dummy = cloneTextBlock(tebo[0]);
828
829                TextBlock dummy2 = cloneTextBlock(tebo2[0]);
830
831
832
833
834                Line l = new Line();
835                l = this.cloneLine(lines[0]);
836
837                stack.Children.Add(dummy);
838                stack1.Children.Add(dummy2);
839                tebo[0].BeginAnimation(OpacityProperty, mydouble3);
840                tebo2[0].BeginAnimation(OpacityProperty, mydouble3);
841                custom.BeginAnimation(OpacityProperty, mydouble3);
842
843                dummy.BeginAnimation(OpacityProperty, mydouble2);
844                dummy2.BeginAnimation(OpacityProperty, mydouble2);
845
846                lines[0].BeginAnimation(Line.Y1Property, mydouble4);
847
848                for (int i = 0; i < maparray.GetLength(0); i++)
849                    if (maparray[i, 1] == 25)
850                        if (i + 1 != 26)
851                            lines[i + 1].BeginAnimation(Line.Y2Property, mydouble4);
852                        else
853                            lines[0].BeginAnimation(Line.Y2Property, mydouble4);
854
855
856                stack.BeginAnimation(Canvas.TopProperty, mydouble);
857
858                stack1.BeginAnimation(Canvas.TopProperty, mydouble);
859
860                lineCanvas.BeginAnimation(Canvas.TopProperty, mydouble1);
861            }
862        }
863
864        private Line cloneLine(Line l)
865        {
866            Line l1 = new Line();
867            l1.Stroke = l.Stroke;
868            l1.X1 = l.X1;
869            l1.X2 = l.X2;
870            l1.Y1 = l.Y1;
871            l1.Y2 = l.Y2;
872            return l1;
873        }
874
875        private TextBlock cloneTextBlock(TextBlock t)
876        {
877            TextBlock dummy = new TextBlock();
878            dummy.Text = t.Text;
879            dummy.Background = t.Background;
880            dummy.Height = t.Height;
881            dummy.Width = t.Width;
882            dummy.FontSize = t.FontSize;
883            dummy.TextAlignment = t.TextAlignment;
884            dummy.Foreground = t.Foreground;
885            dummy.FontWeight = t.FontWeight;
886            return dummy;
887        }
888        private void helpupperclick1(object sender, EventArgs e)
889        {
890            DoubleAnimation mydouble = new DoubleAnimation();
891            mydouble.From = 30.0;
892            mydouble.To = 60.0;
893            mydouble.Duration = new Duration(TimeSpan.FromMilliseconds((0)));
894            //mydouble.RepeatBehavior = RepeatBehavior.Forever;
895
896            DoubleAnimation mydouble1 = new DoubleAnimation();
897            mydouble1.From = -30.0;
898            mydouble1.To = 0.0;
899            mydouble1.Duration = new Duration(TimeSpan.FromMilliseconds((0)));
900            //mydouble1.RepeatBehavior = RepeatBehavior.Forever;
901
902            DoubleAnimation mydouble3 = new DoubleAnimation();
903            mydouble3.From = 0.0;
904            mydouble3.To = 1.0;
905            mydouble3.Duration = new Duration(TimeSpan.FromMilliseconds((0)));
906            tebo[0].BeginAnimation(OpacityProperty, mydouble3);
907            tebo2[0].BeginAnimation(OpacityProperty, mydouble3);
908
909            DoubleAnimation mydouble4 = new DoubleAnimation();
910            mydouble4.From = 0.0;
911            mydouble4.To = 1.0;
912            mydouble4.Duration = new Duration(TimeSpan.FromMilliseconds((fast)));
913
914            custom2.BeginAnimation(OpacityProperty, mydouble4);
915
916            stack.Children.RemoveAt(26);
917            //stack1.Children.RemoveAt(26);
918
919
920            stack.BeginAnimation(Canvas.TopProperty, mydouble);
921            stack1.BeginAnimation(Canvas.TopProperty, mydouble);
922            lineCanvas.BeginAnimation(Canvas.TopProperty, mydouble1);
923
924            TextBlock dummy = tebo[0];
925            tebo.RemoveAt(0);
926            tebo.Add(dummy);
927
928            stack.Children.RemoveAt(0);
929            stack.Children.Add(dummy);
930
931           
932            int x = Int32.Parse(custom2.Text);
933            if (x != 1)
934                custom2.Text = "" + (x - 1);
935            else
936                custom2.Text = 26 + "";
937
938
939            //int dummy = maparray[0,0];
940            int dummy1 = maparray[0, 1];
941
942
943            for (int i = 0; i < maparray.GetLength(0) - 1; i++)
944            {
945                //  maparray[i,0] = maparray[i + 1, 0];
946                if (maparray[i + 1, 1] == 0)
947                    maparray[i, 1] = 25;
948                else
949                    maparray[i, 1] = maparray[i + 1, 1] - 1;
950            }
951
952            //maparray[maparray.GetLength(0) - 1, 0] = dummy;
953            if (dummy1 == 0)
954                maparray[maparray.GetLength(0) - 1, 1] = 25;
955            else
956                maparray[maparray.GetLength(0) - 1, 1] = dummy1 - 1;
957
958            rotate();
959
960            for (int i = tebo.Count - 1; i > -1; i--)
961            {
962                if (tebo[i].FontWeight == FontWeights.UltraBold)
963                {
964                    if (i == 0)
965                    {
966                        tebo[0].Foreground = Brushes.Red;
967                        tebo[0].FontWeight = FontWeights.UltraBold;
968                        tebo[1].FontWeight = FontWeights.Normal;
969                        tebo[1].Foreground = Brushes.Black;
970                    }
971                    else if (i != 25)
972                    {
973                        tebo[i + 1].Foreground = Brushes.Red;
974                        tebo[i + 1].FontWeight = FontWeights.UltraBold;
975                        tebo[i].FontWeight = FontWeights.Normal;
976                        tebo[i].Foreground = Brushes.Black;
977                    }
978
979                    else
980                    {
981                        tebo[0].Foreground = Brushes.Red;
982                        tebo[0].FontWeight = FontWeights.UltraBold;
983                        tebo[25].FontWeight = FontWeights.Normal;
984                        tebo[25].Foreground = Brushes.Black;
985
986                    }
987                }
988            }
989            b = true;
990        }
991
992        public void upperclick1(object sender, EventArgs e)
993        {
994
995            if (b)
996            {
997
998                resetColors();
999                b = false;
1000                DoubleAnimation mydouble = new DoubleAnimation();
1001                mydouble.From = 60.0;
1002                mydouble.To = 31.0;
1003                mydouble.Duration = new Duration(TimeSpan.FromMilliseconds((fast)));
1004                //mydouble.RepeatBehavior = RepeatBehavior.Forever;
1005
1006                DoubleAnimation mydouble1 = new DoubleAnimation();
1007                mydouble1.From = 0.0;
1008                mydouble1.To = -30.0;
1009                mydouble1.Duration = new Duration(TimeSpan.FromMilliseconds((fast)));
1010                //mydouble1.RepeatBehavior = RepeatBehavior.Forever;
1011
1012                DoubleAnimation mydouble2 = new DoubleAnimation();
1013                mydouble2.From = 0.0;
1014                mydouble2.To = 1.0;
1015                mydouble2.Duration = new Duration(TimeSpan.FromMilliseconds((fast)));
1016
1017                DoubleAnimation mydouble3 = new DoubleAnimation();
1018                mydouble3.From = 1.0;
1019                mydouble3.To = 0.0;
1020                mydouble3.Duration = new Duration(TimeSpan.FromMilliseconds((fast)));
1021
1022                DoubleAnimation mydouble4 = new DoubleAnimation();
1023                mydouble4.From = 100.0;
1024                mydouble4.To = 850.0;
1025                mydouble4.Duration = new Duration(TimeSpan.FromMilliseconds((fast)));
1026
1027                mydouble1.Completed += helpupperclick1;
1028                TextBlock dummy = cloneTextBlock(tebo[0]);
1029
1030                TextBlock dummy2 = cloneTextBlock(tebo2[0]);
1031
1032
1033
1034
1035                Line l = new Line();
1036                l = this.cloneLine(lines[0]);
1037
1038                stack.Children.Add(dummy);
1039                //stack1.Children.Add(dummy2);
1040                tebo[0].BeginAnimation(OpacityProperty, mydouble3);
1041                //tebo2[0].BeginAnimation(OpacityProperty, mydouble3);
1042                custom2.BeginAnimation(OpacityProperty, mydouble3);
1043
1044                dummy.BeginAnimation(OpacityProperty, mydouble2);
1045                //dummy2.BeginAnimation(OpacityProperty, mydouble2);
1046
1047                lines[0].BeginAnimation(Line.Y1Property, mydouble4);
1048
1049                for (int i = 0; i < maparray.GetLength(0); i++)
1050                    if (maparray[i, 1] == 0)
1051                        lines[i].BeginAnimation(Line.Y2Property, mydouble4);
1052
1053                stack.BeginAnimation(Canvas.TopProperty, mydouble);
1054
1055                //stack1.BeginAnimation(Canvas.TopProperty, mydouble);
1056
1057                lineCanvas.BeginAnimation(Canvas.TopProperty, mydouble1);
1058
1059            }
1060        }
1061
1062        public void rotate()
1063        {
1064
1065            next = false;
1066            rotated = true;
1067            if (tebo2[0].Text[0] == Convert.ToChar(nextint + 65))
1068            {
1069                next = true;
1070            }
1071
1072            foreach (Line l in lines)
1073            {
1074                lineCanvas.Children.Remove(l);
1075            }
1076
1077            for (int i = 0; i < 26; i++)
1078            {
1079                Line t1 = new Line();
1080                t1.X1 = 170;
1081                t1.Y1 = 29.4 * i + 75;
1082                t1.Opacity = 0.5;
1083                t1.X2 = 30;
1084                t1.Y2 = 0;
1085
1086                t1.Stroke = Brushes.Black;
1087
1088                t1.Y2 = 29.4 * maparray[i, 1] + 75;
1089
1090                lines[i] = t1;
1091                lineCanvas.Children.Add(t1);
1092            }
1093
1094        }
1095
1096        public void resetColors()
1097        {
1098            foreach (Line l in lineTrash)
1099                lineCanvas.Children.Remove(l);
1100
1101            lineTrash.Clear();
1102
1103
1104            if (Int32.Parse(tebo[0].Text) % 2 == 0)
1105                for (int i = 0; i < tebo.Count; i++)
1106                {
1107                    tebo[i].Background = Brushes.Silver;
1108
1109                    if (i % 2 == 0)
1110                        tebo[i].Background = Brushes.Gainsboro;
1111
1112
1113                }
1114            else
1115                for (int i = 0; i < tebo.Count; i++)
1116                {
1117                    tebo[i].Background = Brushes.Gainsboro;
1118
1119                    if (i % 2 == 0)
1120                        tebo[i].Background = Brushes.Silver;
1121                }
1122
1123            if ((int)tebo2[0].Text[0] % 2 == 0)
1124                for (int i = 0; i < tebo2.Count; i++)
1125                {
1126                    tebo2[i].Background = Brushes.Silver;
1127
1128                    if (i % 2 == 0)
1129                        tebo2[i].Background = Brushes.Gainsboro;
1130
1131
1132                }
1133            else
1134                for (int i = 0; i < tebo.Count; i++)
1135                {
1136                    tebo2[i].Background = Brushes.Gainsboro;
1137
1138                    if (i % 2 == 0)
1139                        tebo2[i].Background = Brushes.Silver;
1140                }
1141
1142
1143
1144            for (int i = 0; i < lines.GetLength(0); i++)
1145            {
1146                lines[i].Stroke = Brushes.Black;
1147                lines[i].Opacity = 0.5;
1148                if (i % 2 == 0)
1149                    lines[i].Stroke = Brushes.Black;
1150            }
1151
1152            System.GC.Collect();
1153        }
1154
1155
1156        StackPanel stack = new StackPanel();
1157        StackPanel stack1 = new StackPanel();
1158        StackPanel stack2 = new StackPanel();
1159
1160
1161        private Canvas alpha()
1162        {
1163
1164            Rectangle myRectangle = new Rectangle();
1165            myRectangle.Width = 200;
1166            myRectangle.Height = 890;
1167
1168            myRectangle.RadiusX = 15;
1169            myRectangle.RadiusY = 15;
1170
1171            myRectangle.Fill = Brushes.LightSteelBlue;
1172            myRectangle.Stroke = Brushes.Silver;
1173            myRectangle.StrokeThickness = 30;
1174
1175            Rectangle walzeDisplay = new Rectangle();
1176            walzeDisplay.Width = 50;
1177            walzeDisplay.Height = 50;
1178
1179            walzeDisplay.RadiusX = 5;
1180            walzeDisplay.RadiusY = 5;
1181
1182            walzeDisplay.Fill = Brushes.Silver;
1183            walzeDisplay.Stroke = Brushes.Silver;
1184            walzeDisplay.StrokeThickness = 30;
1185
1186
1187            stack.Orientation = Orientation.Vertical;
1188
1189
1190            stack1.Orientation = Orientation.Vertical;
1191
1192
1193            stack2.Orientation = Orientation.Horizontal;
1194
1195            Canvas.SetTop(stack1, 60);
1196            Canvas.SetLeft(stack1, 0);
1197
1198
1199            Canvas.SetTop(stack, 60);
1200            Canvas.SetLeft(stack, 170);
1201
1202            Canvas temp = new Canvas();
1203
1204            temp.Children.Add(walzeDisplay);
1205
1206            temp.Children.Add(myRectangle);
1207            temp.Children.Add(lineCanvas);
1208
1209            for (int i = 0; i < 26; i++)
1210            {
1211                TextBlock t = new TextBlock();
1212                t.Text = "" + (i + 1);
1213                t.Width = 29.4;
1214                t.Height = 29.4;
1215
1216
1217                t.FontSize = 20;
1218                t.Background = Brushes.Gainsboro;
1219                t.TextAlignment = TextAlignment.Center;
1220                if (i % 2 == 0)
1221                    t.Background = Brushes.Silver;
1222                if (i == 0)
1223                {
1224                    t.FontWeight = FontWeights.UltraBold;
1225                    t.Foreground = Brushes.OrangeRed;
1226                    t.FontSize = 22;
1227
1228                }
1229
1230
1231                stack.Children.Add(t);
1232
1233                tebo.Add(t);
1234
1235                TextBlock t2 = new TextBlock();
1236                t2.Text = "" + Convert.ToChar(i + 65);
1237                t2.Width = 29.4;
1238                t2.Height = 29.4;
1239
1240
1241                t2.FontSize = 20;
1242                t2.Background = Brushes.Gainsboro;
1243                t2.TextAlignment = TextAlignment.Center;
1244                if (i % 2 == 0)
1245                    t2.Background = Brushes.Silver;
1246
1247
1248
1249                stack1.Children.Add(t2);
1250
1251                tebo2.Add(t2);
1252
1253                Line t1 = new Line();
1254                t1.X1 = 170;
1255                t1.Y1 = 29.4 * i + 75;
1256                t1.Opacity = 0.5;
1257                t1.X2 = 30;
1258                t1.Y2 = 0;
1259
1260                t1.Stroke = Brushes.Black;
1261
1262
1263
1264                maparray[i, 0] = i;
1265                switch (map)
1266                {
1267                    case 1:
1268                        maparray[i, 1] = eins[i];
1269                        t1.Y2 = 29.4 * eins[i] + 75;
1270                        iAm.Text = "I";
1271                        nextint = einsnext;
1272                        break;
1273
1274                    case 2:
1275                        maparray[i, 1] = zwei[i];
1276                        t1.Y2 = 29.4 * zwei[i] + 75;
1277                        nextint = zweinext;
1278                        iAm.Text = "II";
1279                        break;
1280                    case 3:
1281                        maparray[i, 1] = drei[i];
1282                        t1.Y2 = 29.4 * drei[i] + 75;
1283                        nextint = dreinext;
1284                        iAm.Text = "III";
1285                        break;
1286                    case 4:
1287                        maparray[i, 1] = vier[i];
1288                        t1.Y2 = 29.4 * vier[i] + 75;
1289                        nextint = viernext;
1290                        iAm.Text = "IV";
1291                        break;
1292                    case 5:
1293                        maparray[i, 1] = fuenf[i];
1294                        t1.Y2 = 29.4 * fuenf[i] + 75;
1295                        nextint = fuenfnext;
1296                        iAm.Text = "V";
1297                        if (i == 0)
1298                        {
1299                            t2.Foreground = Brushes.OrangeRed;
1300                            t2.FontWeight = FontWeights.UltraBold;
1301                            t2.FontSize = 22;
1302                        }
1303                        break;
1304
1305                }
1306                lines[i] = t1;
1307
1308
1309
1310                if (i == nextint + 1)
1311                {
1312                    t2.FontWeight = FontWeights.UltraBold;
1313                    t2.Foreground = Brushes.OrangeRed;
1314                    t2.FontSize = 22;
1315                }
1316
1317
1318                lineCanvas.Children.Add(t1);
1319            }
1320
1321            temp.Children.Add(stack1);
1322            temp.Children.Add(stack);
1323
1324            Button up = new Button();
1325            up.Click += upperclick;
1326            up.Height = 50;
1327            up.Width = 50;
1328            up.Content = "UP";
1329            Canvas.SetLeft(up, 25);
1330            Canvas.SetTop(up, 5);
1331
1332            Button down = new Button();
1333            down.Click += downerclick;
1334            down.Height = 50;
1335            down.Width = 50;
1336            down.Content = "Down";
1337            Canvas.SetLeft(down, 125);
1338            Canvas.SetTop(down, 5);
1339
1340            custom.Text = "A";
1341
1342            custom.Height = 50;
1343            custom.Width = 50;
1344            custom.FontSize = 40;
1345            custom.TextAlignment = TextAlignment.Center;
1346            Canvas.SetLeft(custom, 75);
1347            Canvas.SetTop(custom, 5);
1348
1349
1350
1351            Rectangle k = new Rectangle();
1352            k.RadiusX = 5;
1353            k.RadiusY = 5;
1354            k.Height = 40;
1355            k.Width = 40;
1356            k.Opacity = 1.0;
1357            k.StrokeThickness = 3.0;
1358            k.Stroke = Brushes.RoyalBlue;
1359            k.Fill = Brushes.Silver;
1360            Canvas.SetTop(k, 13);
1361            Canvas.SetLeft(k, 80);
1362
1363            temp.Children.Add(k);
1364
1365            Rectangle k1 = new Rectangle();
1366            k1.RadiusX = 5;
1367            k1.RadiusY = 5;
1368            k1.Height = 30;
1369            k1.Width = 30;
1370            k1.Opacity = 1.0;
1371            k1.StrokeThickness = 3.0;
1372            k1.Stroke = Brushes.RoyalBlue;
1373            //k.Fill = Brushes.DimGray;
1374            Canvas.SetTop(k1, 60);
1375            Canvas.SetLeft(k1, 0);
1376
1377            temp.Children.Add(k1);
1378
1379
1380
1381
1382
1383            Line lx = new Line();
1384            lx.X1 = 100;
1385            lx.Y1 = 54;
1386            lx.Opacity = 1;
1387            lx.X2 = 100;
1388            lx.Y2 = 70;
1389            lx.StrokeThickness = 3.0;
1390            lx.Stroke = Brushes.RoyalBlue;
1391
1392            temp.Children.Add(lx);
1393
1394            Line lx1 = new Line();
1395            lx1.X1 = 100;
1396            lx1.Y1 = 70;
1397            lx1.Opacity = 1;
1398            lx1.X2 = 30;
1399            lx1.Y2 = 70;
1400            lx1.StrokeThickness = 3.0;
1401            lx1.Stroke = Brushes.RoyalBlue;
1402
1403            temp.Children.Add(lx1);
1404
1405            temp.Children.Add(custom);
1406            temp.Children.Add(up);
1407            temp.Children.Add(down);
1408
1409            Button up1 = new Button();
1410            up1.Click += upperclick1;
1411            up1.Height = 50;
1412            up1.Width = 50;
1413            up1.Content = "UP";
1414            Canvas.SetLeft(up1, 25);
1415            Canvas.SetTop(up1, 830);
1416
1417            Button down1 = new Button();
1418            down1.Click += downerclick1;
1419            down1.Height = 50;
1420            down1.Width = 50;
1421            down1.Content = "Down";
1422            Canvas.SetTop(down1, 830);
1423            Canvas.SetLeft(down1, 125);
1424
1425            custom2.Text = "1";
1426
1427            custom2.Height = 50;
1428            custom2.Width = 50;
1429            custom2.FontSize = 40;
1430            custom2.TextAlignment = TextAlignment.Center;
1431
1432            Canvas.SetLeft(custom2, 75);
1433            Canvas.SetTop(custom2, 830);
1434
1435            temp.Children.Add(custom2);
1436            temp.Children.Add(up1);
1437            temp.Children.Add(down1);
1438
1439
1440            iAm.Height = 50;
1441            iAm.Width = 50;
1442            iAm.FontSize = 30;
1443            iAm.TextAlignment = TextAlignment.Center;
1444            Canvas.SetLeft(iAm, -30);
1445            Canvas.SetTop(iAm, 5);
1446            iAm.Background = Brushes.Orange;
1447            iAm.Uid = "" + map;
1448            temp.Children.Add(iAm);
1449
1450            return temp;
1451        }
1452    }
1453}
Note: See TracBrowser for help on using the repository browser.