
Dave Navarro
Top achievements
Rank 2
Dave Navarro
asked on 18 Jun 2011, 09:14 PM
Hello,
On the demo pages you have a control that is located just below the tab control. It appears as a blue bar but it also acts as a page loading progress bar. Here's one page that shows it; http://demos.telerik.com/silverlight/#GridView/FirstLook
My question is; is that a slider control? I've searched the sample project and have not found it yet.
Would you please be so kind as to tell me what page / project that is located in or better yet, do you have some sample code that you can post that shows how you wired up the control to the page loading event?
Many thanks in advance,
~ Dave Navarro
On the demo pages you have a control that is located just below the tab control. It appears as a blue bar but it also acts as a page loading progress bar. Here's one page that shows it; http://demos.telerik.com/silverlight/#GridView/FirstLook
My question is; is that a slider control? I've searched the sample project and have not found it yet.
Would you please be so kind as to tell me what page / project that is located in or better yet, do you have some sample code that you can post that shows how you wired up the control to the page loading event?
Many thanks in advance,
~ Dave Navarro
4 Answers, 1 is accepted
0
Hello Dave Navarro,
Please check my answer in the support ticket you have sent.
Best wishes,
Kalin Milanov
the Telerik team
Please check my answer in the support ticket you have sent.
Best wishes,
Kalin Milanov
the Telerik team
Do you want to have your say when we set our development plans?
Do you want to know when a feature you care about is added or when a bug fixed?
Explore the
Telerik Public Issue Tracking
system and vote to affect the priority of the items
0

