private async void MyLoadFileButton_Click(object sender, RoutedEventArgs e)
        {
            FileOpenPicker picker = new FileOpenPicker();

            picker.SuggestedStartLocation = PickerLocationId.Desktop;
            picker.ViewMode = PickerViewMode.List;
            picker.FileTypeFilter.Add("*");

            StorageFile file = await picker.PickSingleFileAsync();

            if (file == null)
            {
                return;
            }

            mySketch = await SketchTools.XmlToSketch(file, PEN_VISUALS);

            MyInkStrokes.Clear();
            MyInkStrokes.AddStrokes(mySketch.Strokes);
        }
        private void MyTransformDataButton_Click(object sender, RoutedEventArgs e)
        {
            if (mySketch == null || MyInkStrokes.GetStrokes().Count == 0)
            {
                return;
            }

            Sketch sketch = null;

            MyInkStrokes.Clear();
            sketch = SketchTools.Clone(mySketch);

            if (!MyResampleToggle.IsOn && !MyScaleToggle.IsOn && !MyTranslateToggle.IsOn && !MyFrameToggle.IsOn)
            {
                MyInkStrokes.AddStrokes(sketch.Strokes);
                return;
            }

            if (MyResampleToggle.IsOn)
            {
                int n = int.Parse(MyResampleCountTextBox.Text);

                sketch = SketchTransformation.Resample(sketch, n);
            }

            if (MyScaleToggle.IsOn)
            {
                double size = double.Parse(MyScaleSizeTextBox.Text);

                if (MyScaleSquareRadio.IsChecked.Value)
                {
                    sketch = SketchTransformation.ScaleSquare(sketch, size);
                }
                else if (MyScaleProportionalRadio.IsChecked.Value)
                {
                    sketch = SketchTransformation.ScaleProportional(sketch, size);
                }
                else if (MyScaleFrameRadio.IsChecked.Value)
                {
                    sketch = SketchTransformation.ScaleFrame(sketch, size);
                }
            }

            if (MyTranslateToggle.IsOn)
            {
                Point k = new Point(MyInkCanvas.ActualWidth / 2, MyInkCanvas.ActualHeight / 2);

                if (MyTranslateCentroidRadio.IsChecked.Value)
                {
                    sketch = SketchTransformation.TranslateCentroid(sketch, k);
                }
                else if (MyTranslateMedianRadio.IsChecked.Value)
                {
                    sketch = SketchTransformation.TranslateMedian(sketch, k);
                }
                else if (MyTranslateFrameRadio.IsChecked.Value)
                {
                    sketch = SketchTransformation.TranslateFrame(sketch, k);
                }
            }

            if (MyFrameToggle.IsOn)
            {
                List <InkStroke> frameStrokes = GetFrameStrokes(sketch);
                sketch.Strokes.AddRange(frameStrokes);
            }

            MyInkStrokes.AddStrokes(sketch.Strokes);
        }