|
@@ -40,6 +40,10 @@ namespace PixiEditor.Views.UserControls
|
|
DependencyProperty.Register(nameof(CenterViewportTrigger), typeof(ExecutionTrigger<EventArgs>), typeof(DrawingViewPort),
|
|
DependencyProperty.Register(nameof(CenterViewportTrigger), typeof(ExecutionTrigger<EventArgs>), typeof(DrawingViewPort),
|
|
new PropertyMetadata(default(ExecutionTrigger<EventArgs>), CenterViewportTriggerChanged));
|
|
new PropertyMetadata(default(ExecutionTrigger<EventArgs>), CenterViewportTriggerChanged));
|
|
|
|
|
|
|
|
+ public static readonly DependencyProperty ZoomViewportTriggerProperty =
|
|
|
|
+ DependencyProperty.Register(nameof(ZoomViewportTrigger), typeof(ExecutionTrigger<double>), typeof(DrawingViewPort),
|
|
|
|
+ new PropertyMetadata(default(ExecutionTrigger<double>), ZoomViewportTriggerChanged));
|
|
|
|
+
|
|
public ICommand MiddleMouseClickedCommand
|
|
public ICommand MiddleMouseClickedCommand
|
|
{
|
|
{
|
|
get => (ICommand)GetValue(MiddleMouseClickedCommandProperty);
|
|
get => (ICommand)GetValue(MiddleMouseClickedCommandProperty);
|
|
@@ -94,6 +98,12 @@ namespace PixiEditor.Views.UserControls
|
|
set => SetValue(CenterViewportTriggerProperty, value);
|
|
set => SetValue(CenterViewportTriggerProperty, value);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ public ExecutionTrigger<double> ZoomViewportTrigger
|
|
|
|
+ {
|
|
|
|
+ get => (ExecutionTrigger<double>)GetValue(ZoomViewportTriggerProperty);
|
|
|
|
+ set => SetValue(ZoomViewportTriggerProperty, value);
|
|
|
|
+ }
|
|
|
|
+
|
|
public RelayCommand PreviewMouseDownCommand { get; private set; }
|
|
public RelayCommand PreviewMouseDownCommand { get; private set; }
|
|
private static void ToolChanged(DependencyObject sender, DependencyPropertyChangedEventArgs args)
|
|
private static void ToolChanged(DependencyObject sender, DependencyPropertyChangedEventArgs args)
|
|
{
|
|
{
|
|
@@ -110,12 +120,18 @@ namespace PixiEditor.Views.UserControls
|
|
{
|
|
{
|
|
var viewport = (DrawingViewPort)sender;
|
|
var viewport = (DrawingViewPort)sender;
|
|
if (args.OldValue != null)
|
|
if (args.OldValue != null)
|
|
- {
|
|
|
|
((ExecutionTrigger<EventArgs>)args.OldValue).Triggered -= viewport.CenterZoomboxContent;
|
|
((ExecutionTrigger<EventArgs>)args.OldValue).Triggered -= viewport.CenterZoomboxContent;
|
|
- }
|
|
|
|
((ExecutionTrigger<EventArgs>)args.NewValue).Triggered += viewport.CenterZoomboxContent;
|
|
((ExecutionTrigger<EventArgs>)args.NewValue).Triggered += viewport.CenterZoomboxContent;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ private static void ZoomViewportTriggerChanged(DependencyObject sender, DependencyPropertyChangedEventArgs args)
|
|
|
|
+ {
|
|
|
|
+ var viewport = (DrawingViewPort)sender;
|
|
|
|
+ if (args.OldValue != null)
|
|
|
|
+ ((ExecutionTrigger<double>)args.OldValue).Triggered -= viewport.ZoomZoomboxContent;
|
|
|
|
+ ((ExecutionTrigger<double>)args.NewValue).Triggered += viewport.ZoomZoomboxContent;
|
|
|
|
+ }
|
|
|
|
+
|
|
private bool loaded = false;
|
|
private bool loaded = false;
|
|
|
|
|
|
public DrawingViewPort()
|
|
public DrawingViewPort()
|
|
@@ -128,6 +144,10 @@ namespace PixiEditor.Views.UserControls
|
|
{
|
|
{
|
|
zoombox.CenterContent();
|
|
zoombox.CenterContent();
|
|
}
|
|
}
|
|
|
|
+ private void ZoomZoomboxContent(object sender, double args)
|
|
|
|
+ {
|
|
|
|
+ zoombox.ZoomIntoCenter(args);
|
|
|
|
+ }
|
|
|
|
|
|
private void ProcessMouseDown(object parameter)
|
|
private void ProcessMouseDown(object parameter)
|
|
{
|
|
{
|