Click here to Skip to main content
15,894,740 members
Articles / General Programming / Exceptions

Best Practice logging pattern for Silverlight application

Rate me:
Please Sign up or sign in to vote.
4.86/5 (7 votes)
28 Apr 2012CPOL3 min read 53.8K   1.9K   17  
Server side logging for Silverlight applications using NLog 2.0
  • Silverlight_Logging_WCF.zip
    • Silverlight_Logging_WCF
      • BusinessAppMVVM
        • BusinessAppMVVM.AppWCFService
        • BusinessAppMVVM.sln
        • BusinessAppMVVM.suo
        • BusinessAppMVVM.Web
        • BusinessAppMVVM
          • App.xaml
          • App.xaml.cs
          • Assets
          • BaseClasses
          • Bin
            • Debug
              • AppManifest.xaml
              • ar
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • bg
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • BusinessAppMVVM.dll
              • BusinessAppMVVM.pdb
              • BusinessAppMVVM.xap
              • ca
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • cs
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • da
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • de
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.ServiceModel.DomainServices.Client.resources.dll
                • System.ServiceModel.DomainServices.Client.Web.resources.dll
                • System.ServiceModel.Web.Extensions.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.Navigation.resources.dll
                • System.Windows.Controls.resources.dll
              • el
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • es
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.ServiceModel.DomainServices.Client.resources.dll
                • System.ServiceModel.DomainServices.Client.Web.resources.dll
                • System.ServiceModel.Web.Extensions.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.Navigation.resources.dll
                • System.Windows.Controls.resources.dll
              • et
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • eu
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • fi
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • fr
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.ServiceModel.DomainServices.Client.resources.dll
                • System.ServiceModel.DomainServices.Client.Web.resources.dll
                • System.ServiceModel.Web.Extensions.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.Navigation.resources.dll
                • System.Windows.Controls.resources.dll
              • he
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • hr
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • hu
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • id
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • it
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.ServiceModel.DomainServices.Client.resources.dll
                • System.ServiceModel.DomainServices.Client.Web.resources.dll
                • System.ServiceModel.Web.Extensions.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.Navigation.resources.dll
                • System.Windows.Controls.resources.dll
              • ja
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.ServiceModel.DomainServices.Client.resources.dll
                • System.ServiceModel.DomainServices.Client.Web.resources.dll
                • System.ServiceModel.Web.Extensions.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.Navigation.resources.dll
                • System.Windows.Controls.resources.dll
              • ko
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.ServiceModel.DomainServices.Client.resources.dll
                • System.ServiceModel.DomainServices.Client.Web.resources.dll
                • System.ServiceModel.Web.Extensions.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.Navigation.resources.dll
                • System.Windows.Controls.resources.dll
              • lt
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • lv
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • ms
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • nl
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • no
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • pl
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • pt
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • pt-BR
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • ro
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • ru
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.ServiceModel.DomainServices.Client.resources.dll
                • System.ServiceModel.DomainServices.Client.Web.resources.dll
                • System.ServiceModel.Web.Extensions.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.Navigation.resources.dll
                • System.Windows.Controls.resources.dll
              • sk
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • sl
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • sr-Cyrl-CS
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • sr-Latn-CS
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • sv
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • System.ComponentModel.DataAnnotations.dll
              • System.ComponentModel.DataAnnotations.xml
              • System.ServiceModel.DomainServices.Client.dll
              • System.ServiceModel.DomainServices.Client.Web.dll
              • System.ServiceModel.DomainServices.Client.Web.xml
              • System.ServiceModel.DomainServices.Client.xml
              • System.ServiceModel.Web.Extensions.dll
              • System.ServiceModel.Web.Extensions.xml
              • System.Windows.Controls.Data.DataForm.Toolkit.dll
              • System.Windows.Controls.Data.Input.dll
              • System.Windows.Controls.Data.Input.xml
              • System.Windows.Controls.dll
              • System.Windows.Controls.Navigation.dll
              • System.Windows.Controls.Navigation.xml
              • System.Windows.Controls.xml
              • TestPage.html
              • th
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • tr
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • uk
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • vi
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • zh-Hans
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.ServiceModel.DomainServices.Client.resources.dll
                • System.ServiceModel.DomainServices.Client.Web.resources.dll
                • System.ServiceModel.Web.Extensions.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.Navigation.resources.dll
                • System.Windows.Controls.resources.dll
              • zh-Hant
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.ServiceModel.DomainServices.Client.resources.dll
                • System.ServiceModel.DomainServices.Client.Web.resources.dll
                • System.ServiceModel.Web.Extensions.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.Navigation.resources.dll
                • System.Windows.Controls.resources.dll
          • BusinessAppMVVM.csproj
          • BusinessAppMVVM.csproj.user
          • Controls
          • Generated_Code
          • GlobalSuppressions.cs
          • Helpers
          • Libs
            • System.Windows.Controls.Data.DataForm.Toolkit.dll
          • MainPage.xaml
          • MainPage.xaml.cs
          • Models
          • obj
          • Properties
          • Service References
          • ServiceReferences.ClientConfig
          • ViewModel
          • Views
          • Web
            • Resources
  • Silverlight_Logging.zip
    • Silverlight_Logging
      • BusinessAppMVVM
        • BusinessAppMVVM.sln
        • BusinessAppMVVM.suo
        • BusinessAppMVVM.Web
        • BusinessAppMVVM
          • App.xaml
          • App.xaml.cs
          • Assets
          • BaseClasses
          • Bin
            • Debug
              • AppManifest.xaml
              • ar
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • bg
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • BusinessAppMVVM.dll
              • BusinessAppMVVM.pdb
              • BusinessAppMVVM.xap
              • ca
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • cs
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • da
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • de
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.ServiceModel.DomainServices.Client.resources.dll
                • System.ServiceModel.DomainServices.Client.Web.resources.dll
                • System.ServiceModel.Web.Extensions.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.Navigation.resources.dll
                • System.Windows.Controls.resources.dll
              • el
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • es
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.ServiceModel.DomainServices.Client.resources.dll
                • System.ServiceModel.DomainServices.Client.Web.resources.dll
                • System.ServiceModel.Web.Extensions.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.Navigation.resources.dll
                • System.Windows.Controls.resources.dll
              • et
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • eu
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • fi
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • fr
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.ServiceModel.DomainServices.Client.resources.dll
                • System.ServiceModel.DomainServices.Client.Web.resources.dll
                • System.ServiceModel.Web.Extensions.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.Navigation.resources.dll
                • System.Windows.Controls.resources.dll
              • he
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • hr
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • hu
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • id
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • it
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.ServiceModel.DomainServices.Client.resources.dll
                • System.ServiceModel.DomainServices.Client.Web.resources.dll
                • System.ServiceModel.Web.Extensions.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.Navigation.resources.dll
                • System.Windows.Controls.resources.dll
              • ja
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.ServiceModel.DomainServices.Client.resources.dll
                • System.ServiceModel.DomainServices.Client.Web.resources.dll
                • System.ServiceModel.Web.Extensions.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.Navigation.resources.dll
                • System.Windows.Controls.resources.dll
              • ko
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.ServiceModel.DomainServices.Client.resources.dll
                • System.ServiceModel.DomainServices.Client.Web.resources.dll
                • System.ServiceModel.Web.Extensions.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.Navigation.resources.dll
                • System.Windows.Controls.resources.dll
              • lt
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • lv
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • ms
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • nl
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • no
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • pl
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • pt
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • pt-BR
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • ro
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • ru
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.ServiceModel.DomainServices.Client.resources.dll
                • System.ServiceModel.DomainServices.Client.Web.resources.dll
                • System.ServiceModel.Web.Extensions.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.Navigation.resources.dll
                • System.Windows.Controls.resources.dll
              • sk
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • sl
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • sr-Cyrl-CS
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • sr-Latn-CS
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • sv
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • System.ComponentModel.DataAnnotations.dll
              • System.ComponentModel.DataAnnotations.xml
              • System.ServiceModel.DomainServices.Client.dll
              • System.ServiceModel.DomainServices.Client.Web.dll
              • System.ServiceModel.DomainServices.Client.Web.xml
              • System.ServiceModel.DomainServices.Client.xml
              • System.ServiceModel.Web.Extensions.dll
              • System.ServiceModel.Web.Extensions.xml
              • System.Windows.Controls.Data.DataForm.Toolkit.dll
              • System.Windows.Controls.Data.Input.dll
              • System.Windows.Controls.Data.Input.xml
              • System.Windows.Controls.dll
              • System.Windows.Controls.Navigation.dll
              • System.Windows.Controls.Navigation.xml
              • System.Windows.Controls.xml
              • TestPage.html
              • th
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • tr
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • uk
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • vi
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.resources.dll
              • zh-Hans
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.ServiceModel.DomainServices.Client.resources.dll
                • System.ServiceModel.DomainServices.Client.Web.resources.dll
                • System.ServiceModel.Web.Extensions.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.Navigation.resources.dll
                • System.Windows.Controls.resources.dll
              • zh-Hant
                • System.ComponentModel.DataAnnotations.resources.dll
                • System.ServiceModel.DomainServices.Client.resources.dll
                • System.ServiceModel.DomainServices.Client.Web.resources.dll
                • System.ServiceModel.Web.Extensions.resources.dll
                • System.Windows.Controls.Data.Input.resources.dll
                • System.Windows.Controls.Navigation.resources.dll
                • System.Windows.Controls.resources.dll
          • BusinessAppMVVM.csproj
          • BusinessAppMVVM.csproj.user
          • Controls
          • Generated_Code
          • GlobalSuppressions.cs
          • Helpers
          • Libs
            • System.Windows.Controls.Data.DataForm.Toolkit.dll
          • MainPage.xaml
          • MainPage.xaml.cs
          • Models
          • obj
          • Properties
          • Service References
          • ServiceReferences.ClientConfig
          • ViewModel
          • Views
          • Web
            • Resources
