public ImageEditorWindow() { InitializeComponent(); if (DataContext is ImageEditorViewModel vm) { vm.ObserveProperty(M => M.TransformedBitmap) .Subscribe(M => UpdateInkCanvas()); vm.InkCanvas = InkCanvas; vm.Window = this; InkCanvas.Strokes.StrokesChanged += (S, E) => { var item = new StrokeHistory(); item.Added.AddRange(E.Added); item.Removed.AddRange(E.Removed); vm.AddInkHistory(item); }; void SelectionMovingOrResizing(object Sender, InkCanvasSelectionEditingEventArgs Args) { vm.AddSelectHistory(new SelectHistory { NewRect = Args.NewRectangle, OldRect = Args.OldRectangle, Selection = InkCanvas.GetSelectedStrokes() }); } InkCanvas.SelectionMoving += SelectionMovingOrResizing; InkCanvas.SelectionResizing += SelectionMovingOrResizing; var inkCanvasVm = vm.InkCanvasViewModel; inkCanvasVm .SelectedColor .Subscribe(M => InkCanvas.DefaultDrawingAttributes.Color = M); inkCanvasVm .BrushSize .Subscribe(M => InkCanvas.DefaultDrawingAttributes.Height = InkCanvas.DefaultDrawingAttributes.Width = M); inkCanvasVm .SelectedTool .Subscribe(M => InkCanvas.SetInkTool(M)); } Image.SizeChanged += (S, E) => UpdateInkCanvas(); InkCanvas.DefaultDrawingAttributes.FitToCurve = true; }
public ImageEditorWindow() { InitializeComponent(); if (DataContext is ImageEditorViewModel vm) { vm.PropertyChanged += (S, E) => { if (E.PropertyName == nameof(vm.TransformedBitmap)) { UpdateInkCanvas(); } }; vm.InkCanvas = InkCanvas; InkCanvas.Strokes.StrokesChanged += (S, E) => { var item = new StrokeHistory(); item.Added.AddRange(E.Added); item.Removed.AddRange(E.Removed); vm.AddInkHistory(item); }; void SelectionMovingOrResizing(object Sender, InkCanvasSelectionEditingEventArgs Args) { vm.AddSelectHistory(new SelectHistory { NewRect = Args.NewRectangle, OldRect = Args.OldRectangle, Selection = InkCanvas.GetSelectedStrokes() }); } InkCanvas.SelectionMoving += SelectionMovingOrResizing; InkCanvas.SelectionResizing += SelectionMovingOrResizing; vm.Window = this; } Image.SizeChanged += (S, E) => UpdateInkCanvas(); ModesBox.SelectedIndex = 0; _settings = ServiceProvider.Get <Settings>().ImageEditor; ColorPicker.SelectedColor = _settings.BrushColor.ToWpfColor(); SizeBox.Value = _settings.BrushSize; InkCanvas.DefaultDrawingAttributes.FitToCurve = true; }
public ImageEditorWindow() { InitializeComponent(); if (DataContext is ImageEditorViewModel vm) { vm.PropertyChanged += (S, E) => { if (E.PropertyName == nameof(vm.TransformedBitmap)) { UpdateInkCanvas(); } }; vm.InkCanvas = InkCanvas; InkCanvas.Strokes.StrokesChanged += (S, E) => { var item = new StrokeHistory(); item.Added.AddRange(E.Added); item.Removed.AddRange(E.Removed); vm.AddInkHistory(item); }; vm.Window = this; } Image.SizeChanged += (S, E) => UpdateInkCanvas(); ColorPicker.SelectedColor = Color.FromRgb(27, 27, 27); ModesBox.SelectedIndex = 0; SizeBox.Value = 10; InkCanvas.DefaultDrawingAttributes.FitToCurve = true; }