mirror of
https://gitee.com/akwkevin/aistudio.-wpf.-diagram
synced 2026-04-07 17:56:35 +08:00
整理
This commit is contained in:
@@ -980,7 +980,7 @@
|
||||
</Fluent:ToggleButton>
|
||||
|
||||
</Fluent:RibbonGroupBox>
|
||||
<Fluent:RibbonGroupBox Header="操作" IsEnabled="{Binding PageViewModel.DiagramViewModel.SelectedItem,Converter={StaticResource NullableToBooleanConverter}}"
|
||||
<Fluent:RibbonGroupBox Header="操作" IsEnabled="{Binding SelectedItemViewModel,Converter={StaticResource NullableToBooleanConverter}}"
|
||||
IsLauncherVisible="True">
|
||||
<Fluent:DropDownButton Header="位置" Icon="{iconPacks:Material Kind=LayersOutline}" Width="50" VerticalAlignment="Top">
|
||||
<Fluent:DropDownButton.LargeIcon>
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
<TabControl Style="{StaticResource UniformTabControlStyle}" >
|
||||
<TabItem Header="填充" Height="34">
|
||||
<StackPanel
|
||||
DataContext="{Binding PageViewModel.DiagramViewModel.SelectedItem.ColorViewModel.FillColor}"
|
||||
DataContext="{Binding SelectedItemViewModel.ColorViewModel.FillColor}"
|
||||
Visibility="{Binding .,Converter={StaticResource NullableToVisibilityConverter}}">
|
||||
<StackPanel>
|
||||
<RadioButton Margin="5" IsChecked="{Binding BrushType,Converter={dd:ConverterValueMapToBool Parameter='None'}, ConverterParameter='None'}" Content="无填充" />
|
||||
@@ -104,7 +104,7 @@
|
||||
</TabItem>
|
||||
<TabItem Header="线条" Height="34">
|
||||
<StackPanel
|
||||
DataContext="{Binding PageViewModel.DiagramViewModel.SelectedItem.ColorViewModel.LineColor}"
|
||||
DataContext="{Binding SelectedItemViewModel.ColorViewModel.LineColor}"
|
||||
Visibility="{Binding .,Converter={StaticResource NullableToVisibilityConverter}}">
|
||||
<StackPanel>
|
||||
<RadioButton Margin="5" IsChecked="{Binding BrushType,Converter={dd:ConverterValueMapToBool Parameter='None'}, ConverterParameter='None'}" Content="无线条" />
|
||||
@@ -212,7 +212,7 @@
|
||||
<Fluent:SplitButton.LargeIcon>
|
||||
<iconPacks:PackIconMaterial Kind="ImagePlus" VerticalAlignment="Center" HorizontalAlignment="Center"/>
|
||||
</Fluent:SplitButton.LargeIcon>
|
||||
<ListBox dd:EnumHelper.Enum="{x:Type dd:ClipMode}" SelectedItem="{Binding PageViewModel.DiagramViewModel.SelectedItem.ClipMode}" BorderThickness="0">
|
||||
<ListBox dd:EnumHelper.Enum="{x:Type dd:ClipMode}" SelectedItem="{Binding SelectedItemViewModel.ClipMode}" BorderThickness="0">
|
||||
<ListBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding .,Converter={StaticResource EnumDescriptionConverter}}" />
|
||||
@@ -254,7 +254,7 @@
|
||||
</ControlTemplate>
|
||||
|
||||
<ControlTemplate TargetType="Control" x:Key="PropertyTemplate">
|
||||
<dd:PropertiesView SelectedObject="{Binding PageViewModel.DiagramViewModel.SelectedItem}">
|
||||
<dd:PropertiesView SelectedObject="{Binding SelectedItemViewModel}">
|
||||
<dd:PropertiesView.Resources>
|
||||
<Style x:Key="ActTypeStyle" TargetType="{x:Type ContentControl}">
|
||||
<Setter Property="ContentTemplate">
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Windows;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
@@ -247,8 +249,9 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
}
|
||||
set
|
||||
{
|
||||
var xx = this.GetHashCode();
|
||||
var yy = Thread.CurrentThread.ManagedThreadId.ToString();
|
||||
SetProperty(ref _color, value);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -60,15 +60,7 @@ namespace AIStudio.Wpf.DiagramDesigner.ViewModels.BaseViewModel
|
||||
}
|
||||
set
|
||||
{
|
||||
if (_colorViewModel != null)
|
||||
{
|
||||
_colorViewModel.PropertyChanged -= ViewModel_PropertyChanged;
|
||||
}
|
||||
SetProperty(ref _colorViewModel, value);
|
||||
if (_colorViewModel != null)
|
||||
{
|
||||
_colorViewModel.PropertyChanged += ViewModel_PropertyChanged;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -80,16 +72,8 @@ namespace AIStudio.Wpf.DiagramDesigner.ViewModels.BaseViewModel
|
||||
return _fontViewModel;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (_fontViewModel != null)
|
||||
{
|
||||
_fontViewModel.PropertyChanged -= ViewModel_PropertyChanged;
|
||||
}
|
||||
{
|
||||
SetProperty(ref _fontViewModel, value);
|
||||
if (_fontViewModel != null)
|
||||
{
|
||||
_fontViewModel.PropertyChanged += ViewModel_PropertyChanged;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -102,15 +86,7 @@ namespace AIStudio.Wpf.DiagramDesigner.ViewModels.BaseViewModel
|
||||
}
|
||||
set
|
||||
{
|
||||
if (_shapeViewModel != null)
|
||||
{
|
||||
_shapeViewModel.PropertyChanged -= ViewModel_PropertyChanged;
|
||||
}
|
||||
SetProperty(ref _shapeViewModel, value);
|
||||
if (_shapeViewModel != null)
|
||||
{
|
||||
_shapeViewModel.PropertyChanged += ViewModel_PropertyChanged;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -141,15 +117,7 @@ namespace AIStudio.Wpf.DiagramDesigner.ViewModels.BaseViewModel
|
||||
}
|
||||
set
|
||||
{
|
||||
if (_lockObjectViewModel != null)
|
||||
{
|
||||
_lockObjectViewModel.PropertyChanged -= ViewModel_PropertyChanged;
|
||||
}
|
||||
SetProperty(ref _lockObjectViewModel, value);
|
||||
if (_lockObjectViewModel != null)
|
||||
{
|
||||
_lockObjectViewModel.PropertyChanged += ViewModel_PropertyChanged;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@ using AIStudio.Wpf.DiagramDesigner.Geometrys;
|
||||
using AIStudio.Wpf.DiagramDesigner.Helpers;
|
||||
using AIStudio.Wpf.DiagramDesigner.Models;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
|
||||
namespace AIStudio.Wpf.DiagramDesigner
|
||||
{
|
||||
@@ -2813,41 +2814,41 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
{
|
||||
if (items.Any())
|
||||
{
|
||||
Dictionary<SelectableDesignerItemViewModelBase, IFontViewModel> infos = items.ToDictionary(p => p, p => CopyHelper.Mapper(p.FontViewModel));
|
||||
Dictionary<SelectableDesignerItemViewModelBase, object> infos = items.ToDictionary(p => p, p => p.FontViewModel.GetPropertyValue(propertyName));
|
||||
DoCommandManager.DoNewCommand(this.ToString(),
|
||||
() => {
|
||||
var value = fontViewModel.GetPropertyValue(propertyName);
|
||||
foreach (var item in items)
|
||||
{
|
||||
CopyHelper.CopyPropertyValue(fontViewModel, item.FontViewModel, propertyName);
|
||||
item.FontViewModel.SetPropertyValue(propertyName, value);
|
||||
}
|
||||
},
|
||||
() => {
|
||||
foreach (var item in infos)
|
||||
{
|
||||
CopyHelper.CopyPropertyValue(item.Value, item.Key.FontViewModel, propertyName);
|
||||
item.Key.FontViewModel.SetPropertyValue(propertyName, item.Value);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void SetColor(IColorViewModel colorViewModel, string propertyName, List<SelectableDesignerItemViewModelBase> items)
|
||||
{
|
||||
if (items.Any())
|
||||
{
|
||||
Dictionary<SelectableDesignerItemViewModelBase, IColorViewModel> infos = items.ToDictionary(p => p, p => CopyHelper.Mapper(p.ColorViewModel));
|
||||
Dictionary<SelectableDesignerItemViewModelBase, object> infos = items.ToDictionary(p => p, p => p.ColorViewModel.GetPropertyValue(propertyName));
|
||||
DoCommandManager.DoNewCommand(this.ToString(),
|
||||
() => {
|
||||
var value = colorViewModel.GetPropertyValue(propertyName);
|
||||
foreach (var item in items)
|
||||
{
|
||||
CopyHelper.CopyPropertyValue(colorViewModel, item.ColorViewModel, propertyName);
|
||||
item.ColorViewModel.SetPropertyValue(propertyName, value);
|
||||
}
|
||||
},
|
||||
() => {
|
||||
foreach (var item in infos)
|
||||
{
|
||||
CopyHelper.CopyPropertyValue(item.Value, item.Key.ColorViewModel, propertyName);
|
||||
item.Key.ColorViewModel.SetPropertyValue(propertyName, item.Value);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -2857,18 +2858,19 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
{
|
||||
if (items.Any())
|
||||
{
|
||||
Dictionary<SelectableDesignerItemViewModelBase, IShapeViewModel> infos = items.ToDictionary(p => p, p => CopyHelper.Mapper(p.ShapeViewModel));
|
||||
Dictionary<SelectableDesignerItemViewModelBase, object> infos = items.ToDictionary(p => p, p => p.ShapeViewModel.GetPropertyValue(propertyName));
|
||||
DoCommandManager.DoNewCommand(this.ToString(),
|
||||
() => {
|
||||
var value = shapeViewModel.GetPropertyValue(propertyName);
|
||||
foreach (var item in items)
|
||||
{
|
||||
CopyHelper.CopyPropertyValue(shapeViewModel, item.ShapeViewModel, propertyName);
|
||||
item.ShapeViewModel.SetPropertyValue(propertyName, value);
|
||||
}
|
||||
},
|
||||
() => {
|
||||
foreach (var item in infos)
|
||||
{
|
||||
CopyHelper.CopyPropertyValue(item.Value, item.Key.ShapeViewModel, propertyName);
|
||||
item.Key.ShapeViewModel.SetPropertyValue(propertyName, item.Value);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -2880,24 +2882,33 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
{
|
||||
if (items.Any())
|
||||
{
|
||||
Dictionary<SelectableDesignerItemViewModelBase, Tuple<IFontViewModel, IColorViewModel>> infos = items.ToDictionary(p => p, p => new Tuple<IFontViewModel, IColorViewModel>(CopyHelper.Mapper(p.FontViewModel), CopyHelper.Mapper(p.ColorViewModel)));
|
||||
Dictionary<SelectableDesignerItemViewModelBase, Tuple<object, object, object, object>> infos
|
||||
= items.ToDictionary(p => p, p => new Tuple<object, object, object, object>(
|
||||
p.FontViewModel.GetPropertyValue("FontColor"),
|
||||
p.ColorViewModel.GetPropertyValue("FillColor"),
|
||||
p.ColorViewModel.GetPropertyValue("LineColor"),
|
||||
p.ColorViewModel.GetPropertyValue("LineWidth")));
|
||||
DoCommandManager.DoNewCommand(this.ToString(),
|
||||
() => {
|
||||
var value1 = quickThemeViewModel.QuickTheme.FontViewModel.GetPropertyValue("FontColor");
|
||||
var value2 = quickThemeViewModel.QuickTheme.ColorViewModel.GetPropertyValue("FillColor");
|
||||
var value3 = quickThemeViewModel.QuickTheme.ColorViewModel.GetPropertyValue("LineColor");
|
||||
var value4 = quickThemeViewModel.QuickTheme.ColorViewModel.GetPropertyValue("LineWidth");
|
||||
foreach (var item in items)
|
||||
{
|
||||
CopyHelper.CopyPropertyValue(quickThemeViewModel.QuickTheme.FontViewModel, item.FontViewModel, "FontColor");
|
||||
CopyHelper.CopyPropertyValue(quickThemeViewModel.QuickTheme.ColorViewModel, item.ColorViewModel, "FillColor");
|
||||
CopyHelper.CopyPropertyValue(quickThemeViewModel.QuickTheme.ColorViewModel, item.ColorViewModel, "LineColor");
|
||||
CopyHelper.CopyPropertyValue(quickThemeViewModel.QuickTheme.ColorViewModel, item.ColorViewModel, "LineWidth");
|
||||
item.FontViewModel.SetPropertyValue("FontColor", value1);
|
||||
item.ColorViewModel.SetPropertyValue("FillColor", value2);
|
||||
item.ColorViewModel.SetPropertyValue("LineColor", value3);
|
||||
item.ColorViewModel.SetPropertyValue("LineWidth", value4);
|
||||
}
|
||||
},
|
||||
() => {
|
||||
foreach (var item in infos)
|
||||
{
|
||||
CopyHelper.CopyPropertyValue(item.Value.Item1, item.Key.FontViewModel, "FontColor");
|
||||
CopyHelper.CopyPropertyValue(item.Value.Item2, item.Key.ColorViewModel, "FillColor");
|
||||
CopyHelper.CopyPropertyValue(item.Value.Item2, item.Key.ColorViewModel, "LineColor");
|
||||
CopyHelper.CopyPropertyValue(item.Value.Item2, item.Key.ColorViewModel, "LineWidth");
|
||||
item.Key.FontViewModel.SetPropertyValue("FontColor", item.Value.Item1);
|
||||
item.Key.ColorViewModel.SetPropertyValue("FillColor", item.Value.Item2);
|
||||
item.Key.ColorViewModel.SetPropertyValue("LineColor", item.Value.Item3);
|
||||
item.Key.ColorViewModel.SetPropertyValue("LineWidth", item.Value.Item4);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user