How to use?

3 posts, 1 answers
  1. Froggy
    Froggy avatar
    16 posts
    Member since:
    Apr 2012

    Posted 11 May 2012 Link to this post

    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.
  2. Answer
    Todor
    Admin
    Todor avatar
    778 posts

    Posted 11 May 2012 Link to this post

    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:
    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 >>

  3. DevCraft banner
  4. Vijay
    Vijay avatar
    29 posts
    Member since:
    Nov 2011

    Posted 02 Jun 2012 Link to this post

    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:

    <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


Back to Top