Skip to content

Commit a52bf21

Browse files
authored
Update README.md
1 parent 0e1b203 commit a52bf21

File tree

1 file changed

+53
-23
lines changed

1 file changed

+53
-23
lines changed

README.md

Lines changed: 53 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,64 @@
1-
# How to Modify or Disable Shortcuts of EditControl
2-
This repository provides a detailed example of how to modify or disable keyboard shortcuts in the Syncfusion EditControl for WPF applications. The EditControl is a versatile text editor component that supports syntax highlighting, code editing, and customizable features. In certain scenarios, developers may want to override or disable default shortcuts such as Undo (Ctrl+Z) and Redo (Ctrl+Y) to implement custom logic or restrict user actions.
1+
# How to Modify or Disable Shortcuts in WPF EditControl
2+
This example demonstrates how to disable or modify keyboard shortcuts in the Syncfusion WPF EditControl. By default, EditControl supports common shortcuts like Undo (Ctrl+Z) and Redo (Ctrl+Y). In some scenarios, you may want to override or disable these shortcuts to implement custom logic or restrict user actions.
33

4-
## Key Features Demonstrated in This Sample
4+
## Why This Is Useful
5+
- **Custom Behavior**: Implement your own shortcut logic.
6+
- **Restrict Actions**: Disable Undo/Redo in read-only or controlled environments.
7+
- **Dynamic Control**: Enable shortcuts only under specific conditions.
58

6-
- Disable Undo and Redo functionality using the built-in properties IsUndoEnabled and IsRedoEnabled.
7-
- Intercept keyboard shortcuts using the PreviewKeyDown event.
8-
- Apply conditional logic to enable or disable specific shortcuts dynamically.
9+
## Key Approaches
10+
1. Disable Undo and Redo using properties:
11+
- IsUndoEnabled = false
12+
- IsRedoEnabled = false
13+
2. Intercept keyboard shortcuts using PreviewKeyDown:
14+
- Apply conditional logic to enable or disable shortcuts dynamically.
915

10-
## Disable Undo and Redo Using Properties
11-
The simplest way to disable these features is by setting the properties:
16+
## Code Example
17+
**XAML**
18+
```XAML
19+
<syncfusion:EditControl Name="Edit1"
20+
Grid.Row="2"
21+
AllowDrop="True"
22+
Background="White"
23+
BorderBrush="Black"
24+
BorderThickness="0"
25+
EnableOutlining="False"
26+
FontFamily="Verdana"
27+
Height="400"
28+
Width="400" />
29+
```
1230

31+
**C#**
1332
```C#
14-
public Window1()
33+
34+
public partial class Window1 : Window
1535
{
16-
Edit1.PreviewKeyDown += Edit1_PreviewKeyDown;
17-
}
18-
```
36+
public Window1()
37+
{
38+
SfSkinManager.SetTheme(this, new Theme("Office2019Colorful"));
39+
InitializeComponent();
1940

20-
## Modify Shortcuts Using PreviewKeyDown Event
21-
You can also customize shortcut behavior by handling the PreviewKeyDown event:
41+
Edit1.DocumentSource = @"../../Content.txt";
2242

23-
```C#
24-
private void Edit1_PreviewKeyDown(object sender, System.Windows.Input.KeyEventArgs e)
25-
{
26-
if(e.Key == Key.Z && (e.KeyboardDevice.Modifiers & ModifierKeys.Control) != 0)
27-
{
28-
//Undo feature enable by checking the keys.
29-
Edit1.IsUndoEnabled = true;
30-
}
43+
// Disable Undo and Redo
44+
Edit1.IsUndoEnabled = false;
45+
Edit1.IsRedoEnabled = false;
46+
47+
// Uncomment to enable dynamic shortcut handling
48+
// Edit1.PreviewKeyDown += Edit1_PreviewKeyDown;
49+
}
50+
51+
private void Edit1_PreviewKeyDown(object sender, KeyEventArgs e)
52+
{
53+
// Enable Undo only when Ctrl+Z is pressed
54+
if (e.Key == Key.Z && (e.KeyboardDevice.Modifiers & ModifierKeys.Control) != 0)
55+
{
56+
Edit1.IsUndoEnabled = true;
57+
}
58+
}
3159
}
3260
```
3361

34-
This approach gives you full control over how shortcuts behave, allowing you to implement advanced scenarios such as enabling Undo only for certain operations or disabling it entirely in read-only modes.
62+
## Notes
63+
- You can extend this logic to handle other shortcuts like Ctrl+Y, Ctrl+C, etc.
64+
- Use PreviewKeyDown for intercepting before default behavior executes.

0 commit comments

Comments
 (0)