Icon Emoji.Wpf
Emoji.Wpf adds Emoji rendering support to WPF applications.
- Provides drop-in replacements for
TextBlockandRichTextBox, no additional code required. - Colour emoji! π¨ π© π°
βοΈ βοΈ π βοΈ - Multiracial family emoji! π©πΏβπ©π»βπ¦π½ π¨π»βπ©πΏβπ§π½βπ¦π½ π©π»βπΆπ½
- Emoji for flags!
- Win11 style flags!
- Full vector emoji! Render at huge sizes without quality loss.
- Optional support for subpixel antialiasing.
- Lightweight; does not embed a font or emoji images; just uses the system font.
- Works with old .NET versions such as .NET Framework 4.0.
- Can work on Windows 7 or Windows 8 by installing the Segoe UI Emoji font in
c:/Windows/Fonts. - Free, opensource software, with no strings attached.
- Available as a Nuget package.
Emoji.Wpf.TextBlock: an emoji-aware version ofSystem.Windows.Controls.TextBlock.Emoji.Wpf.RichTextBox: an emoji-aware version ofSystem.Windows.Controls.RichTextBox.Emoji.Wpf.Picker: an emoji picker
Emoji.Image.Source: attach to eitherSystem.Windows.Controls.Imagecontrol orSystem.Windows.Media.DrawingImageobject in order to manipulate emoji images
bool Emoji.Wpf.EmojiData.EnableSubPixelRendering: enable subpixel rendering, defaults tofalsebool Emoji.Wpf.EmojiData.EnableWindowsStyleFlags: enable flag rendering, defaults to autodetected
Here is how to use Emoji.Wpf in your XAML:
<Window ... xmlns:emoji="clr-namespace:Emoji.Wpf;assembly=Emoji.Wpf" ...> <Window.Resources> <DrawingImage x:Key="MyImageSource" emoji:Image.Source="π»"/> </Window.Resources> ... <emoji:RichTextBox FontSize="24" Margin="5"/> ... <emoji:TextBlock FontSize="24" Text="Hello! πππ¨π±βππ©πΏβπ©π»βπ¦π½ lol"/> ... <emoji:Picker FontSize="40"/> ... <Image Source="{StaticResource MyImageSource}"/> ... <Image emoji:Image.Source="π¦"/> ... </Window>
More classes are to come, but feedback on what is needed is welcome.
I am not a very good WPF or even C# developer, but I think this could become a very useful and robust library if given enough care. Any help appreciated!
- v0.3.4 (2022εΉ΄11ζ16ζ₯):
- fix a crash in
emoji:RichTextBox - fix multiple issues with drag-and-drop in
emoji:RichTextBox - glyph colourisation is now done on the GPU
- new Windows 11 style flags on Windows 11
- fix a crash in
- v0.3.3 (2021εΉ΄06ζ03ζ₯):
- fix a crash on Windows 8
- fix flag rendering with the Twemoji font
- v0.3.1 (2021εΉ΄06ζ02ζ₯):
- allow to disable flag rendering
- v0.3.0 (2021εΉ΄03ζ14ζ₯):
- glyphs for flags!
- new
emoji:EmojiRenderingdependency property forFlowDocument - optional subpixel glyph rendering
- experimental support for custom emoji sequences and custom glyphs
- v0.2.5 (2021εΉ΄01ζ29ζ₯):
- minor adjustments in
emoji:Picker
- minor adjustments in
- v0.2.4 (2021εΉ΄01ζ28ζ₯):
- new
emoji:Image.Sourcedependency property forImageandDrawingImageobjects, allowing to easily render emoji as icons
- new
- v0.2.3 (2021εΉ΄01ζ27ζ₯):
- the rendering pipeline now exclusively uses vector objects
- subpixel glyph positioning
- use
ColonSyntax="True"inemoji:RichTextBoxfor replace-as-you-type::koala:becomes π¨ etc.
- v0.2.2 (2021εΉ΄01ζ25ζ₯):
- increased picker performance through virtualisation
- rendering fallback for emoji ZWJ sequences
- v0.2.1 (2021εΉ΄01ζ22ζ₯):
emoji:RichTextBox.Textis two-way bindable and binding defaults toLostFocus- all base controls implement an
IEmojiControlinterface for convenience - fixed a warning caused by the Typography DLLs about
ExtensionAttributebeing redefined
- v0.2.0 (2021εΉ΄01ζ17ζ₯):
- support for undo/redo and numerous bugfixes in
emoji:RichTextBox - minimal .NET version is now Framework 4.0 (was 3.0)
- support for undo/redo and numerous bugfixes in
- v0.1.8 (2021εΉ΄01ζ13ζ₯):
- composite emoji such as π§π» or π¨π»βπ¦° now render properly in
emoji:RichTextBox - new
Pickedevent inemoji:Picker
- composite emoji such as π§π» or π¨π»βπ¦° now render properly in
- v0.1.7 (2021εΉ΄01ζ12ζ₯):
- colour blending is off by default; use
ColorBlend="True"to enable
- colour blending is off by default; use
- v0.1.6 (2021εΉ΄01ζ11ζ₯):
- add support for colour blending in
emoji:TextBlock;(ει€) useBlending="False"to disable (ει€γγγΎγ§)
- add support for colour blending in
- v0.1.4 (2020εΉ΄11ζ23ζ₯):
- add support for complex family emoji and mixed skin tone families
- v0.1.2 (2020εΉ΄11ζ22ζ₯):
- support hair style variation emoji
- fix kerning and positioning issues with family emoji
- v0.1.1 (2020εΉ΄11ζ10ζ₯):
- support wrapping in
emoji:TextBlock
- support wrapping in
- v0.1.0 (2020εΉ΄11ζ9ζ₯):
- first non-experimental release
Emoji.Wpf renders emoji as vector images, using the WPF text rendering engine. The geometry information is found in the Segoe UI Emoji font glyphs. The colour information is found in the same font, using Microsoftβs COLR/CPAL format extensions.