AffinityPluginLoader + WineFix test releases
  • C# 93.2%
  • Shell 2.4%
  • C 1.7%
  • PowerShell 1.6%
  • Batchfile 0.7%
  • Other 0.4%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
jfacemyer 1678371793 WineFix: fill the empty Leading dropdown in the text context toolbar
Affinity 3.3 merged ReflectedLayoutItemTemplates.xaml into
ContextBarItemTemplates.xaml. Its implicit CheckedComboBoxItem style has an
empty ControlTemplate, and the merged dictionary is searched before the
application's Core.xaml, so LeadingComboItemStyle and
CheckedComboBoxItemStyle (BasedOn the implicit style, no template of their
own) inherit nothing. The Leading dropdown opens with zero height.

Replacing the dictionary entries is not enough, because the context bar's
DataTemplates keep the style objects their StaticResource references were
bound to. Instead, when a CheckedComboBox applies its template, swap an
ItemContainerStyle whose inherited template is empty for a copy BasedOn
Core.xaml's style. Styles with a real template are untouched, and the patch
does nothing once the XAML is fixed. Affinity 3.2.3 does not have the merge.
2026-10-08 07:14:53 -04:00
.github Native Hooking API & Runtime d2d1 bezier patches (#40) 2026-04-11 19:13:12 -05:00
AffinityBootstrap Modernize project files and trim Windows build dependencies (#18) 2025-11-17 15:36:15 -06:00
AffinityHook AffinityHook: quote launch arguments 2026-10-02 06:58:05 -04:00
AffinityPluginLoader (APL) NativeHook API // (WineFix) Fix hanging when editing embedded SVGs (#47) 2026-04-23 12:28:58 -07:00
docker Improved Linux build tools (#27) 2026-04-03 18:08:58 -05:00
docs WineFix: detect Wayland from the XDG session type as well 2026-10-05 17:28:18 -04:00
WineFix WineFix: fill the empty Leading dropdown in the text context toolbar 2026-10-08 07:14:53 -04:00
.gitattributes Initial commit 2025-11-11 23:48:52 -06:00
.gitignore Add documentation website for APL and WineFix (#39) 2026-04-06 14:33:59 -05:00
AffinityPluginLoader.sln Modernize project files and trim Windows build dependencies (#18) 2025-11-17 15:36:15 -06:00
build.bat Implement APL Logging API (#20) 2025-11-18 16:09:42 -06:00
build.sh Native Hooking API & Runtime d2d1 bezier patches (#40) 2026-04-11 19:13:12 -05:00
deploy.sh Native Hooking API & Runtime d2d1 bezier patches (#40) 2026-04-11 19:13:12 -05:00
docker-build.sh Improved Linux build tools (#27) 2026-04-03 18:08:58 -05:00
mkdocs.yml Native Hooking API & Runtime d2d1 bezier patches (#40) 2026-04-11 19:13:12 -05:00
package-release.ps1 Implement APL Logging API (#20) 2025-11-18 16:09:42 -06:00
package-release.sh Native Hooking API & Runtime d2d1 bezier patches (#40) 2026-04-11 19:13:12 -05:00
README.md Add documentation website for APL and WineFix (#39) 2026-04-06 14:33:59 -05:00

Affinity Plugin Loader

A managed code plugin loader & injector hook for Affinity by Canva (Affinity v3).

APL gives you a simple method to load custom code into Affinity and perform custom patches at runtime using the Harmony library. No more patching DLL files on disk.

APL supports Windows and Linux (Wine). MacOS support is not planned at this time.

image

Tip

📖 Full documentation is available at apl.ncuroe.dev

Quick Start

  1. Download affinitypluginloader-vX.X.X-amd64.zip from the latest release.
  2. Extract into your Affinity install directory.
  3. Launch AffinityHook.exe instead of Affinity.exe.

For detailed installation instructions, see the Installation Guide.

Developing Plugins

Plugins extend AffinityPlugin and use Harmony to patch Affinity methods at runtime. See the Creating a Plugin guide for the full walkthrough, including the plugin lifecycle, settings API, and build instructions.

WineFix

WineFix is an APL plugin that fixes Wine-specific Affinity bugs. See WineFix/ for an overview, or the WineFix docs for full details.

Licensing

APL (AffinityHook, AffinityBootstrap, AffinityPluginLoader) is licensed under the MIT License. See the LICENSE file under each project directory.

Warning

WineFix is offered under a different license. See WineFix#Licensing for information.

License Exemption

Canva and its subsidiaries are exempt from MIT licensing and may (at its option) instead license any source code authored for the Affinity Hook, Affinity Bootstrap, and Affinity Plugin Loader projects under the Zero-Clause BSD license.

Credits

Big thanks to the following projects: