using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace AIStudio.Wpf.DiagramDesigner { /// /// Interaction logic for DiagramControl.xaml /// public partial class DiagramControl : UserControl { public DiagramControl() { InitializeComponent(); if (ResourceDictionary != null) { this.Resources.MergedDictionaries.Add(ResourceDictionary); } } public static readonly DependencyProperty ResourceDictionaryProperty = DependencyProperty.Register(nameof(ResourceDictionary), typeof(ResourceDictionary), typeof(DiagramControl), new UIPropertyMetadata(null, OnResourceDictionaryChanged)); private static void OnResourceDictionaryChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { if (d is DiagramControl diagram) { if (e.NewValue is ResourceDictionary dictionary) { diagram.Resources.MergedDictionaries.Add(dictionary); } } } public ResourceDictionary ResourceDictionary { get { return (ResourceDictionary)GetValue(ResourceDictionaryProperty); } set { SetValue(ResourceDictionaryProperty, value); } } public static readonly DependencyProperty ZoomValueProperty = DependencyProperty.Register(nameof(ZoomValue), typeof(double), typeof(DiagramControl), new UIPropertyMetadata(1d)); public double ZoomValue { get { return (double)GetValue(ZoomValueProperty); } set { SetValue(ZoomValueProperty, value); } } private void DesignerCanvas_Loaded(object sender, RoutedEventArgs e) { //DesignerCanvas myDesignerCanvas = sender as DesignerCanvas; //zoomBox.DesignerCanvas = myDesignerCanvas; } private async void ScaleTransform_Changed(object sender, EventArgs e) { await System.Threading.Tasks.Task.Delay(100); ZoomValue = scale.ScaleX; } } }