<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Hi and I&#x27;m working on a WPF fork of NppCSharpPluginPack]]></title><description><![CDATA[<p dir="auto">Hi! I’ve been loving Notepad++ for years, as expected ;-). I’m a WPF developer by day, so I was wanting to make a plugin with it (to evaluate Common Lisp code from files - so maybe you can push me to alternatives that might do that). But before going straight in, I’ve started trying to migrate Mark Olson’s cool NppCSharpPluginPack (thanks Mark for it!) to WPF to get a feel for if it was feasible. I see WPF isn’t mentioned much in the forum,</p>
<p dir="auto">I’ve just been messing around, but I’ve got a few of the UI’s migrated, but I’m fighting to get keyboard input into TextBoxes when in a docked UI. I can paste in text, and KeyDown events fire, but no text gets inserted.</p>
<p dir="auto">So this post is to see what you knowledgeable people think about the idea, alternatives, and if anyone else is interested in bashing heads with me on WPF in a plugin.</p>
<p dir="auto">I’ll fork Mark’s repo and replay my changes (I should have started that way…) in the next week or so - but if that’s too long, let me know. Will post the repo in a reply here when done.</p>
<p dir="auto">Thanks!<br />
Jonathan Johansen<br />
<a href="http://www.carelinks.net" rel="nofollow ugc">www.carelinks.net</a></p>
]]></description><link>https://community.notepad-plus-plus.org/topic/26930/hi-and-i-m-working-on-a-wpf-fork-of-nppcsharppluginpack</link><generator>RSS for Node</generator><lastBuildDate>Wed, 20 May 2026 17:36:08 GMT</lastBuildDate><atom:link href="https://community.notepad-plus-plus.org/topic/26930.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 07 Jun 2025 14:10:27 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Hi and I&#x27;m working on a WPF fork of NppCSharpPluginPack on Sat, 28 Jun 2025 12:23:45 GMT]]></title><description><![CDATA[<p dir="auto">I figure I’d better document the solution(s) for others that may tread this path. A summary of some of the steps needed (of course built on top of Mark’s work!):</p>
<ol>
<li>Ensure you register your modeless dialog with NPP (<a href="https://npp-user-manual.org/docs/plugin-communication/#2036nppm_modelessdialog" rel="nofollow ugc">NPPM_MODELESSDIALOG</a>, in Main.cs we call <code>NppFormHelper.RegisterFormIfModeless(Form, bool)</code>)</li>
<li>The WPF <code>System.Windows.Controls.UserControl</code> should be in an <code>System.Windows.Forms.Integration.ElementHost</code>, which is in a <code>System.Windows.Forms.Form</code>.</li>
<li>I’ve subclassed the <code>ElementHost</code> to handle <code>WM_SHOWWINDOW</code> to update the <code>Visible</code> property, and to trigger a (slightly delayed) refresh of the visuals when we get a <code>WM_SIZE</code>. There I invalidate the visuals and update layouts. There may be a way to skip this, but it’s working, so I’m not trying to fix it.</li>
<li>In the WPF <code>UserControl</code>, when it’s <code>Loaded</code>, we have to get the presentation source (as a <code>HwndSource</code>) and add a hook to respond to the <code>WM_GETDLGCODE</code> and tell the source that we <code>DLGC_WANTCHARS</code> and <code>DLGC_WANTARROWS</code>, and maybe we also need <code>DLGC_HASSETSEL</code>.</li>
</ol>
<p dir="auto">I’ve pulled most of it into <a href="https://github.com/framlingham/NppCSharpPluginPack/blob/main/NppCSharpPluginPack/Views/SelectionRememberingControl.xaml.cs#L28" rel="nofollow ugc">a method</a> called <code>MakeModelessDialog</code>. And now for a short recording of it working!</p>
<p dir="auto"><img src="/assets/uploads/files/1751113290939-2025-06-28-typing-in-notepad-modeless-wpf-dialog-works.gif" alt="2025-06-28 Typing in Notepad++ modeless WPF dialog works.gif" class=" img-fluid img-markdown" /></p>
]]></description><link>https://community.notepad-plus-plus.org/post/102303</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/102303</guid><dc:creator><![CDATA[Jonathan Johansen]]></dc:creator><pubDate>Sat, 28 Jun 2025 12:23:45 GMT</pubDate></item><item><title><![CDATA[Reply to Hi and I&#x27;m working on a WPF fork of NppCSharpPluginPack on Sat, 28 Jun 2025 05:21:10 GMT]]></title><description><![CDATA[<p dir="auto">And it works now! The latest push has enabled it. I cleared out the MSG logging display because it happily lets me type now. Thanks for all your help and input guys! I’ll let you guys know how it all comes together :)</p>
]]></description><link>https://community.notepad-plus-plus.org/post/102302</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/102302</guid><dc:creator><![CDATA[Jonathan Johansen]]></dc:creator><pubDate>Sat, 28 Jun 2025 05:21:10 GMT</pubDate></item><item><title><![CDATA[Reply to Hi and I&#x27;m working on a WPF fork of NppCSharpPluginPack on Fri, 27 Jun 2025 23:09:41 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/coises" aria-label="Profile: Coises">@<bdi>Coises</bdi></a> thanks! Sounds like I won’t find the answer there. And I looked up <code>WM_GETDLGCODE</code> out of curiosity and figured it may help, then eventually found <a href="https://stackoverflow.com/q/835878/1217612" rel="nofollow ugc">this SO question</a> from 16 years ago, and will investigate fixing this way. It seems to be a pretty close fit for the issue here!</p>
]]></description><link>https://community.notepad-plus-plus.org/post/102301</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/102301</guid><dc:creator><![CDATA[Jonathan Johansen]]></dc:creator><pubDate>Fri, 27 Jun 2025 23:09:41 GMT</pubDate></item><item><title><![CDATA[Reply to Hi and I&#x27;m working on a WPF fork of NppCSharpPluginPack on Wed, 25 Jun 2025 17:59:37 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/jonathan-johansen" aria-label="Profile: Jonathan-Johansen">@<bdi>Jonathan-Johansen</bdi></a> said in <a href="/post/102252">Hi and I'm working on a WPF fork of NppCSharpPluginPack</a>:</p>
<blockquote>
<p dir="auto">look at what the message [2036] NPPM_MODELESSDIALOG does internally</p>
</blockquote>
<p dir="auto">Puts the window handle of the dialog on a list of window handles <a href="https://github.com/notepad-plus-plus/notepad-plus-plus/blob/f0f8f7ec2f5d95a019e9ee20edae2e7465ea5719/PowerEditor/src/Notepad_plus_Window.cpp#L434" rel="nofollow ugc">which are passed, in turn</a>, to <a href="https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-isdialogmessagew" rel="nofollow ugc">IsDialogMessage</a> in the message loop. If that function returns true, no further message processing is done. <a href="https://github.com/notepad-plus-plus/notepad-plus-plus/blob/f0f8f7ec2f5d95a019e9ee20edae2e7465ea5719/PowerEditor/src/winmain.cpp#L689" rel="nofollow ugc">If all calls return false</a>, the message is passed to <a href="https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-translateacceleratorw" rel="nofollow ugc">TranslateAccelerator</a>, and if that returns false the message is translated and dispatched normally.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/102269</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/102269</guid><dc:creator><![CDATA[Coises]]></dc:creator><pubDate>Wed, 25 Jun 2025 17:59:37 GMT</pubDate></item><item><title><![CDATA[Reply to Hi and I&#x27;m working on a WPF fork of NppCSharpPluginPack on Wed, 25 Jun 2025 15:01:00 GMT]]></title><description><![CDATA[<p dir="auto">Another update: After trying lots of things, running Spy++, Copilot suggested putting a <code>Form</code> around the <code>ElementHost</code>, and I’ve now got (when calling <code>NppFormHelper.RegisterFormIfModeless</code>) it doing something when I press a key, but I don’t think it’s that helpful - For every key press, I get many (&gt;100) and only:</p>
<ul>
<li><code>13 = 0xD = WM_GETTEXT</code> WParam is always <code>256</code> and LParam is always <code>737269504944</code></li>
<li><code>135 = 0x87 = WM_GETDLGCODE</code> WParam and LParam are always <code>0</code> for these.</li>
</ul>
<p dir="auto">I found <a href="https://www.autohotkey.com/docs/v1/misc/SendMessageList.htm" rel="nofollow ugc">this page</a> about windows message IDs, which was nice, but then I saw that Visual Studio has some special debugging <code>ToString</code> on System.Windows.Forms.Message` that tells you what the ID means when you mouse over during debugging. Nice. But anyway, still no key-specific events / messages.</p>
<p dir="auto">Well, because keyboard typing works when I don’t send <code>NPPM_MODELESSDIALOG</code>, but cut/paste/delete works when I do, I’m thinking to look at what the message <a href="https://npp-user-manual.org/docs/plugin-communication/#2036nppm_modelessdialog" rel="nofollow ugc">[2036] NPPM_MODELESSDIALOG</a> does internally, to see if I can combine the good sides of both modes for a WPF version.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/102252</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/102252</guid><dc:creator><![CDATA[Jonathan Johansen]]></dc:creator><pubDate>Wed, 25 Jun 2025 15:01:00 GMT</pubDate></item><item><title><![CDATA[Reply to Hi and I&#x27;m working on a WPF fork of NppCSharpPluginPack on Wed, 25 Jun 2025 14:36:44 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/pbarney" aria-label="Profile: pbarney">@<bdi>pbarney</bdi></a> no worries. I think your assessment is probably accurate, but of course you can do amazing things in both.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/102250</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/102250</guid><dc:creator><![CDATA[Jonathan Johansen]]></dc:creator><pubDate>Wed, 25 Jun 2025 14:36:44 GMT</pubDate></item><item><title><![CDATA[Reply to Hi and I&#x27;m working on a WPF fork of NppCSharpPluginPack on Tue, 17 Jun 2025 15:28:49 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/jonathan-johansen" aria-label="Profile: Jonathan-Johansen">@<bdi>Jonathan-Johansen</bdi></a> Thanks for the clarification. I don’t develop Windows apps, so I just didn’t know what the two were. After looking at it, it seems that WinForms is more imperative and tightly coupled and WPF is more declarative and modular.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/102117</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/102117</guid><dc:creator><![CDATA[pbarney]]></dc:creator><pubDate>Tue, 17 Jun 2025 15:28:49 GMT</pubDate></item><item><title><![CDATA[Reply to Hi and I&#x27;m working on a WPF fork of NppCSharpPluginPack on Fri, 13 Jun 2025 22:19:20 GMT]]></title><description><![CDATA[<p dir="auto">Update: when I inspect the WndProc messages that come through <code>$"{m.Msg} {m.WParam} {m.LParam}"</code>, I note these (mostly tangential, but I’d like to document them):</p>
<ul>
<li>Pressing ‘normal’ keys (e.g. a-z, arrows, 0-9, punctuation) does not send a message to the ElementHostEx, but instead (after I turned the volume up on my laptop), it somehow triggers a bell sound.</li>
<li>Mouse click comes through with <code>528 513 36634781</code> and <code>33 723656 33619969</code></li>
<li>Switching to another program sends <code>8 0 0</code>, and switching back to NPP sends <code>1024 0 0</code></li>
<li>Pasting into the TextBox works, but does not trigger any messages. Similarly for copying, deleting and backspacing.</li>
<li>Opening the WPF About window sent <code>8 1116900 0</code></li>
</ul>
<p dir="auto">I’d like to convert the msg id to a string, I’m not familiar with their values. But there still aren’t that many messages, so perhaps I haven’t set up the dock panel correctly. I’ll try the same thing in the existing Forms version and see what comes up for comparison.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/102077</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/102077</guid><dc:creator><![CDATA[Jonathan Johansen]]></dc:creator><pubDate>Fri, 13 Jun 2025 22:19:20 GMT</pubDate></item><item><title><![CDATA[Reply to Hi and I&#x27;m working on a WPF fork of NppCSharpPluginPack on Wed, 11 Jun 2025 11:22:44 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/rdipardo" aria-label="Profile: rdipardo">@<bdi>rdipardo</bdi></a> Thanks for the suggestions! WPF doesn’t have handles for controls like WinForms, and <code>WindowsFormsHost</code> would do the opposite of <code>ElementHost</code>. Thankfully, <code>ElementHost</code> lets you override the <code>WndProc</code> method (which I do <a href="https://github.com/framlingham/NppCSharpPluginPack/blob/main/NppCSharpPluginPack/Utils/ElementHostEx.cs#L20" rel="nofollow ugc">here</a>), so I’ll poke around in there for a bit.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/102041</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/102041</guid><dc:creator><![CDATA[Jonathan Johansen]]></dc:creator><pubDate>Wed, 11 Jun 2025 11:22:44 GMT</pubDate></item><item><title><![CDATA[Reply to Hi and I&#x27;m working on a WPF fork of NppCSharpPluginPack on Wed, 11 Jun 2025 11:12:03 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/pbarney" aria-label="Profile: pbarney">@<bdi>pbarney</bdi></a> The benefit of using WPF is that (in my opinion):</p>
<ul>
<li>I like WPF and have 6 years experience in it, but no experience with WinForms.</li>
<li>It provides strong layout options (e.g. Grid)</li>
<li>It provides <a href="https://stackoverflow.com/questions/2110514/binding-wpf-vs-winforms" rel="nofollow ugc">flexible data binding</a></li>
<li>It provides <a href="https://learn.microsoft.com/en-us/dotnet/desktop/wpf/controls/styles-templates-overview" rel="nofollow ugc">Styles</a>.</li>
</ul>
<p dir="auto"><a href="https://stackoverflow.com/a/1926023/1217612" rel="nofollow ugc">Some</a> <a href="https://stackoverflow.com/questions/1337345/what-is-the-difference-between-wpf-and-winforms" rel="nofollow ugc">links</a> <a href="https://stackoverflow.com/a/1693774/1217612" rel="nofollow ugc">from</a> <a href="https://cdn2.hubspot.net/hubfs/3301418/Whitepaper-%20WHY%20USE%20WPF%20INSTEAD%20OF%20WINFORMS.pdf" rel="nofollow ugc">others</a>.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/102040</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/102040</guid><dc:creator><![CDATA[Jonathan Johansen]]></dc:creator><pubDate>Wed, 11 Jun 2025 11:12:03 GMT</pubDate></item><item><title><![CDATA[Reply to Hi and I&#x27;m working on a WPF fork of NppCSharpPluginPack on Tue, 10 Jun 2025 02:00:39 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/mark-olson" aria-label="Profile: Mark-Olson">@<bdi>Mark-Olson</bdi></a> said in <a href="/post/102005">Hi and I'm working on a WPF fork of NppCSharpPluginPack</a>:</p>
<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/rdipardo" aria-label="Profile: rdipardo">@<bdi>rdipardo</bdi></a> is kind of a wizard when it comes to the low-level operation of forms</p>
</blockquote>
<p dir="auto">I’m also unfamiliar with WPF, but I can suggest to <a class="plugin-mentions-user plugin-mentions-a" href="/user/jonathan-johansen" aria-label="Profile: Jonathan-Johansen">@<bdi>Jonathan-Johansen</bdi></a> that hosting the docking form on a <a href="https://learn.microsoft.com/dotnet/api/system.windows.forms.integration.windowsformshost?view=netframework-4.8.1" rel="nofollow ugc"><code>WindowsFormsHost</code></a> might be a better approach. That would at least provide access to a Win32-style <a href="https://learn.microsoft.com/dotnet/api/system.windows.forms.integration.windowsformshost.wndproc?view=netframework-4.8.1" rel="nofollow ugc">window procedure</a>, useful for debugging how (of <em>if</em>) the <a href="https://learn.microsoft.com/windows/win32/inputdev/wm-char" rel="nofollow ugc"><code>WM_CHAR</code></a> message is being handled.</p>
<p dir="auto">Alternatively, try to expose the window handle of the existing WPF <code>UserControl</code> and pass <strong><em>that</em></strong> to the <code>NPPM_MODELESSDIALOG</code> wrapper instead of the <code>ElementHost</code> (as was <a href="https://github.com/framlingham/NppCSharpPluginPack/blob/0784ab4af432b90ee6cdc3191120f8f4080f8cef/NppCSharpPluginPack/Main.cs#L654" rel="nofollow ugc">tried already </a>). Or maybe there’s a way for WPF controls to broadcast messages to their child components…🤔?</p>
]]></description><link>https://community.notepad-plus-plus.org/post/102019</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/102019</guid><dc:creator><![CDATA[rdipardo]]></dc:creator><pubDate>Tue, 10 Jun 2025 02:00:39 GMT</pubDate></item><item><title><![CDATA[Reply to Hi and I&#x27;m working on a WPF fork of NppCSharpPluginPack on Mon, 09 Jun 2025 19:29:50 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/jonathan-johansen" aria-label="Profile: Jonathan-Johansen">@<bdi>Jonathan-Johansen</bdi></a> What is the benefit of using WPF instead of what we already have?</p>
]]></description><link>https://community.notepad-plus-plus.org/post/102015</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/102015</guid><dc:creator><![CDATA[pbarney]]></dc:creator><pubDate>Mon, 09 Jun 2025 19:29:50 GMT</pubDate></item><item><title><![CDATA[Reply to Hi and I&#x27;m working on a WPF fork of NppCSharpPluginPack on Mon, 09 Jun 2025 15:30:58 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/jonathan-johansen" aria-label="Profile: Jonathan-Johansen">@<bdi>Jonathan-Johansen</bdi></a> said in <a href="/post/102001">Hi and I'm working on a WPF fork of NppCSharpPluginPack</a>:</p>
<blockquote>
<p dir="auto">Oh, it’s interesting - When I <strong>don’t</strong> call <code>Npp.notepad.AddModelessDialog(host.Handle);</code>, I can type into the <code>TextBox</code>, but I can’t copy/paste with Ctrl+C/Ctrl+V. When I <strong>do</strong> call <code>Npp.notepad.AddModelessDialog(host.Handle);</code>, I can’t type in, but I can copy/paste with Ctrl+C/Ctrl+V. Curious.</p>
</blockquote>
<p dir="auto">OK, that’s really weird. I’ve never had any problem like that before. <a class="plugin-mentions-user plugin-mentions-a" href="/user/rdipardo" aria-label="Profile: rdipardo">@<bdi>rdipardo</bdi></a> is kind of a wizard when it comes to the low-level operation of forms; I’m mentioning him in the hopes that he will be able to give you some advice.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/102005</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/102005</guid><dc:creator><![CDATA[Mark Olson]]></dc:creator><pubDate>Mon, 09 Jun 2025 15:30:58 GMT</pubDate></item><item><title><![CDATA[Reply to Hi and I&#x27;m working on a WPF fork of NppCSharpPluginPack on Mon, 09 Jun 2025 13:01:17 GMT]]></title><description><![CDATA[<p dir="auto">The fork is here: <a href="https://github.com/framlingham/NppCSharpPluginPack#" rel="nofollow ugc">https://github.com/framlingham/NppCSharpPluginPack#</a></p>
]]></description><link>https://community.notepad-plus-plus.org/post/102002</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/102002</guid><dc:creator><![CDATA[Jonathan Johansen]]></dc:creator><pubDate>Mon, 09 Jun 2025 13:01:17 GMT</pubDate></item><item><title><![CDATA[Reply to Hi and I&#x27;m working on a WPF fork of NppCSharpPluginPack on Mon, 09 Jun 2025 12:45:54 GMT]]></title><description><![CDATA[<p dir="auto">Oh, it’s interesting - When I <strong>don’t</strong> call <code>Npp.notepad.AddModelessDialog(host.Handle);</code>, I can type into the <code>TextBox</code>, but I can’t copy/paste with Ctrl+C/Ctrl+V. When I <strong>do</strong> call <code>Npp.notepad.AddModelessDialog(host.Handle);</code>, I can’t type in, but I can copy/paste with Ctrl+C/Ctrl+V. Curious.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/102001</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/102001</guid><dc:creator><![CDATA[Jonathan Johansen]]></dc:creator><pubDate>Mon, 09 Jun 2025 12:45:54 GMT</pubDate></item><item><title><![CDATA[Reply to Hi and I&#x27;m working on a WPF fork of NppCSharpPluginPack on Mon, 09 Jun 2025 07:12:30 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/mark-olson" aria-label="Profile: Mark-Olson">@<bdi>Mark-Olson</bdi></a> Thanks! I have been migrating your code in-place, and I do get the ElementHost’s handle and pass it to <code>Npp.notepad.AddModelessDialog(handle);</code>. I will read through thoroughly - I’m also thinking to check something diagnostic like Spy++?</p>
]]></description><link>https://community.notepad-plus-plus.org/post/102000</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/102000</guid><dc:creator><![CDATA[Jonathan Johansen]]></dc:creator><pubDate>Mon, 09 Jun 2025 07:12:30 GMT</pubDate></item><item><title><![CDATA[Reply to Hi and I&#x27;m working on a WPF fork of NppCSharpPluginPack on Sat, 07 Jun 2025 15:08:05 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/jonathan-johansen" aria-label="Profile: Jonathan-Johansen">@<bdi>Jonathan-Johansen</bdi></a></p>
<p dir="auto">Hi, I’m the maintainer of NppCSharpPluginPack. Glad to hear you’re interested in creating a new variant with WPF, and I hope you’re able to make something you’re happy with.</p>
<p dir="auto">I don’t know anything about WPF, but I <em>do</em> know that forms (<em>especially <a href="https://github.com/molsonkiko/NppCSharpPluginPack/blob/15a504c998b16262dac1c4e83532bf8880e1cdbc/NppCSharpPluginPack/Main.cs#L684" rel="nofollow ugc">docking forms</a></em>) in a Notepad++ plugin have to do a bunch of annoying fiddly things to ensure that they work correctly. I recommend reading carefully through <a href="https://github.com/molsonkiko/NppCSharpPluginPack/blob/main/NppCSharpPluginPack/Forms/NppFormHelper.cs" rel="nofollow ugc">NppFormHelper.cs</a> and <a href="https://github.com/molsonkiko/NppCSharpPluginPack/blob/main/NppCSharpPluginPack/Forms/FormBase.cs" rel="nofollow ugc">FormBase.cs</a>, because they contain a few methods that you need to create WPF versions of to ensure your forms work correctly.</p>
<p dir="auto">More specifically, I’m guessing that your keyboard input problem is due to not <a href="https://github.com/molsonkiko/NppCSharpPluginPack/blob/15a504c998b16262dac1c4e83532bf8880e1cdbc/NppCSharpPluginPack/Forms/NppFormHelper.cs#L136" rel="nofollow ugc">registering your form with <code>NPPM_MODELESSDIALOG</code></a>.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/101993</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/101993</guid><dc:creator><![CDATA[Mark Olson]]></dc:creator><pubDate>Sat, 07 Jun 2025 15:08:05 GMT</pubDate></item></channel></rss>