Dave Navarro
Top achievements
Rank 2
answered on 21 Jun 2011, 04:42 PM
<From my support ticket.../>
Hi David,
What you see there is a highly customized busy indicator. The busy indicator itself uses a progress bar to show the progress (the one that looks like a slider).
The implementation of the control is rather simple. Here is the XAML we use.
The BusyIndicator:
The content (the small icons and the GridView text you see while it is loading)
The styles to make it look like in the demos site
I hope this helps.
Greetings,
Kalin Milanov
the Telerik team
Hi David,
What you see there is a highly customized busy indicator. The busy indicator itself uses a progress bar to show the progress (the one that looks like a slider).
The implementation of the control is rather simple. Here is the XAML we use.
The BusyIndicator:
<
telerik:RadBusyIndicator
Grid.Row
=
"1"
Grid.ColumnSpan
=
"2"
IsBusy
=
"{Binding IsBusy, ElementName=exampleContentControl}"
Margin
=
"0,1,0,0"
ProgressValue
=
"{Binding ProgressPercentage, ElementName=exampleContentControl}"
IsIndeterminate
=
"False"
Style
=
"{StaticResource BusyIndicatorStyle}"
BusyContentTemplate
=
"{StaticResource BusyContentDataTemplate}"
BusyContent
=
"{Binding}"
d:IsHidden
=
"True"
/>
The content (the small icons and the GridView text you see while it is loading)
<
DataTemplate
x:Key
=
"BusyContentDataTemplate"
>
<
Grid
>
<
Grid.RowDefinitions
>
<
RowDefinition
/>
<
RowDefinition
/>
</
Grid.RowDefinitions
>
<
TextBlock
Text
=
"{Binding CurrentPage.ParentControl.Text}"
VerticalAlignment
=
"Bottom"
HorizontalAlignment
=
"Center"
Foreground
=
"#19000000"
FontSize
=
"100"
FontFamily
=
"/Telerik.Windows.QuickStartUITheme;component/Fonts/MyriadPro-Light.otf#Myriad Pro Light"
/>
<
TextBlock
Text
=
"LOADING EXAMPLES"
FontSize
=
"9"
Foreground
=
"#FF3D4350"
Opacity
=
"0.75"
VerticalAlignment
=
"Bottom"
HorizontalAlignment
=
"Center"
/>
<
StackPanel
Orientation
=
"Horizontal"
HorizontalAlignment
=
"Center"
VerticalAlignment
=
"Top"
Grid.Row
=
"1"
>
<
Border
VerticalAlignment
=
"Top"
BorderThickness
=
"1"
BorderBrush
=
"#FF19A0EA"
Background
=
"White"
CornerRadius
=
"2"
Width
=
"16"
Height
=
"16"
Margin
=
"2,0"
Opacity
=
"0.55"
/>
<
Border
VerticalAlignment
=
"Top"
BorderThickness
=
"1.5"
BorderBrush
=
"#FF19A0EA"
Background
=
"White"
CornerRadius
=
"2"
Width
=
"24"
Height
=
"24"
Margin
=
"3,0"
Opacity
=
"0.6"
/>
<
Border
VerticalAlignment
=
"Top"
BorderThickness
=
"2"
BorderBrush
=
"#FF19A0EA"
Background
=
"White"
CornerRadius
=
"2"
Width
=
"32"
Height
=
"32"
Margin
=
"4,0"
Opacity
=
"0.85"
/>
<
Image
VerticalAlignment
=
"Top"
Source
=
"{Binding CurrentPage.ParentControl.IconBig}"
Width
=
"46"
Height
=
"46"
Margin
=
"5,0"
Opacity
=
"1"
/>
<
Border
VerticalAlignment
=
"Top"
BorderThickness
=
"2"
BorderBrush
=
"#FF19A0EA"
Background
=
"White"
CornerRadius
=
"2"
Width
=
"32"
Height
=
"32"
Margin
=
"4,0"
Opacity
=
"0.85"
/>
<
Border
VerticalAlignment
=
"Top"
BorderThickness
=
"1.5"
BorderBrush
=
"#FF19A0EA"
Background
=
"White"
CornerRadius
=
"2"
Width
=
"24"
Height
=
"24"
Margin
=
"3,0"
Opacity
=
"0.6"
/>
<
Border
VerticalAlignment
=
"Top"
BorderThickness
=
"1"
BorderBrush
=
"#FF19A0EA"
Background
=
"White"
CornerRadius
=
"2"
Width
=
"16"
Height
=
"16"
Margin
=
"2,0"
Opacity
=
"0.55"
/>
</
StackPanel
>
</
Grid
>
</
DataTemplate
>
The styles to make it look like in the demos site
<
ControlTemplate
x:Key
=
"ProgressBarTemplate"
TargetType
=
"telerik:RadProgressBar"
>
<
Grid
>
<
VisualStateManager.VisualStateGroups
>
<
VisualStateGroup
x:Name
=
"OrientationStates"
>
<
VisualState
x:Name
=
"Horizontal"
>
<
Storyboard
>
<
ObjectAnimationUsingKeyFrames
Duration
=
"00:00:00"
Storyboard.TargetProperty
=
"(LayoutTransformControl.LayoutTransform)"
Storyboard.TargetName
=
"transformationRoot"
>
<
DiscreteObjectKeyFrame
KeyTime
=
"00:00:00"
>
<
DiscreteObjectKeyFrame.Value
>
<
RotateTransform
Angle
=
"0"
/>
</
DiscreteObjectKeyFrame.Value
>
</
DiscreteObjectKeyFrame
>
</
ObjectAnimationUsingKeyFrames
>
</
Storyboard
>
</
VisualState
>
<
VisualState
x:Name
=
"Vertical"
>
<
Storyboard
>
<
ObjectAnimationUsingKeyFrames
Duration
=
"00:00:00"
Storyboard.TargetProperty
=
"(LayoutTransformControl.LayoutTransform)"
Storyboard.TargetName
=
"transformationRoot"
>
<
DiscreteObjectKeyFrame
KeyTime
=
"00:00:00"
>
<
DiscreteObjectKeyFrame.Value
>
<
RotateTransform
Angle
=
"-90"
/>
</
DiscreteObjectKeyFrame.Value
>
</
DiscreteObjectKeyFrame
>
</
ObjectAnimationUsingKeyFrames
>
</
Storyboard
>
</
VisualState
>
</
VisualStateGroup
>
<
VisualStateGroup
x:Name
=
"CommonStates"
>
<
VisualState
x:Name
=
"Determinate"
/>
<
VisualState
x:Name
=
"Indeterminate"
>
<
Storyboard
RepeatBehavior
=
"Forever"
>
<
ObjectAnimationUsingKeyFrames
Duration
=
"00:00:00"
Storyboard.TargetProperty
=
"(UIElement.Visibility)"
Storyboard.TargetName
=
"IndeterminateRoot"
>
<
DiscreteObjectKeyFrame
KeyTime
=
"00:00:00"
Value
=
"Visible"
/>
</
ObjectAnimationUsingKeyFrames
>
<
ObjectAnimationUsingKeyFrames
Duration
=
"00:00:00"
Storyboard.TargetProperty
=
"(UIElement.Visibility)"
Storyboard.TargetName
=
"DeterminateRoot"
>
<
DiscreteObjectKeyFrame
KeyTime
=
"00:00:00"
Value
=
"Collapsed"
/>
</
ObjectAnimationUsingKeyFrames
>
<
DoubleAnimationUsingKeyFrames
Storyboard.TargetProperty
=
"(Shape.Fill).(LinearGradientBrush.Transform).(TransformGroup.Children)[0].X"
Storyboard.TargetName
=
"IndeterminateGradientFill"
>
<
SplineDoubleKeyFrame
KeyTime
=
"0"
Value
=
"0"
/>
<
SplineDoubleKeyFrame
KeyTime
=
"00:00:.5"
Value
=
"20"
/>
</
DoubleAnimationUsingKeyFrames
>
</
Storyboard
>
</
VisualState
>
</
VisualStateGroup
>
</
VisualStateManager.VisualStateGroups
>
<
telerik:LayoutTransformControl
x:Name
=
"transformationRoot"
>
<
Grid
x:Name
=
"Root"
>
<
Border
x:Name
=
"ProgressBarTrack"
BorderThickness
=
"{TemplateBinding BorderThickness}"
Background
=
"Transparent"
/>
<
Grid
x:Name
=
"ProgressBarRootGrid"
>
<
Border
x:Name
=
"ProgressBarRootGradient"
BorderThickness
=
"{TemplateBinding BorderThickness}"
Margin
=
"{TemplateBinding BorderThickness}"
Canvas.ZIndex
=
"1"
/>
<
Grid
x:Name
=
"IndeterminateRoot"
Visibility
=
"Collapsed"
>
<
Border
x:Name
=
"IndeterminateSolidFill"
Background
=
"{TemplateBinding Foreground}"
Margin
=
"{TemplateBinding BorderThickness}"
Opacity
=
"1"
RenderTransformOrigin
=
"0.5,0.5"
/>
<
Rectangle
x:Name
=
"IndeterminateGradientFill"
Margin
=
"{TemplateBinding BorderThickness}"
Opacity
=
"0.7"
RadiusY
=
"1"
RadiusX
=
"1"
>
<
Rectangle.Fill
>
<
LinearGradientBrush
EndPoint
=
"0,1"
MappingMode
=
"Absolute"
SpreadMethod
=
"Repeat"
StartPoint
=
"20,1"
>
<
LinearGradientBrush.Transform
>
<
TransformGroup
>
<
TranslateTransform
X
=
"0"
/>
<
SkewTransform
AngleX
=
"-30"
/>
</
TransformGroup
>
</
LinearGradientBrush.Transform
>
<
GradientStop
Color
=
"#CCFFFFFF"
Offset
=
"0"
/>
<
GradientStop
Color
=
"#00FFFFFF"
Offset
=
".50"
/>
<
GradientStop
Color
=
"#CCFFFFFF"
Offset
=
"1.10"
/>
</
LinearGradientBrush
>
</
Rectangle.Fill
>
</
Rectangle
>
</
Grid
>
<
Grid
x:Name
=
"DeterminateRoot"
>
<
Grid.ColumnDefinitions
>
<
ColumnDefinition
Width
=
"Auto"
/>
<
ColumnDefinition
Width
=
"Auto"
/>
<
ColumnDefinition
Width
=
"*"
/>
</
Grid.ColumnDefinitions
>
<
Rectangle
x:Name
=
"SkipValueSpacer"
Fill
=
"Transparent"
Height
=
"1"
Width
=
"0"
/>
<
Rectangle
x:Name
=
"ProgressBarIndicator"
Grid.Column
=
"1"
Fill
=
"{TemplateBinding Foreground}"
HorizontalAlignment
=
"Left"
StrokeThickness
=
"0"
VerticalAlignment
=
"Center"
Height
=
"4"
/>
<
Grid
Grid.Column
=
"1"
HorizontalAlignment
=
"Right"
RenderTransformOrigin
=
"0.5,0.5"
VerticalAlignment
=
"Center"
Height
=
"14"
Width
=
"32"
>
<
Grid.Background
>
<
LinearGradientBrush
EndPoint
=
"0.5,1"
StartPoint
=
"0.5,0"
>
<
GradientStop
Color
=
"#FF137CB5"
Offset
=
"0"
/>
<
GradientStop
Color
=
"#FF2CB2FB"
Offset
=
"1"
/>
</
LinearGradientBrush
>
</
Grid.Background
>
<
StackPanel
Orientation
=
"Horizontal"
HorizontalAlignment
=
"Center"
VerticalAlignment
=
"Center"
>
<
TextBlock
TextWrapping
=
"Wrap"
Text
=
"{Binding Value, RelativeSource={RelativeSource TemplatedParent}}"
Foreground
=
"White"
HorizontalAlignment
=
"Center"
VerticalAlignment
=
"Center"
FontSize
=
"9"
/>
<
TextBlock
TextWrapping
=
"Wrap"
Text
=
"%"
Foreground
=
"White"
FontSize
=
"10"
HorizontalAlignment
=
"Center"
VerticalAlignment
=
"Center"
/>
</
StackPanel
>
<
Path
x:Name
=
"stripe_bend_Copy"
Data
=
"M5,0 L5,5 L0,5 z"
HorizontalAlignment
=
"Left"
Margin
=
"-6,0,0,0"
Stretch
=
"Fill"
StrokeThickness
=
"0"
Width
=
"6"
UseLayoutRounding
=
"False"
Height
=
"5"
VerticalAlignment
=
"Bottom"
RenderTransformOrigin
=
"0.5,0.5"
>
<
Path.RenderTransform
>
<
CompositeTransform
ScaleY
=
"-1"
/>
</
Path.RenderTransform
>
<
Path.Fill
>
<
LinearGradientBrush
EndPoint
=
"0.5,1"
StartPoint
=
"0.5,0"
>
<
GradientStop
Color
=
"#FF004872"
Offset
=
"1"
/>
<
GradientStop
Color
=
"#FF197BAD"
/>
</
LinearGradientBrush
>
</
Path.Fill
>
</
Path
>
</
Grid
>
</
Grid
>
</
Grid
>
</
Grid
>
</
telerik:LayoutTransformControl
>
</
Grid
>
</
ControlTemplate
>
<
Style
x:Key
=
"ProgressBarStyle"
TargetType
=
"telerik:RadProgressBar"
>
<
Setter
Property
=
"Maximum"
Value
=
"100"
/>
<
Setter
Property
=
"Orientation"
Value
=
"Horizontal"
/>
<
Setter
Property
=
"IsTabStop"
Value
=
"False"
/>
<
Setter
Property
=
"Template"
Value
=
"{StaticResource ProgressBarTemplate}"
/>
</
Style
>
<
ControlTemplate
x:Key
=
"BusyIndicatorTemplate"
TargetType
=
"telerik:RadBusyIndicator"
>
<
Grid
>
<
VisualStateManager.VisualStateGroups
>
<
VisualStateGroup
x:Name
=
"VisibilityStates"
>
<
VisualState
x:Name
=
"Hidden"
>
<
Storyboard
>
<
ObjectAnimationUsingKeyFrames
BeginTime
=
"00:00:00"
Duration
=
"00:00:00.001"
Storyboard.TargetProperty
=
"(UIElement.Visibility)"
Storyboard.TargetName
=
"Overlay"
>
<
DiscreteObjectKeyFrame
KeyTime
=
"00:00:00"
>
<
DiscreteObjectKeyFrame.Value
>
<
Visibility
>Collapsed</
Visibility
>
</
DiscreteObjectKeyFrame.Value
>
</
DiscreteObjectKeyFrame
>
</
ObjectAnimationUsingKeyFrames
>
<
ObjectAnimationUsingKeyFrames
Storyboard.TargetProperty
=
"(UIElement.Visibility)"
Storyboard.TargetName
=
"shadow_A"
>
<
DiscreteObjectKeyFrame
KeyTime
=
"0"
>
<
DiscreteObjectKeyFrame.Value
>
<
Visibility
>Collapsed</
Visibility
>
</
DiscreteObjectKeyFrame.Value
>
</
DiscreteObjectKeyFrame
>
</
ObjectAnimationUsingKeyFrames
>
<
ObjectAnimationUsingKeyFrames
Storyboard.TargetProperty
=
"(UIElement.Visibility)"
Storyboard.TargetName
=
"ProgressBar"
>
<
DiscreteObjectKeyFrame
KeyTime
=
"0"
>
<
DiscreteObjectKeyFrame.Value
>
<
Visibility
>Collapsed</
Visibility
>
</
DiscreteObjectKeyFrame.Value
>
</
DiscreteObjectKeyFrame
>
</
ObjectAnimationUsingKeyFrames
>
<
ObjectAnimationUsingKeyFrames
Storyboard.TargetProperty
=
"(UIElement.Visibility)"
Storyboard.TargetName
=
"contentPresenter"
>
<
DiscreteObjectKeyFrame
KeyTime
=
"0"
>
<
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.TargetProperty
=
"(UIElement.Visibility)"
Storyboard.TargetName
=
"Overlay"
>
<
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.TargetProperty
=
"(Control.IsEnabled)"
Storyboard.TargetName
=
"Content"
>
<
DiscreteObjectKeyFrame
KeyTime
=
"00:00:00"
>
<
DiscreteObjectKeyFrame.Value
>
<
System:Boolean
>True</
System:Boolean
>
</
DiscreteObjectKeyFrame.Value
>
</
DiscreteObjectKeyFrame
>
</
ObjectAnimationUsingKeyFrames
>
</
Storyboard
>
</
VisualState
>
<
VisualState
x:Name
=
"Busy"
>
<
Storyboard
>
<
ObjectAnimationUsingKeyFrames
BeginTime
=
"00:00:00"
Duration
=
"00:00:00.001"
Storyboard.TargetProperty
=
"(Control.IsEnabled)"
Storyboard.TargetName
=
"Content"
>
<
DiscreteObjectKeyFrame
KeyTime
=
"00:00:00"
>
<
DiscreteObjectKeyFrame.Value
>
<
System:Boolean
>False</
System:Boolean
>
</
DiscreteObjectKeyFrame.Value
>
</
DiscreteObjectKeyFrame
>
</
ObjectAnimationUsingKeyFrames
>
</
Storyboard
>
</
VisualState
>
</
VisualStateGroup
>
</
VisualStateManager.VisualStateGroups
>
<
ContentControl
x:Name
=
"Content"
ContentTemplate
=
"{TemplateBinding ContentTemplate}"
Content
=
"{TemplateBinding Content}"
HorizontalContentAlignment
=
"{TemplateBinding HorizontalContentAlignment}"
IsEnabled
=
"False"
VerticalContentAlignment
=
"{TemplateBinding VerticalContentAlignment}"
/>
<
Rectangle
x:Name
=
"Overlay"
Style
=
"{TemplateBinding OverlayStyle}"
Fill
=
"WhiteSmoke"
/>
<
Rectangle
x:Name
=
"shadow_A"
Height
=
"10"
VerticalAlignment
=
"Top"
StrokeThickness
=
"0"
Margin
=
"0,0,0,0"
>
<
Rectangle.OpacityMask
>
<
LinearGradientBrush
EndPoint
=
"1,0.5"
StartPoint
=
"0,0.5"
>
<
GradientStop
Color
=
"White"
Offset
=
"0.5"
/>
<
GradientStop
Color
=
"#4C000000"
/>
<
GradientStop
Color
=
"#4C000000"
Offset
=
"1"
/>
</
LinearGradientBrush
>
</
Rectangle.OpacityMask
>
<
Rectangle.Fill
>
<
LinearGradientBrush
EndPoint
=
"0.5,1"
StartPoint
=
"0.5,0"
>
<
GradientStop
Color
=
"#66000000"
Offset
=
"0"
/>
<
GradientStop
Offset
=
"0.7"
/>
</
LinearGradientBrush
>
</
Rectangle.Fill
>
</
Rectangle
>
<
telerik:RadProgressBar
x:Name
=
"ProgressBar"
IsIndeterminate
=
"{TemplateBinding IsIndeterminate}"
Value
=
"{TemplateBinding ProgressValue}"
VerticalAlignment
=
"Top"
Style
=
"{StaticResource ProgressBarStyle}"
BorderThickness
=
"0"
Margin
=
"0,-9,0,0"
>
<
telerik:RadProgressBar.Foreground
>
<
LinearGradientBrush
EndPoint
=
"0.5,1"
StartPoint
=
"0.5,0"
>
<
GradientStop
Color
=
"#FF2CB2FB"
Offset
=
"1"
/>
<
GradientStop
Color
=
"#FF137CB5"
Offset
=
"0"
/>
</
LinearGradientBrush
>
</
telerik:RadProgressBar.Foreground
>
</
telerik:RadProgressBar
>
<
ContentPresenter
x:Name
=
"contentPresenter"
Content
=
"{TemplateBinding BusyContent}"
ContentTemplate
=
"{TemplateBinding BusyContentTemplate}"
HorizontalAlignment
=
"Center"
VerticalAlignment
=
"Center"
/>
</
Grid
>
</
ControlTemplate
>
<
Style
x:Key
=
"BusyIndicatorStyle"
TargetType
=
"telerik:RadBusyIndicator"
>
<
Setter
Property
=
"BusyContent"
Value
=
"Loading..."
/>
<
Setter
Property
=
"IsTabStop"
Value
=
"False"
/>
<
Setter
Property
=
"DisplayAfter"
Value
=
"0"
/>
<
Setter
Property
=
"BorderThickness"
Value
=
"1"
/>
<
Setter
Property
=
"HorizontalContentAlignment"
Value
=
"Stretch"
/>
<
Setter
Property
=
"VerticalContentAlignment"
Value
=
"Stretch"
/>
<
Setter
Property
=
"Template"
Value
=
"{StaticResource BusyIndicatorTemplate}"
/>
</
Style
>
I hope this helps.
Greetings,
Kalin Milanov
the Telerik team
Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items
0

Andy Robinson
Top achievements
Rank 1
answered on 10 Dec 2011, 08:05 AM
I'm trying to implement this code in my solution but struggling with where each piece belongs. I've started by trying to include the "The styles to make it look like in the demos site" in a Styles.XAML resource dictionary but it's not happy with some of the elements. Could you provide a simplified solution that shows where each of these pieces of code are implemented.
Thanks,
Andy
Thanks,
Andy
0
Hi Andy,
I attached a solution demonstrating how to use the customized RadBusyIndicator in a sample scenario. Please have a look at it and let me know if this is what you had in mind.
Regards,
Tina Stancheva
the Telerik team
I attached a solution demonstrating how to use the customized RadBusyIndicator in a sample scenario. Please have a look at it and let me know if this is what you had in mind.
Regards,
Tina Stancheva
the Telerik team
Explore the entire Telerik portfolio by downloading the Ultimate Collection trial package. Get it now >>