mirror of
https://gitee.com/akwkevin/aistudio.-wpf.-diagram
synced 2026-04-23 01:46:36 +08:00
mind
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||
<PropertyGroup>
|
||||
<UseWPF>true</UseWPF>
|
||||
<Company>AIStudio.Wpf.Controls</Company>
|
||||
<Company> AIStudio.Wpf.DiagramDesigner.Controls</Company>
|
||||
<Authors>akwkevin</Authors>
|
||||
<PackageProjectUrl>https://gitee.com/akwkevin</PackageProjectUrl>
|
||||
<PackageIcon>A.png</PackageIcon>
|
||||
|
||||
@@ -6,6 +6,8 @@ using System.Windows.Media;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using AIStudio.Wpf.DiagramDesigner.ViewModels;
|
||||
using AIStudio.Wpf.DiagramDesigner.ViewModels.BaseViewModel;
|
||||
|
||||
namespace AIStudio.Wpf.DiagramDesigner
|
||||
{
|
||||
|
||||
@@ -14,6 +14,8 @@ using System.Windows.Resources;
|
||||
using System.Runtime.InteropServices;
|
||||
using Newtonsoft.Json;
|
||||
using AIStudio.Wpf.DiagramDesigner.Models;
|
||||
using AIStudio.Wpf.DiagramDesigner.ViewModels;
|
||||
using AIStudio.Wpf.DiagramDesigner.ViewModels.BaseViewModel;
|
||||
|
||||
namespace AIStudio.Wpf.DiagramDesigner
|
||||
{
|
||||
|
||||
27
AIStudio.Wpf.DiagramDesigner/Converters/AditionConverter.cs
Normal file
27
AIStudio.Wpf.DiagramDesigner/Converters/AditionConverter.cs
Normal file
@@ -0,0 +1,27 @@
|
||||
using System;
|
||||
using System.Globalization;
|
||||
using System.Windows.Data;
|
||||
|
||||
namespace AIStudio.Wpf.DiagramDesigner
|
||||
{
|
||||
public class AdditionConverter : IValueConverter
|
||||
{
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
if ((value != null) && (parameter != null))
|
||||
{
|
||||
var firstValue = (double)value;
|
||||
var secondValue = double.Parse(parameter?.ToString());
|
||||
|
||||
return firstValue + secondValue;
|
||||
}
|
||||
|
||||
return 0d;
|
||||
}
|
||||
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
using System;
|
||||
using System.Globalization;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Windows;
|
||||
using System.Windows.Data;
|
||||
|
||||
namespace AIStudio.Wpf.DiagramDesigner
|
||||
{
|
||||
public class GridLengthConverter : IValueConverter
|
||||
{
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
var length = value?.ToString();
|
||||
try
|
||||
{
|
||||
double add = 0;
|
||||
double.TryParse(parameter?.ToString(), out add);
|
||||
return new GridLength(double.Parse(length) + add, GridUnitType.Pixel);
|
||||
}
|
||||
catch
|
||||
{
|
||||
return new GridLength(1, GridUnitType.Auto);
|
||||
}
|
||||
}
|
||||
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
return DependencyProperty.UnsetValue;
|
||||
}
|
||||
}
|
||||
|
||||
public class GridLengthAutoConverter : IValueConverter
|
||||
{
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
var length = value?.ToString();
|
||||
try
|
||||
{
|
||||
if (Regex.IsMatch(length, @"^\d+(\.\d+)?$"))
|
||||
{
|
||||
return new GridLength(double.Parse(length), GridUnitType.Pixel);
|
||||
}
|
||||
else if (length == "*")
|
||||
{
|
||||
return new GridLength(1, GridUnitType.Star);
|
||||
}
|
||||
else if (Regex.IsMatch(length, @"^\d+(\.\d+)?\*$"))
|
||||
{
|
||||
return new GridLength(double.Parse(length.Substring(0, length.Length - 1)), GridUnitType.Star);
|
||||
}
|
||||
else
|
||||
{
|
||||
return new GridLength(1, GridUnitType.Auto);
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
return new GridLength(1, GridUnitType.Auto);
|
||||
}
|
||||
}
|
||||
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
return DependencyProperty.UnsetValue;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,7 +2,7 @@
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
|
||||
namespace AIStudio.Wpf.DiagramDesigner
|
||||
namespace AIStudio.Wpf.DiagramDesigner.ViewModels.BaseViewModel
|
||||
{
|
||||
/// <summary>
|
||||
/// Simple service locator
|
||||
@@ -18,14 +18,14 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
|
||||
_drawModeViewModel = new DrawModeViewModel();
|
||||
_quickThemeViewModel = new QuickThemeViewModel();
|
||||
|
||||
|
||||
_drawModeViewModel.PropertyChanged += ViewModel_PropertyChanged;
|
||||
_quickThemeViewModel.PropertyChanged += ViewModel_PropertyChanged;
|
||||
|
||||
SetOldValue<IColorViewModel>(ColorViewModel, nameof(ColorViewModel));
|
||||
SetOldValue<IFontViewModel>(FontViewModel, nameof(FontViewModel));
|
||||
SetOldValue<IShapeViewModel>(ShapeViewModel, nameof(ShapeViewModel));
|
||||
SetOldValue<ILockObjectViewModel>(LockObjectViewModel, nameof(LockObjectViewModel));
|
||||
SetOldValue(ColorViewModel, nameof(ColorViewModel));
|
||||
SetOldValue(FontViewModel, nameof(FontViewModel));
|
||||
SetOldValue(ShapeViewModel, nameof(ShapeViewModel));
|
||||
SetOldValue(LockObjectViewModel, nameof(LockObjectViewModel));
|
||||
}
|
||||
|
||||
private void ViewModel_PropertyChanged(object sender, PropertyChangedEventArgs e)
|
||||
@@ -70,7 +70,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
_colorViewModel.PropertyChanged += ViewModel_PropertyChanged;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private IFontViewModel _fontViewModel;
|
||||
public IFontViewModel FontViewModel
|
||||
@@ -117,13 +117,19 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
private IDrawModeViewModel _drawModeViewModel;
|
||||
public IDrawModeViewModel DrawModeViewModel
|
||||
{
|
||||
get { return _drawModeViewModel; }
|
||||
get
|
||||
{
|
||||
return _drawModeViewModel;
|
||||
}
|
||||
}
|
||||
|
||||
private IQuickThemeViewModel _quickThemeViewModel;
|
||||
public IQuickThemeViewModel QuickThemeViewModel
|
||||
{
|
||||
get { return _quickThemeViewModel; }
|
||||
get
|
||||
{
|
||||
return _quickThemeViewModel;
|
||||
}
|
||||
}
|
||||
|
||||
private ILockObjectViewModel _lockObjectViewModel;
|
||||
@@ -161,7 +167,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
return _selectedItem;
|
||||
}
|
||||
set
|
||||
{
|
||||
{
|
||||
if (SetProperty(ref _selectedItem, value))
|
||||
{
|
||||
if (_selectedItem == null)
|
||||
@@ -198,12 +204,18 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
|
||||
public IDiagramServiceProvider Provider
|
||||
{
|
||||
get { return serviceProvider; }
|
||||
get
|
||||
{
|
||||
return serviceProvider;
|
||||
}
|
||||
}
|
||||
|
||||
public static DiagramServicesProvider Instance
|
||||
{
|
||||
get { return instance.Value; }
|
||||
get
|
||||
{
|
||||
return instance.Value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -6,6 +6,8 @@ using System.Text;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using AIStudio.Wpf.DiagramDesigner.Models;
|
||||
using AIStudio.Wpf.DiagramDesigner.ViewModels;
|
||||
using AIStudio.Wpf.DiagramDesigner.ViewModels.BaseViewModel;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace AIStudio.Wpf.DiagramDesigner
|
||||
|
||||
@@ -3,7 +3,7 @@ using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Text;
|
||||
|
||||
namespace AIStudio.Wpf.DiagramDesigner
|
||||
namespace AIStudio.Wpf.DiagramDesigner.ViewModels
|
||||
{
|
||||
/// <summary>
|
||||
/// Simple service interface
|
||||
Reference in New Issue
Block a user