<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    xmlns:appControls="clr-namespace:BusinessAppMVVM.Controls">

    <Style TargetType="appControls:BusyIndicator" x:Key="busyIndicatorDefaultStyle">
        <Setter Property="BusyContent" Value="Please wait..."/>
        <Setter Property="IsTabStop" Value="False"/>
        <Setter Property="OverlayStyle">
            <Setter.Value>
                <Style TargetType="Rectangle">
                    <Setter Property="Fill" Value="White"/>
                    <Setter Property="Opacity" Value="0.5"/>
                </Style>
            </Setter.Value>
        </Setter>
        <Setter Property="ProgressBarStyle">
            <Setter.Value>
                <Style TargetType="ProgressBar">
                    <Setter Property="IsIndeterminate" Value="True"/>
                    <Setter Property="Height" Value="15"/>
                    <Setter Property="Margin" Value="8,0,8,8"/>
                </Style>
            </Setter.Value>
        </Setter>
        <Setter Property="DisplayAfter" Value="00:00:00.1"/>
        <Setter Property="HorizontalAlignment" Value="Stretch"/>
        <Setter Property="VerticalAlignment" Value="Stretch"/>
        <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
        <Setter Property="VerticalContentAlignment" Value="Stretch"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="appControls:BusyIndicator">
                    <Grid>
                        <VisualStateManager.VisualStateGroups>
                            <VisualStateGroup x:Name="VisibilityStates">
                                <VisualState x:Name="Hidden">
                                    <Storyboard>
                                        <ObjectAnimationUsingKeyFrames BeginTime="00:00:00" Duration="00:00:00.001" Storyboard.TargetName="busycontent" Storyboard.TargetProperty="(UIElement.Visibility)">
                                            <DiscreteObjectKeyFrame KeyTime="00:00:00">
                                                <DiscreteObjectKeyFrame.Value>
                                                    <Visibility>Collapsed</Visibility>
                                                </DiscreteObjectKeyFrame.Value>
                                            </DiscreteObjectKeyFrame>
                                        </ObjectAnimationUsingKeyFrames>
                                        <ObjectAnimationUsingKeyFrames BeginTime="00:00:00" Duration="00:00:00.001" Storyboard.TargetName="overlay" Storyboard.TargetProperty="(UIElement.Visibility)">
                                            <DiscreteObjectKeyFrame KeyTime="00:00:00">
                                                <DiscreteObjectKeyFrame.Value>
                                                    <Visibility>Collapsed</Visibility>
                                                </DiscreteObjectKeyFrame.Value>
                                            </DiscreteObjectKeyFrame>
                                        </ObjectAnimationUsingKeyFrames>
                                    </Storyboard>
                                </VisualState>
                                <VisualState x:Name="Visible">
                                    <Storyboard>
                                        <ObjectAnimationUsingKeyFrames BeginTime="00:00:00" Duration="00:00:00.001" Storyboard.TargetName="busycontent" Storyboard.TargetProperty="(UIElement.Visibility)">
                                            <DiscreteObjectKeyFrame KeyTime="00:00:00">
                                                <DiscreteObjectKeyFrame.Value>
                                                    <Visibility>Visible</Visibility>
                                                </DiscreteObjectKeyFrame.Value>
                                            </DiscreteObjectKeyFrame>
                                        </ObjectAnimationUsingKeyFrames>
                                        <ObjectAnimationUsingKeyFrames BeginTime="00:00:00" Duration="00:00:00.001" Storyboard.TargetName="overlay" Storyboard.TargetProperty="(UIElement.Visibility)">
                                            <DiscreteObjectKeyFrame KeyTime="00:00:00">
                                                <DiscreteObjectKeyFrame.Value>
                                                    <Visibility>Visible</Visibility>
                                                </DiscreteObjectKeyFrame.Value>
                                            </DiscreteObjectKeyFrame>
                                        </ObjectAnimationUsingKeyFrames>
                                    </Storyboard>
                                </VisualState>
                            </VisualStateGroup>
                            <VisualStateGroup x:Name="BusyStatusStates">
                                <VisualState x:Name="Idle">
                                    <Storyboard>
                                        <ObjectAnimationUsingKeyFrames BeginTime="00:00:00" Duration="00:00:00.001" Storyboard.TargetName="content" Storyboard.TargetProperty="(Control.IsEnabled)">
                                            <DiscreteObjectKeyFrame KeyTime="00:00:00">
                                                <DiscreteObjectKeyFrame.Value>
                                                    <sys:Boolean>True</sys:Boolean>
                                                </DiscreteObjectKeyFrame.Value>
                                            </DiscreteObjectKeyFrame>
                                        </ObjectAnimationUsingKeyFrames>
                                    </Storyboard>
                                </VisualState>
                                <VisualState x:Name="Busy">
                                    <Storyboard>
                                        <ObjectAnimationUsingKeyFrames BeginTime="00:00:00" Duration="00:00:00.001" Storyboard.TargetName="content" Storyboard.TargetProperty="(Control.IsEnabled)">
                                            <DiscreteObjectKeyFrame KeyTime="00:00:00">
                                                <DiscreteObjectKeyFrame.Value>
                                                    <sys:Boolean>False</sys:Boolean>
                                                </DiscreteObjectKeyFrame.Value>
                                            </DiscreteObjectKeyFrame>
                                        </ObjectAnimationUsingKeyFrames>
                                    </Storyboard>
                                </VisualState>
                            </VisualStateGroup>
                        </VisualStateManager.VisualStateGroups>
                        <ContentControl
                            x:Name="content"
                            Content="{TemplateBinding Content}"
                            ContentTemplate="{TemplateBinding ContentTemplate}"
                            HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
                            VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"/>
                        <Rectangle
                            x:Name="overlay"
                            Style="{TemplateBinding OverlayStyle}"/>
                        <ContentPresenter
                            x:Name="busycontent">
                            <Grid
                                HorizontalAlignment="Center"
                                VerticalAlignment="Center">
                                <Border
                                    Background="White"
                                    BorderThickness="1"
                                    CornerRadius="2">
                                    <Border.BorderBrush>
                                        <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
                                            <GradientStop Color="#FFA3AEB9" Offset="0"/>
                                            <GradientStop Color="#FF8399A9" Offset="0.375"/>
                                            <GradientStop Color="#FF718597" Offset="0.375"/>
                                            <GradientStop Color="#FF617584" Offset="1"/>
                                        </LinearGradientBrush>
                                    </Border.BorderBrush>
                                    <Border
                                        CornerRadius="1.5"
                                        Margin="1">
                                        <Border.Background>
                                            <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
                                                <GradientStop Color="#FFF6F8F9" Offset="0.02"/>
                                                <GradientStop Color="#FFB8B8B8" Offset="0.996"/>
                                            </LinearGradientBrush>
                                        </Border.Background>
                                        <Grid MinWidth="150">
                                            <Grid.RowDefinitions>
                                                <RowDefinition/>
                                                <RowDefinition Height="Auto"/>
                                            </Grid.RowDefinitions>
                                            <ContentPresenter
                                                Content="{TemplateBinding BusyContent}"
                                                ContentTemplate="{TemplateBinding BusyContentTemplate}"
                                                Margin="8"/>
                                            <ProgressBar
                                                Grid.Row="1"
                                                Style="{TemplateBinding ProgressBarStyle}"/>
                                        </Grid>
                                    </Border>
                                </Border>
                            </Grid>
                        </ContentPresenter>
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

</ResourceDictionary>

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Architect
United States United States
Manoj Kumar

AWS Certified Solutions Architect (Web development, Serverless, DevOps, Data)
MSSE - Cloud and Mobile Computing, San Jose State University

A wide range of experience in resolving complex business problems.

* Cloud Technologies: EC2, S3, DynamoDB & RDS databases, Lambda serverless architecture, Microservices architecture, API Gateway, Cloud Front CDN, Linux/Windows systems administration, CloudFormation, DevOps, Docker, CICD, Node.js, Python, Java and other open source technologies. Familiarity with OpenStack.
* Web Technologies: HTML5, Node.Js, MEAN Stack, AngularJS, ASP.Net Core, MVC5, CSS3, jQuery, Bootstrap, MongoDB, JavaScript, JSON, AJAX.
* Data: Experience in database architecture, Big Data, Machine Learning, BI, Data Analytics, No-SQL databases, ETL.
* Mobile: IOS/Android app development

He lives with his wife Supriya and daughter Tisya in Bay Area.

Comments and Discussions