This question is locked. New answers and comments are not allowed.
Hi,
I do not find any example on how to use the BusyIndicator in the xaml.
I made this by looking at various forum posts, but I am unable to see the indicator on my page. what am I doing wrong?
<telerikPrimitives:RadBusyIndicator
x:Name="ProgressIndicator"
AnimationStyle="AnimationStyle1"
Content="Loading..."
Foreground="{StaticResource PhoneForegroundBrush}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
HorizontalContentAlignment="Center"/>
In code;
ProgressIndicator.IsRunning = true;
String content = prepareExport(); // Does some stuff for a few minutes....
ProgressIndicator.IsRunning = false;
The indicator is not displayed.
thanks!
S.
I do not find any example on how to use the BusyIndicator in the xaml.
I made this by looking at various forum posts, but I am unable to see the indicator on my page. what am I doing wrong?
<telerikPrimitives:RadBusyIndicator
x:Name="ProgressIndicator"
AnimationStyle="AnimationStyle1"
Content="Loading..."
Foreground="{StaticResource PhoneForegroundBrush}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
HorizontalContentAlignment="Center"/>
In code;
ProgressIndicator.IsRunning = true;
String content = prepareExport(); // Does some stuff for a few minutes....
ProgressIndicator.IsRunning = false;
The indicator is not displayed.
thanks!
S.
2 Answers, 1 is accepted
0
Accepted
Hello Steven,
Thank you for your interest in RadBusyIndicator.
The displaying of the BusyIndicator is executed on the UI thread and it is blocked while you are preparing the export. You can use a Dispatcher that will allow the indicator to be started first and then your time consuming operations may start:
Please note that you will also need to execute this code when the MainPage has been loaded, for example you can subscribe for its Loaded event:
And then you can place the code for the time consuming operations in MainPage_Loaded event handler:
I hope this information helps. Let me know if I can assist you further.
Kind regards,
Todor
the Telerik team
Thank you for your interest in RadBusyIndicator.
The displaying of the BusyIndicator is executed on the UI thread and it is blocked while you are preparing the export. You can use a Dispatcher that will allow the indicator to be started first and then your time consuming operations may start:
ProgressIndicator.IsRunning = true;
this.Dispatcher.BeginInvoke(() =>
{
String content = prepareExport(); // Does some stuff for a few minutes....
ProgressIndicator.IsRunning = false;
});
Please note that you will also need to execute this code when the MainPage has been loaded, for example you can subscribe for its Loaded event:
Loaded += new RoutedEventHandler(MainPage_Loaded);
And then you can place the code for the time consuming operations in MainPage_Loaded event handler:
void MainPage_Loaded(object sender, RoutedEventArgs e)
{
// place code here...
}
I hope this information helps. Let me know if I can assist you further.
Kind regards,
Todor
the Telerik team
Explore the entire Telerik portfolio by downloading the Ultimate Collection trial package. Get it now >>
0
Vijay
Top achievements
Rank 1
answered on 02 Jun 2012, 07:49 PM
Hello
Please find the sample code of Rad Busy Indicator. It should be useful for an initial start up. Place your appropriate controls and request your busy display screen according to your requirements.
Xaml Code:
MainPage.cs Code
Hope this time it should work out!!!!
Thanks and Regards,
Vijay
Please find the sample code of Rad Busy Indicator. It should be useful for an initial start up. Place your appropriate controls and request your busy display screen according to your requirements.
Xaml Code:
<
phone:PhoneApplicationPage
x:Class
=
"Rad_Busy_Indicator_Application.MainPage"
xmlns:phone
=
"clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
xmlns:shell
=
"clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
xmlns:telerik
=
"clr-namespace:Telerik.Windows.Controls.BusyIndicator;assembly=Telerik.Windows.Controls.Primitives"
xmlns:telerik1
=
"clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls.Primitives"
mc:Ignorable
=
"d"
d:DesignWidth
=
"480"
d:DesignHeight
=
"768"
FontFamily
=
"{StaticResource PhoneFontFamilyNormal}"
FontSize
=
"{StaticResource PhoneFontSizeNormal}"
Foreground
=
"{StaticResource PhoneForegroundBrush}"
SupportedOrientations
=
"Portrait"
Orientation
=
"Portrait"
shell:SystemTray.IsVisible
=
"True"
>
<!--LayoutRoot is the root grid where all page content is placed-->
<
Grid
x:Name
=
"LayoutRoot"
Background
=
"Transparent"
>
<
Grid.RowDefinitions
>
<
RowDefinition
Height
=
"Auto"
/>
<
RowDefinition
Height
=
"*"
/>
</
Grid.RowDefinitions
>
<!--TitlePanel contains the name of the application and page title-->
<
StackPanel
x:Name
=
"TitlePanel"
Grid.Row
=
"0"
Margin
=
"12,17,0,28"
>
<
TextBlock
x:Name
=
"ApplicationTitle"
Text
=
"Rad Busy Indicator Application"
FontFamily
=
"Verdana"
FontSize
=
"22"
Style
=
"{StaticResource PhoneTextNormalStyle}"
/>
<
TextBlock
x:Name
=
"PageTitle"
Text
=
"Windows 7 Phone"
Margin
=
"9,-7,0,0"
Style
=
"{StaticResource PhoneTextTitle1Style}"
/>
</
StackPanel
>
<!--ContentPanel - place additional content here-->
<
Grid
x:Name
=
"ContentPanel"
Grid.Row
=
"1"
Margin
=
"12,0,12,0"
>
<
TextBlock
Height
=
"30"
HorizontalAlignment
=
"Left"
Margin
=
"0,23,0,0"
Name
=
"textBlock1"
Text
=
"Please Enter First Number: "
FontFamily
=
"Verdana"
FontSize
=
"22"
VerticalAlignment
=
"Top"
/>
<
TextBlock
Height
=
"30"
Margin
=
"6,0,0,370"
Name
=
"textBlock2"
Text
=
"Please Enter Second Number: "
FontFamily
=
"Verdana"
FontSize
=
"22"
/>
<
TextBox
Height
=
"72"
HorizontalAlignment
=
"Left"
Margin
=
"325,84,0,0"
Name
=
"textBox1"
VerticalAlignment
=
"Top"
Width
=
"131"
/>
<
TextBox
Height
=
"72"
HorizontalAlignment
=
"Left"
Margin
=
"325,0,0,0"
Name
=
"textBox2"
VerticalAlignment
=
"Top"
Width
=
"131"
/>
<
TextBlock
FontFamily
=
"Verdana"
FontSize
=
"22"
Foreground
=
"Red"
Height
=
"30"
HorizontalAlignment
=
"Left"
Margin
=
"71,166,0,0"
Name
=
"textBlock3"
VerticalAlignment
=
"Top"
/>
<
Button
Content
=
"Addition"
FontFamily
=
"Verdana"
FontSize
=
"22"
Background
=
"Red"
Height
=
"72"
HorizontalAlignment
=
"Left"
Margin
=
"102,295,0,0"
Name
=
"button1"
VerticalAlignment
=
"Top"
Width
=
"240"
Click
=
"button1_Click"
/>
<
Button
Content
=
"Subtraction"
FontFamily
=
"Verdana"
FontSize
=
"22"
Background
=
"Blue"
Height
=
"72"
HorizontalAlignment
=
"Left"
Margin
=
"102,373,0,0"
Name
=
"button2"
VerticalAlignment
=
"Top"
Width
=
"240"
Click
=
"button2_Click"
/>
<
Button
Content
=
"Multiplication"
FontFamily
=
"Verdana"
FontSize
=
"22"
Background
=
"Yellow"
Height
=
"72"
HorizontalAlignment
=
"Left"
Margin
=
"102,451,0,0"
Name
=
"button3"
VerticalAlignment
=
"Top"
Width
=
"240"
Click
=
"button3_Click"
/>
<
Button
Content
=
"Division"
FontFamily
=
"Verdana"
FontSize
=
"22"
Background
=
"Green"
Height
=
"72"
HorizontalAlignment
=
"Left"
Margin
=
"102,529,0,0"
Name
=
"button4"
VerticalAlignment
=
"Top"
Width
=
"240"
Click
=
"button4_Click"
/>
<
telerik1:RadBusyIndicator
ContentPosition
=
"Bottom"
FontFamily
=
"Verdana"
FontSize
=
"22"
AnimationStyle
=
"AnimationStyle5"
Name
=
"radBusy1"
Foreground
=
"DeepSkyBlue"
Margin
=
"42,202,70,304"
>
</
telerik1:RadBusyIndicator
>
</
Grid
>
</
Grid
>
</
phone:PhoneApplicationPage
>
MainPage.cs Code
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
Microsoft.Phone.Controls;
using
Rad_Busy_Indicator_Application.ServiceReference1;
using
Telerik.Windows.Controls;
namespace
Rad_Busy_Indicator_Application
{
public
partial
class
MainPage : PhoneApplicationPage
{
// Constructor
public
MainPage()
{
InitializeComponent();
}
private
void
add_Call(
object
sender, addCompletedEventArgs e)
{
RadMessageBox.Show(
"Addition Result is: "
+ e.Result.ToString(), MessageBoxButtons.OKCancel,
"RadBusyIndicatory - WCF Service"
,
null
,
false
,
false
, System.Windows.HorizontalAlignment.Stretch, System.Windows.VerticalAlignment.Center,
null
);
radBusy1.IsRunning =
false
;
}
public
void
button1_Click(
object
sender, RoutedEventArgs e)
{
radBusy1.IsRunning =
false
;
textBlock3.Text =
""
;
if
(
string
.IsNullOrEmpty(textBox1.Text) ||
string
.IsNullOrEmpty(textBox2.Text))
{
textBlock3.Text =
"Please Enter Some Values"
;
}
else
{
radBusy1.IsRunning =
true
;
objClient.addCompleted +=
new
EventHandler<addCompletedEventArgs>(add_Call);
objClient.addAsync(Convert.ToDouble(textBox1.Text), Convert.ToDouble(textBox2.Text));
textBox1.Text =
""
;
textBox2.Text =
""
;
}
}
private
void
sub_Call(
object
sender, subCompletedEventArgs e)
{
RadMessageBox.Show(
"Subtraction Result is: "
+ e.Result.ToString(), MessageBoxButtons.OKCancel,
"RadBusyIndicatory - WCF Service"
,
null
,
false
,
false
, System.Windows.HorizontalAlignment.Stretch, System.Windows.VerticalAlignment.Center,
null
);
radBusy1.IsRunning =
false
;
}
public
void
button2_Click(
object
sender, RoutedEventArgs e)
{
radBusy1.IsRunning =
false
;
textBlock3.Text =
""
;
if
(
string
.IsNullOrEmpty(textBox1.Text) ||
string
.IsNullOrEmpty(textBox2.Text))
{
textBlock3.Text =
"Please Enter Some Values"
;
}
else
{
radBusy1.IsRunning =
true
;
objClient.subCompleted +=
new
EventHandler<subCompletedEventArgs>(sub_Call);
objClient.subAsync(Convert.ToDouble(textBox1.Text), Convert.ToDouble(textBox2.Text));
textBox1.Text =
""
;
textBox2.Text =
""
;
}
}
private
void
mul_Call(
object
sender, mulCompletedEventArgs e)
{
RadMessageBox.Show(
"Multiplication Result is: "
+ e.Result.ToString(), MessageBoxButtons.OKCancel,
"RadBusyIndicatory - WCF Service"
,
null
,
false
,
false
, System.Windows.HorizontalAlignment.Stretch, System.Windows.VerticalAlignment.Center,
null
);
radBusy1.IsRunning =
false
;
}
public
void
button3_Click(
object
sender, RoutedEventArgs e)
{
radBusy1.IsRunning =
false
;
textBlock3.Text =
""
;
if
(
string
.IsNullOrEmpty(textBox1.Text) ||
string
.IsNullOrEmpty(textBox2.Text))
{
textBlock3.Text =
"Please Enter Some Values"
;
}
else
{
radBusy1.IsRunning =
true
;
objClient.mulCompleted +=
new
EventHandler<mulCompletedEventArgs>(mul_Call);
objClient.mulAsync(Convert.ToDouble(textBox1.Text), Convert.ToDouble(textBox2.Text));
textBox1.Text =
""
;
textBox2.Text =
""
;
}
}
private
void
div_Call(
object
sender, divCompletedEventArgs e)
{
RadMessageBox.Show(
"Division Result is: "
+ e.Result.ToString(), MessageBoxButtons.OKCancel,
"RadBusyIndicatory - WCF Service"
,
null
,
false
,
false
, System.Windows.HorizontalAlignment.Stretch, System.Windows.VerticalAlignment.Center,
null
);
radBusy1.IsRunning =
false
;
}
public
void
button4_Click(
object
sender, RoutedEventArgs e)
{
radBusy1.IsRunning =
false
;
textBlock3.Text =
""
;
if
(
string
.IsNullOrEmpty(textBox1.Text) ||
string
.IsNullOrEmpty(textBox2.Text))
{
textBlock3.Text =
"Please Enter Some Values"
;
}
else
{
radBusy1.IsRunning =
true
;
objClient.divCompleted +=
new
EventHandler<divCompletedEventArgs>(div_Call);
objClient.divAsync(Convert.ToDouble(textBox1.Text), Convert.ToDouble(textBox2.Text));
textBox1.Text =
""
;
textBox2.Text =
""
;
}
}
#region Instance Variables
Service1Client objClient =
new
Service1Client();
#endregion
}
}
Hope this time it should work out!!!!
Thanks and Regards,
Vijay