Modernizing .NETpad Step-By-Step, Part 7: Clean-Up in Aisle WPF (Premium)

In this final phase of this year’s .NETpad modernization project, we’ll clean up the code a bit and make a few minor UI changes.
Why
Even I sometimes forget what the point of this app was originally. But if you go back to the OG version of the app, the… Continue reading Modernizing .NETpad Step-By-Step, Part 7: Clean-Up in Aisle WPF (Premium)

Modernizing .NETpad Step-By-Step, Part 8: Replace and Replace All (Premium)

In the previous article, we created a modern interface for Find/Replace and implemented Find, Find next, and Find previous. This time, we’ll wrap up the Find/Replace work by implementing Replace and Replace all, and migrating all the new Find/Replace c… Continue reading Modernizing .NETpad Step-By-Step, Part 8: Replace and Replace All (Premium)

Modernizing .NETpad Step-By-Step, Part 7: Find, Find Next, and Find Previous (Premium)

In this phase of the .NETpad modernization project, we will implement a Find/Replace interface and its Find-related commands before forging ahead and tackling its Replace-related commands. As I explained recently, we will create the interface in a non-… Continue reading Modernizing .NETpad Step-By-Step, Part 7: Find, Find Next, and Find Previous (Premium)

Modernizing .NETpad: Decision Time on Find/Replace (Premium)

It’s time to take a step back to explain what’s going to happen next: The way that Microsoft implements Find/Replace in Notepad today is non-standard and would be difficult to recreate using WPF. Complicating matters, my original implementation of Find… Continue reading Modernizing .NETpad: Decision Time on Find/Replace (Premium)

Modernizing .NETpad Step-By-Step, Part 6 More Custom Dialogs (Premium)

In the previous installment, we created a custom Content dialog because WPF doesn’t support the native control in Windows. And then we built out our first dialog, Save confirmation, using that as a base. This time, we’ll use it to create more dialogs. … Continue reading Modernizing .NETpad Step-By-Step, Part 6 More Custom Dialogs (Premium)

Modernizing .NETpad Step-By-Step, Part 5: Custom Dialogs (Premium)

If you kept up with my series on modernizing .NETpad this past summer, you know I came full circle on creating custom dialogs for the app. I’m not happy with the custom dialogs I created for the OG WPF version of this app–they look horrible in Windows… Continue reading Modernizing .NETpad Step-By-Step, Part 5: Custom Dialogs (Premium)

Modernizing .NETpad Step-By-Step, Part 4: More Settings (Premium)

I probably should have realized that there was no way to document the new settings interface in just a single article. But let’s wrap that up now.
The post Modernizing .NETpad Step-By-Step, Part 4: More Settings (Premium) appeared first on Thurrott.com.
Continue reading Modernizing .NETpad Step-By-Step, Part 4: More Settings (Premium)

Modernizing .NETpad Step-By-Step, Part 3: Settings (Premium)

In this phase, we’ll add a modern settings interface to .NETpad that mimics the similar user interface in Notepad. This is among the modernization changes I’m most proud of, though in going through the code again for this write-up, I see some obvious i… Continue reading Modernizing .NETpad Step-By-Step, Part 3: Settings (Premium)

Modernizing .NETpad Step-By-Step, Part 2: Next Steps (Premium)

This time, we’ll look at some basic code refactoring, add a few small features and other changes, and redesign .NETpad’s menu system.
Separate application state variables from MainWindow
I wrote about my code refactoring efforts twice this past summer,… Continue reading Modernizing .NETpad Step-By-Step, Part 2: Next Steps (Premium)

Modernizing .NETpad Step-By-Step, Part 1: The Basics (Premium)

In this first phase of modernizing the WPF version of .NETpad, we’ll take the original project, apply Windows 11 theming, and make some other basic updates.
For those unfamiliar, .NETpad is my basic clone of Notepad, an update I created–and then recre… Continue reading Modernizing .NETpad Step-By-Step, Part 1: The Basics (Premium)