Introduction
Today, in this article let's concentrate on another SilverLight application, whereby communicating with WCF Service to perform some operation.
Question: What is Typographical Text?
In simple terms "SilverLight 5 provides enhancements to define different font styles with help of Typography. It provides different Typographical features like ligatures, stylistic sets and many more".
Let's get this implemented practically for a better idea of this!!!
Step 1: The complete code of the IService1.cs looks like this.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;using System.ServiceModel.Web;
using System.Text;
namespace Wcf_Open_Type
{ // NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IService1" in both code and config file together.
[ServiceContract]
public interface IService1
{
[OperationContract]
string typography();
}
}
Step 2: The complete code of the Service1.svc.cs looks like this.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
namespace Wcf_Open_Type
{
// NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "Service1" in code, svc and config file together
public class Service1 : IService1
{
public string typography()
{
return "SilverLight 5...!!! Whoomp..";
}
}
}
Step 3: The complete code of the Web.Config looks like this.
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="true"/>
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
</configuration>
Step 4: The complete code of the Clientaccesspolicy.xml looks like this (To avoid the cross domain problem in SilverLight):
<?xml version="1.0" encoding="utf-8"?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="SOAPAction">
<domain uri="*"/>
</allow-from>
<grant-to>
<resource path="/" include-subpaths="true"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
Step 5: The complete code of the MainPage.xaml looks like this:
<UserControl x:Class="Typography_Application.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400" Loaded="UserControl_Loaded">
<Grid x:Name="LayoutRoot" Background="White">
<!--<TextBlock Height="63"
HorizontalAlignment="Center"
Name="textBlock1"
VerticalAlignment="Center"
FontFamily="Gabriola"
FontSize="34"
Width="522"
Margin="-63,118,-59,118"
Typography.ContextualAlternates="True"
Typography.StylisticSet7="True"/>-->
<!--<TextBlock Height="63"
HorizontalAlignment="Center"
Name="textBlock1"
VerticalAlignment="Center"
FontFamily="Gabriola"
FontSize="34"
Width="522"
Margin="-63,118,-59,118"
Typography.StylisticSet6="True"/>-->
<!--<TextBlock Height="63"
HorizontalAlignment="Center"
Name="textBlock1"
VerticalAlignment="Center"
FontFamily="Gabriola"
FontSize="34"
Width="522"
Margin="-63,118,-59,118"
Typography.Variants="Superscript"/>-->
<!--<TextBlock Height="63"
HorizontalAlignment="Center"
Name="textBlock1"
VerticalAlignment="Center"
FontFamily="Gabriola"
FontSize="34"
Width="522"
Margin="-63,118,-59,118"
Typography.Variants="Subscript"/>-->
<TextBlock Height="63"
HorizontalAlignment="Center"
Name="textBlock1"
VerticalAlignment="Center"
FontFamily="Gabriola"
FontSize="34"
Width="522"
Margin="-63,118,-59,118"
Typography.Capitals="SmallCaps"/>
<TextBlock Margin="35,28,29,218"
HorizontalAlignment="Center
VerticalAlignment="Center"
FontFamily="Gabriola"
FontSize="34">
<Run Typography.Fraction="Slashed" Text="22/12 33/238 " ></Run>
</TextBlock>
</Grid>
</UserControl>
Step 6: The complete code of the MainPage.xaml.cs looks like this:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Typography_Application.ServiceReference1;
namespace Typography_Application
{
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
}
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
data();
}
private void typography_Call(object sender, typographyCompletedEventArgs e)
{
textBlock1.Text = e.Result;
}
public void data()
{
objClient.typographyCompleted +=new EventHandler<typographyCompletedEventArgs>(typography_Call);
objClient.typographyAsync();
}
#region Instance Variables Service1Client objClient = new Service1Client();
#endregion
}
}
Step 7: The output of the Typographical Text @ StylisticSet7 Application looks like this
Step 8:The output of the Typographical Text @ StylisticSet6 Application looks like this
Step 9: The output of the Typographical Text @ Superscript Application looks like this
Step 10: The output of the Typographical Text @ Subscript Application looks like this.
Step 11: The output of the Typographical Text @ SmallCaps Application looks like this:
Step 12: The output of the Typographical Text @ Fraction Application looks like this:
I hope this article is useful for you ...I look forward for your comment and feedback....Thanks.