Browse Source

Fixed double click to rename layer

flabbet 4 years ago
parent
commit
ec1efce86a

+ 4 - 4
PixiEditor/Views/UserControls/EditableTextBlock.xaml

@@ -11,14 +11,14 @@
     </UserControl.Resources>
     </UserControl.Resources>
     <Grid>
     <Grid>
         <TextBlock Foreground="Snow" MouseLeftButtonDown="TextBlock_MouseDown"
         <TextBlock Foreground="Snow" MouseLeftButtonDown="TextBlock_MouseDown"
-                   TextTrimming="CharacterEllipsis"
+                   TextTrimming="CharacterEllipsis" Name="textBlock"
                    Visibility="{Binding Path=TextBlockVisibility, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}"
                    Visibility="{Binding Path=TextBlockVisibility, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}"
                    Text="{Binding Path=Text, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}" />
                    Text="{Binding Path=Text, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}" />
         <TextBox Style="{StaticResource DarkTextBoxStyle}"
         <TextBox Style="{StaticResource DarkTextBoxStyle}"
-                 LostFocus="TextBox_LostFocus" 
+                 LostFocus="TextBox_LostFocus"
                  Text="{Binding Path=Text, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}"
                  Text="{Binding Path=Text, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}"
-                 KeyDown="TextBox_KeyDown"                 
-                 LostKeyboardFocus="textBox_LostKeyboardFocus"
+                 KeyDown="TextBox_KeyDown"
+                 LostKeyboardFocus="TextBox_LostKeyboardFocus"
                  Visibility="{Binding Path=TextBlockVisibility, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}, 
                  Visibility="{Binding Path=TextBlockVisibility, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}, 
             Converter={StaticResource OppositeVisibilityConverter}}"
             Converter={StaticResource OppositeVisibilityConverter}}"
                  Name="textBox">
                  Name="textBox">

+ 15 - 5
PixiEditor/Views/UserControls/EditableTextBlock.xaml.cs

@@ -1,6 +1,8 @@
-using System.Windows;
+using System;
+using System.Windows;
 using System.Windows.Controls;
 using System.Windows.Controls;
 using System.Windows.Input;
 using System.Windows.Input;
+using System.Windows.Threading;
 using PixiEditor.Models.Controllers;
 using PixiEditor.Models.Controllers;
 using PixiEditor.Models.Controllers.Shortcuts;
 using PixiEditor.Models.Controllers.Shortcuts;
 
 
@@ -29,10 +31,12 @@ namespace PixiEditor.Views
 
 
         // Using a DependencyProperty as the backing store for EnableEditing.  This enables animation, styling, binding, etc...
         // Using a DependencyProperty as the backing store for EnableEditing.  This enables animation, styling, binding, etc...
         public static readonly DependencyProperty EnableEditingProperty =
         public static readonly DependencyProperty EnableEditingProperty =
-            DependencyProperty.Register("IsEditing", typeof(bool), typeof(EditableTextBlock),
+            DependencyProperty.Register(
+                "IsEditing",
+                typeof(bool),
+                typeof(EditableTextBlock),
                 new PropertyMetadata(OnIsEditingChanged));
                 new PropertyMetadata(OnIsEditingChanged));
 
 
-
         public EditableTextBlock()
         public EditableTextBlock()
         {
         {
             InitializeComponent();
             InitializeComponent();
@@ -61,7 +65,13 @@ namespace PixiEditor.Views
             ShortcutController.BlockShortcutExecution = true;
             ShortcutController.BlockShortcutExecution = true;
             TextBlockVisibility = Visibility.Hidden;
             TextBlockVisibility = Visibility.Hidden;
             IsEditing = true;
             IsEditing = true;
-            textBox.Focus();
+            Dispatcher.BeginInvoke(
+                DispatcherPriority.Input,
+                new Action(delegate()
+                {
+                    textBox.Focus();         // Set Logical Focus
+                    Keyboard.Focus(textBox); // Set Keyboard Focus
+                }));
             textBox.SelectAll();
             textBox.SelectAll();
         }
         }
 
 
@@ -102,7 +112,7 @@ namespace PixiEditor.Views
             DisableEditing();
             DisableEditing();
         }
         }
 
 
-        private void textBox_LostKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)
+        private void TextBox_LostKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)
         {
         {
             DisableEditing();
             DisableEditing();
         }
         }