diff --git a/AIStudio.Wpf.DiagramDesigner/Adorners/RubberbandAdorner.cs b/AIStudio.Wpf.DiagramDesigner/Adorners/RubberbandAdorner.cs index e6ff227..9a540e9 100644 --- a/AIStudio.Wpf.DiagramDesigner/Adorners/RubberbandAdorner.cs +++ b/AIStudio.Wpf.DiagramDesigner/Adorners/RubberbandAdorner.cs @@ -138,10 +138,6 @@ namespace AIStudio.Wpf.DiagramDesigner itemBase.ItemHeight = Math.Abs(this.endPoint.Value.Y - this.startPoint.Value.Y); _viewModel.AddItemCommand.Execute(itemBase); - - this.Dispatcher.BeginInvoke((System.Action)(() => { - itemBase.ShowText = true; - })); } else if (this._service.DrawModeViewModel.GetDrawMode() == DrawMode.Polyline || this._service.DrawModeViewModel.GetDrawMode() == DrawMode.Polygon diff --git a/AIStudio.Wpf.DiagramDesigner/UserControls/TextControl.xaml.cs b/AIStudio.Wpf.DiagramDesigner/UserControls/TextControl.xaml.cs index c9df145..e503312 100644 --- a/AIStudio.Wpf.DiagramDesigner/UserControls/TextControl.xaml.cs +++ b/AIStudio.Wpf.DiagramDesigner/UserControls/TextControl.xaml.cs @@ -18,7 +18,6 @@ namespace AIStudio.Wpf.DiagramDesigner /// public partial class TextControl : UserControl { - public TextControl() { InitializeComponent(); @@ -63,7 +62,18 @@ namespace AIStudio.Wpf.DiagramDesigner { if (e.PropertyName == "IsSelected") { - if (selectable.IsSelected == false) + if (selectable.StartEditing) + { + selectable.StartEditing = false; + PART_ShowText.Visibility = Visibility.Visible; + PART_TextBlock.Visibility = Visibility.Collapsed; + PART_ShowText.Focus(); + if (!string.IsNullOrEmpty(PART_ShowText.Text)) + { + PART_ShowText.SelectionStart = PART_ShowText.Text.Length; + } + } + else if (selectable.IsSelected == false) { PART_ShowText.Visibility = Visibility.Collapsed; PART_TextBlock.Visibility = Visibility.Visible; diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/SelectableViewModelBase.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/SelectableViewModelBase.cs index 63701c7..b3bfb70 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/SelectableViewModelBase.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/BaseViewModel/SelectableViewModelBase.cs @@ -178,6 +178,11 @@ namespace AIStudio.Wpf.DiagramDesigner } } + public bool StartEditing + { + get; set; + } + private bool _isEditing = false; public bool IsEditing { diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/DefaultViewModel/TextDesignerItemViewModel.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/DefaultViewModel/TextDesignerItemViewModel.cs index cb466b2..8cf8a6d 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/DefaultViewModel/TextDesignerItemViewModel.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/DefaultViewModel/TextDesignerItemViewModel.cs @@ -45,8 +45,7 @@ namespace AIStudio.Wpf.DiagramDesigner protected override void InitNew() { this.ItemWidth = 150; - this.ClearConnectors(); - ShowText = true; + this.StartEditing = true; } private string _watermark = "请输入文本"; diff --git a/AIStudio.Wpf.DiagramDesigner/ViewModels/ISelectable.cs b/AIStudio.Wpf.DiagramDesigner/ViewModels/ISelectable.cs index 0113751..68b08e4 100644 --- a/AIStudio.Wpf.DiagramDesigner/ViewModels/ISelectable.cs +++ b/AIStudio.Wpf.DiagramDesigner/ViewModels/ISelectable.cs @@ -23,6 +23,12 @@ namespace AIStudio.Wpf.DiagramDesigner get; set; } + //新建完处于编辑状态 + bool StartEditing + { + get; set; + } + bool ShowText { get; set;