コード例 #1
0
        public MainWindowViewModel()
        {
            this.settings = InkWriterSettings.Load();

            this.InkCanvas = new InkCanvas();
            this.InkCanvas.PreviewStylusDown += this.OnInkCanvasPreviewStylusDown;
            this.InkCanvas.StylusUp          += this.OnInkCanvasStylusUp;
            this.InkCanvas.Background         = Brushes.Black;
            this.InkCanvas.DefaultDrawingAttributes.Color      = Colors.LightGray;
            this.InkCanvas.DefaultDrawingAttributes.Width      = 1;
            this.InkCanvas.DefaultDrawingAttributes.FitToCurve = true;
            this.InkCanvas.PreviewMouseDown += this.OnInkCanvasPreviewMouseDown;
            this.InkCanvas.MouseMove        += this.OnInkCanvasMouseMove;
            this.InkCanvas.MouseUp          += this.OnInkCanvasMouseUp;
            this.InkCanvas.PreviewMouseUp   += this.OnInkCanvasPreviewMouseUp;
            this.InkCanvas.AllowDrop         = true;
            this.InkCanvas.Gesture          += this.HandleInkCanvasGesture;

            this.InkCanvas.EditingMode = InkCanvasEditingMode.None;

            this.GridType = GridType.None;

            string[] commandLineArgs = Environment.GetCommandLineArgs();
            if (commandLineArgs.Length == 2)
            {
                string filePath = commandLineArgs[1];
                if (File.Exists(filePath))
                {
                    this.document = InkWriterDocument.Load(filePath);
                }
            }

            this.document = new InkWriterDocument();
            this.document.Pages.Add(new Data.Page(this.document));

            this.document.PageChanged    += this.OnDocumentPageChanged;
            this.document.ActivePageIndex = this.document.Pages.Count - 1;

            this.NewPageCommand        = new NewPageCommand(this, this.document);
            this.FirstPageCommand      = new PageNavigationCommand(this, this.document, NavigationRequestType.First);
            this.NextPageCommand       = new PageNavigationCommand(this, this.document, NavigationRequestType.Next);
            this.PreviousPageCommand   = new PageNavigationCommand(this, this.document, NavigationRequestType.Previous);
            this.LastPageCommand       = new PageNavigationCommand(this, this.document, NavigationRequestType.Last);
            this.DeletePageCommand     = new DeletePageCommand(this, this.document);
            this.SaveDocumentCommand   = new SaveDocumentCommand(this.document);
            this.LoadDocumentCommand   = new LoadDocumentCommand(this);
            this.SelectColorCommand    = new SelectColorCommand(this);
            this.SelectWidthCommand    = new SelectWidthCommand(this);
            this.CapturePictureCommand = new CapturePictureCommand(this);
            this.ToggleGridCommand     = new ToggleGridCommand(this);

            this.CopyToClipboardCommand = new CopyToClipboardCommand(() =>
            {
                return(this.document?.ActivePage?.GetBitmap(null));
            });

            this.CloseApplicationCommand = new CloseApplicationCommand(this, this.document, this.settings);
            this.MinimizeWindowCommand   = new MinimizeWindowCommand(Application.Current.MainWindow);
            this.PrintCommand            = new PrintCommand(this.document);
        }
コード例 #2
0
        public void Execute(object parameter)
        {
            SearchPattern[] searchPatterns = new SearchPattern[]
            {
                new SearchPattern("InkWriter-Dateien (*.iwd)", "*.iwd"),
                new SearchPattern("Alle Dateien (*.*)", "*.*")
            };

            FileDialogResult result = FileDialog.Show("Open File...", searchPatterns, searchPatterns[0]);

            if (result.Result == FileDialogResultEnum.OK)
            {
                this.mainWindow.SetActiveDocument(InkWriterDocument.Load(result.SelectedFile));
            }
        }