Coding4Fun Toolkit Controls Are Supported For Windows Phone 8.1 - Part 1


Recently, I found from Twitter the "Coding4Fun Toolkit is Supported for Windows Phone 8.1". And I want to be say thanks to Hermit Dave for sharing this info on Twitter. Now the Coding4Fun toolkit v2.0.9 for Windows Platform dev has been released and the packages are available for download from Nuget.

In Windows Phone 8.0 we got many additional controls from Coding4Fun. The Coding4Fun Toolkit has multiple controls and useful items for XAML based applications. And the current version v2.0.9 includes the following controls.

  • MetroFlow control (Windows 8.1 and WP 8.1).

  • Prompts (Toast, User, Message, Input, About and PasswordInput) for WP 8.1.

  • BrushToBrushConverter now allows the use of a parameter to set the output Opacity.

Note: In Version 2.0.8, support was added for Windows Phone Store 8.1 and now more controls were ported across in 2.0.9. So that 2.0.9 is the second version for the wp8.1 store. :)

For more information, please visit this link. However from the preceding available controls, this article will teach you about "How to use MessagePrompt control in Windows Phone Store 8.1?".


  • This sample is targeted for the Windows Phone Store 8.1 OS, so ensure you've downloaded and installed the Windows Phone 8.1 SDK. For more information, see Get the SDK.

  • I assume you're going to test your app on the Windows Phone emulator. If you want to test your app on a phone, you need to use some additional steps. For more info, see Register your Windows Phone device for development.

  • This article assumes you're using Microsoft Visual Studio Express 2013 for Windows.


First of all, open Microsoft Visual Studio Express 2013 for Windows and then create a new project. Type Blank App (for example: Coding4Fun_WindowsPhoneStore).

blank app

1.1 Installation of Coding4Fun Toolkit

Install the Coding4Fun Toolkit Nuget package into the solution by starting the Package Manager PowerShell by following:

Tools -> Library Package Manager -> Package Manager console

Package Manager console

Once the PowerShell command prompt is running, enter the following command.

Install-Package Coding4Fun.Toolkit.Controls,

Install Package

This will add the Coding4Fun.Toolkit.Controls.dll to the "References" of the current project as in the following.


1.2 How to use MessagePrompt control in Windows Phone Store 8.1

In this article I will explain the MessagePrompt control from the Coding4fun Toolkit. Fortunately now the MessagePrompt control is available for WP8.1. As the name implies it is a kind of extended popup that displays a message. MessagePrompt can display various content like Title, composite Body content, custom buttons, and so on. Let's make the following UI in the MainPage.xaml page to use the MessagePrompt control in different ways.

  1. <Grid Background="White">    
  2.         <StackPanel Margin="5">    
  3.             <TextBlock Text="WP8.1:Coding4Fun MessagePrompt" FontSize="24" Foreground="#FF248ECB"/>    
  4.             <Button Margin="0,30,0,0" HorizontalAlignment="Stretch" Content="Simple MessagePrompt" Click="SimplePopUp_Click" Background="#FF68D18A"></Button>    
  5.             <Button HorizontalAlignment="Stretch" Content="Custom MessagePrompt With Xaml" Click="CustomPopupXaml_Click" Background="#FF68D18A"></Button>    
  6.             <Button HorizontalAlignment="Stretch" Content="Custom MessagePrompt With C# Code" Click="CustomPopupCode_Click" Background="#FF68D18A"></Button>    
  7.         </StackPanel>    
  8.     </Grid>   
Press F5 to run the project and your screen will be shown like this:

run the project

Generally the MessagePrompt is designed to be used in code. The sample code should look as in:

Simple MessagePrompt:
  1. private void SimplePopUp_Click(object sender, RoutedEventArgs e)    
  2. {    
  3.     var ObjMessagePrompt = new MessagePrompt    
  4.     {    
  5.         Title = "Simple MessagePrompt",    
  6.         Body = "Now Coding4Fun MessagePrompt is \n supported for windowsphone 8.1",    
  7.         IsAppBarVisible = true,//for showing rounded ok button    
  8.         IsCancelVisible = false//to hide rounded cancel button    
  9.     };    
  11.     ObjMessagePrompt.Show();    
  12. }   
Here is an example showing how to use the MessagePrompt control. You can use the IsCancelVisible property to Show/Hide the MessagePrompt's cancel button.


