Пример #1
0
 internal WindowData(MainWindow window)
 {
     _window = window;
 }
Пример #2
0
        internal static async void KeyPress(this Canvas canvas, WindowData data, KeyEventArgs e, MainWindow mainWindow)
        {
            if (mainWindow.DragLeft || mainWindow.DragRight) return;
            if (data.RectangleHasFocus)
            {
                var step = 2;
                if (e.IsRepeat) step = 4;
                if (e.KeyboardDevice.IsKeyDown(Key.Back))
                {
                    await canvas.ChangeRectangle(data, -1);
                }
                if (e.KeyboardDevice.IsKeyDown(Key.Space))
                {
                    await canvas.ChangeRectangle(data, +1);
                }
                if (e.KeyboardDevice.IsKeyDown(Key.Left))
                {
                    data.FileList[data.FileIndex].Rectangles[data.RectangleIndex] = canvas.TransformRectangle(data.FileList[data.FileIndex].Rectangles[data.RectangleIndex], WindowData.Dimension.X, -step);
                }
                if (e.KeyboardDevice.IsKeyDown(Key.Right))
                {
                    data.FileList[data.FileIndex].Rectangles[data.RectangleIndex] = canvas.TransformRectangle(data.FileList[data.FileIndex].Rectangles[data.RectangleIndex], WindowData.Dimension.X, step);
                }
                if (e.KeyboardDevice.IsKeyDown(Key.Up))
                {
                    data.FileList[data.FileIndex].Rectangles[data.RectangleIndex] = canvas.TransformRectangle(data.FileList[data.FileIndex].Rectangles[data.RectangleIndex], WindowData.Dimension.Y, -step);
                }
                if (e.KeyboardDevice.IsKeyDown(Key.Down))
                {
                    data.FileList[data.FileIndex].Rectangles[data.RectangleIndex] = canvas.TransformRectangle(data.FileList[data.FileIndex].Rectangles[data.RectangleIndex], WindowData.Dimension.Y, step);
                }
                if (e.KeyboardDevice.IsKeyDown(Key.W))
                {
                    data.FileList[data.FileIndex].Rectangles[data.RectangleIndex] = canvas.TransformRectangle(data.FileList[data.FileIndex].Rectangles[data.RectangleIndex], WindowData.Dimension.Size, step);
                }
                if (e.KeyboardDevice.IsKeyDown(Key.S))
                {
                    data.FileList[data.FileIndex].Rectangles[data.RectangleIndex] = canvas.TransformRectangle(data.FileList[data.FileIndex].Rectangles[data.RectangleIndex], WindowData.Dimension.Size, -step);
                }
                if (e.KeyboardDevice.IsKeyDown(Key.Delete) && !e.IsRepeat)
                {
                    canvas.RemoveRectangle(data, data.FileIndex, data.RectangleIndex);

                    data.RectangleHasFocus = false;
                    canvas.LoadRectangles(data, data.FileIndex);
                    e.Handled = true;
                    return;
                }
            }
            else if (e.KeyboardDevice.IsKeyDown(Key.LeftCtrl) || e.KeyboardDevice.IsKeyDown(Key.RightCtrl) && e.KeyboardDevice.IsKeyDown(Key.Z) && !e.IsRepeat)
            {
                canvas.UndoRemoveRectangle(data, ref data.FileIndex, ref data.RectangleIndex);
                await canvas.LoadImage(data, data.FileIndex);
            }
            else if (!(e.Key == Key.Space || e.Key == Key.Back))
            {
                return;
            }
            data.RectangleIndex = Math.Min(Math.Max(data.RectangleIndex, 0), data.FileList[data.FileIndex].Rectangles.Count - 1);
            canvas.FocusRectangle(data, data.FileIndex, data.RectangleIndex);
            e.Handled = true;
        }