You cannot replace the built in emoticons with your own custom icons. Further, you won't be able to use a custom font and get the high fidelity icons you're apparently looking for as well (full color). With a bit of effort and simple string parsing, you can use a RichTextBox
in read only mode to produce a very similar UI:
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<Grid.Resources>
<Color x:Key="CommentColor">#FFEC4521</Color>
<SolidColorBrush x:Key="CommentColorBrush" Color="{StaticResource CommentColor}"></SolidColorBrush>
</Grid.Resources>
<StackPanel>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<RichTextBox IsReadOnly="True" Background="{StaticResource CommentColorBrush}" Padding="6">
<Paragraph>
<Run Text="You are so funny!"/>
<InlineUIContainer>
<Image Source="/Assets/happy.png" Height="16"></Image>
</InlineUIContainer>
</Paragraph>
</RichTextBox>
<TextBlock Grid.Column="2" VerticalAlignment="Center">Michael</TextBlock>
</Grid>
</StackPanel>
</Grid>
It's unlikely that the application you referred to customized the keyboard, rather they are just translating the text into a different representation as shown above and not leaving the text as a plain string.