Custom MessagePrompt Body with XAML

Generally the MessagePrompt is designed to be used in code but sometimes users want to put some composite elements into the popup body so in this case it is easy to define these elements in XAML. Here is one possible solution with a UserControl. Just create a new UserControl named UcMsgBody.xaml and add the following code into it:
  1. <UserControl    
  2.     x:Class="Coding4Fun_WindowsPhoneStore.UcMsgBody"    
  3.     xmlns=""    
  4.     xmlns:x=""    
  5.     xmlns:local="using:Coding4Fun_WindowsPhoneStore"    
  6.     xmlns:d=""    
  7.     xmlns:mc=""    
  8.     mc:Ignorable="d"    
  9.     d:DesignHeight="300"    
  10.     d:DesignWidth="400">    
  12.     <Grid>    
  13.         <Border Background="YellowGreen" Height="100">    
  14.             <TextBlock Text="Generate Body Text with Xaml" TextWrapping="Wrap" Margin="2" VerticalAlignment="Center"/>    
  15.         </Border>    
  16.     </Grid>    
  17. </UserControl>  
Then go back to MainPage.xaml.cs and add the following code:
  1. private void CustomPopupXaml_Click(object sender, RoutedEventArgs e)    
  2. {    
  3.     MessagePrompt ObjMessagePrompt = new MessagePrompt();    
  4.     ObjMessagePrompt.VerticalAlignment = VerticalAlignment.Center;//Align message prompt to center.    
  5.     ObjMessagePrompt.Title = "Xaml";    
  6.     ObjMessagePrompt.Body = new UcMsgBody();    
  7.     ObjMessagePrompt.Show();    
  8. }     
Custom MessagePrompt

Custom MessagePrompt with C#

We can also add our custom buttons for the "Ok" and "Cancel" buttons like this.
  1. MessagePrompt ObjMessagePrompt;    
  2. private void CustomPopupCode_Click(object sender, RoutedEventArgs e)    
  3. {    
  4.     ObjMessagePrompt = new MessagePrompt();    
  5.     ObjMessagePrompt.Title = "C#";    
  6.     ObjMessagePrompt.VerticalAlignment = VerticalAlignment.Center;//Align message prompt to center.    
  7.     ObjMessagePrompt.Message = "Custom MessagePrompt with 'Cancel' and 'Ok' button";    
  8.     ObjMessagePrompt.Background = new SolidColorBrush(Colors.Gray);    
  9.     ObjMessagePrompt.ActionPopUpButtons.Clear();//Clearing all defualt messageprompt buttons.    
  11.     Button customCancelButton = new Button() { Content = "Cancel" };    
  12.     customCancelButton.Click += new RoutedEventHandler(customButton_Click);    
  13.     ObjMessagePrompt.ActionPopUpButtons.Add(customCancelButton);    
  15.     Button customOkButton = new Button() { Content = "Ok" };    
  16.     customOkButton.Click += new RoutedEventHandler(customButton_Click);    
  17.     ObjMessagePrompt.ActionPopUpButtons.Add(customOkButton);    
  19.     //Making Space between cancel and ok buttons    
  20.     ObjMessagePrompt.ActionPopUpButtons[0].Margin = new Thickness(20, 0, 0, 0);    
  21.     ObjMessagePrompt.ActionPopUpButtons[1].Margin = new Thickness(50, 0, 0, 0);    
  22.     ObjMessagePrompt.Show();    
  23. }    
  24. void customButton_Click(object sender, RoutedEventArgs e)    
  25. {    
  26.     ObjMessagePrompt.Hide();//To close MessagePrompt    
  27. }  
Here you may note the following useful points:  
  1. For the MessagePrompt alignments, to align center:
    1. ObjMessagePrompt.VerticalAlignment = VerticalAlignment.Center;//Align message prompt to center.  
  2. To remove MessagePrompt as the default "Ok" symbol:
    1. ObjMessagePrompt.ActionPopUpButtons.Clear();//Clearing all defualt messageprompt buttons.   
  3. To add a custom button:
    1. ObjMessagePrompt.ActionPopUpButtons.Add(customOkButton);  
    add custom button

From this article we have learned about the "MessagePrompt Control in Windows Phone 8.1 application".

This article is also available at my original blog.