This is a migrated thread and some comments may be shown as answers.

Background visible when IsBusy=false?

15 Answers 223 Views
BusyIndicator
This is a migrated thread and some comments may be shown as answers.
Nuno Ferreira
Top achievements
Rank 1
Nuno Ferreira asked on 11 Nov 2010, 07:10 PM
Isn't supposed the background of BusyIndicator controls, to be shown only when the property IsBusy = true?

I writed a simple example (code below) and I see a grayed background!

<Grid x:Name="LayoutRoot" Background="White">
    <telerik:RadBusyIndicator Name="radBusyIndicator1" BusyContent="wait..." IsBusy="False"/>
</Grid>

I don't have any styles in the project (I started a new, clean project). I'm using lastest version (Q3) of RadControls, SL4 and VS2010.

Thanks,
Nuno

15 Answers, 1 is accepted

Sort by
0
Accepted
Konstantina
Telerik team
answered on 12 Nov 2010, 11:12 AM
Hi Nuno,

Thank you for contacting us.

This issue will be fixed in the next internal build. Your Telerik points have been updated for your involvement.

Please let us know if you have any other questions.

Greetings,
Konstantina
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
Manuel Felício
Top achievements
Rank 1
answered on 15 Nov 2010, 08:19 PM
I'm also having this problem. I have an album of images and I want to display a busy indicator for each image while I'm downloading them and the grey rectangle is very annoying. Is there any work-around we can apply?
0
neo e
Top achievements
Rank 1
answered on 17 Nov 2010, 03:58 PM
I have a busyindicator wrapping a gridview and after the data is loaded, I set the busyindication.isbusy to false, but the gridview does not show the data. should I or is there a way to refresh the control in order to make the new content show up?
0
Konstantina
Telerik team
answered on 18 Nov 2010, 08:01 AM
Hi all,

Sorry for the inconvenience caused.

This background will be removed and the fix will be included in the next internal build.
Please accept our apologies.
As for the GridView, there is no particular way to refresh the BusyIndicator. Could you please go through our online documentation and this forum post in which you can find a sample project how to use the BusyIndicator. You can also check out our online demos: http://demos.telerik.com/silverlight/#BusyIndicator/FirstLook
If you still experience difficulties please send us a sample project in which we can observe the issue.

Please let us know if you have any more inquiries.

Sincerely yours,
Konstantina
the Telerik team
Browse the videos here>> to help you get started with RadControls for Silverlight
0
Raghava
Top achievements
Rank 1
answered on 08 Dec 2010, 07:36 PM
Hi Telerik team,
I also encounter same/similar problem. I placed one button & RadTileView in the page. On button click I am generating items and setting to RadTileView.ItemsSource. Nothing shows up. Reason was RadTileView's height set to 0. Interestingly width is set as it should be. I see this behavior particularly when RadTileView is wrapped with RadBusyIndicator and RadBusyIndicator.VerticalAlignment was explicitly set in xaml.

I posting the code below. You can see this behavior with this code. Also run the code with out setting RadBusyIndicator.VerticalAlignment. It works all good once you remove the property setting.

Xaml below:
<navigation:Page x:Class="SL_BusyIndicator.Page1"
           xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
           mc:Ignorable="d"
           xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation"
                 xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
           d:DesignWidth="640" d:DesignHeight="480"
           Title="Page1 Page">
    <Grid x:Name="LayoutRoot">
        <Grid.RowDefinitions>
            <RowDefinition Height="30" />
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>
        <Button Click="Button_Click" Content="Load Data" Width="200" HorizontalAlignment="Left"  Grid.Row="0"/>
        <telerik:RadTabControl Grid.Row="1">
            <telerik:RadTabItem DropDownContent="Process Steps">
                <telerik:RadTabItem.Header>
                    <telerik:TextClipper Content="Process Steps" Margin="15 2 15 0" />
                </telerik:RadTabItem.Header>
                <telerik:RadTabItem.Content>
                    <telerik:RadBusyIndicator BusyContent="Loading..." HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" IsBusy="False" x:Name="busyInd"
                                              VerticalAlignment="Top" >
 
                        <telerik:RadTileView VerticalAlignment="Stretch" HorizontalAlignment="Stretch" x:Name="tileView"  MinimizedColumnWidth="140" TileStateChanged="tileView_TileStateChanged"
                                             ScrollBarVisibility="Auto">
                            <telerik:RadTileView.ItemContainerStyle>
                                <Style TargetType="telerik:RadTileViewItem">
                                    <Setter Property="MinimizedHeight" Value="100" />
                                    <Setter Property="Background" Value="Transparent" />
                                    <Setter Property="HorizontalContentAlignment" Value="Stretch" />
                                    <Setter Property="VerticalContentAlignment" Value="Stretch" />
                                </Style>
                            </telerik:RadTileView.ItemContainerStyle>
                            <telerik:RadTileView.ItemTemplate>
                                <DataTemplate>
                                    <TextBlock Text="{Binding Field1}" />
                                </DataTemplate>
                            </telerik:RadTileView.ItemTemplate>
                            <telerik:RadTileView.ContentTemplate>
                                <DataTemplate>
                                    <telerik:RadFluidContentControl ContentChangeMode="Manual" x:Name="xRadFluidCtrlSteps" State="Normal" Background="Transparent">
                                        <telerik:RadFluidContentControl.SmallContent>
                                            <StackPanel VerticalAlignment="Center" Background="LightBlue" HorizontalAlignment="Center">
                                                <telerik:TextClipper Content="Field1: " FontWeight="Bold" Foreground="SteelBlue" />
                                                <telerik:TextClipper Content="{Binding Field1}" FontWeight="Bold" Foreground="SteelBlue" />
                                            </StackPanel>
                                        </telerik:RadFluidContentControl.SmallContent>
                                        <telerik:RadFluidContentControl.Content>
                                            <Grid Background="Coral">
                                                <StackPanel VerticalAlignment="Center" HorizontalAlignment="Center">
                                                    <telerik:TextClipper Content="Field1: " FontWeight="Bold" Foreground="SteelBlue" />
                                                    <telerik:TextClipper Content="{Binding Field1}" FontWeight="Bold" Foreground="SteelBlue" />
                                                    <telerik:TextClipper Content="Field2: " FontWeight="Bold" Foreground="SteelBlue" />
                                                    <telerik:TextClipper Content="{Binding Field2}" FontWeight="Bold" Foreground="SteelBlue" />
                                                </StackPanel>
                                            </Grid>
                                        </telerik:RadFluidContentControl.Content>
                                        <telerik:RadFluidContentControl.LargeContent>
                                            <StackPanel Background="LightGreen" >
                                                <telerik:TextClipper Content="Field1: " FontWeight="Bold" Foreground="SteelBlue" />
                                                <telerik:TextClipper Content="{Binding Field1}" FontWeight="Bold" Foreground="SteelBlue" />
                                                <telerik:TextClipper Content="Field2: " FontWeight="Bold" Foreground="SteelBlue" />
                                                <telerik:TextClipper Content="{Binding Field2}" FontWeight="Bold" Foreground="SteelBlue" />
                                                <telerik:TextClipper Content="Field3: " FontWeight="Bold" Foreground="SteelBlue" />
                                                <telerik:TextClipper Content="{Binding Field3}" FontWeight="Bold" Foreground="SteelBlue" />
                                            </StackPanel>
                                        </telerik:RadFluidContentControl.LargeContent>
                                    </telerik:RadFluidContentControl>
                                </DataTemplate>
                            </telerik:RadTileView.ContentTemplate>
                        </telerik:RadTileView>
                    </telerik:RadBusyIndicator>
                </telerik:RadTabItem.Content>
            </telerik:RadTabItem>
            <telerik:RadTabItem Padding="4 1" DropDownContent="Services Log">
                <telerik:RadTabItem.Header>
                    <telerik:TextClipper Content="Services Log" Margin="15 2 15 0" />
                </telerik:RadTabItem.Header>
            </telerik:RadTabItem>
        </telerik:RadTabControl>
    </Grid>
</navigation:Page>

CodeBehind (C#) below:
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 System.Windows.Navigation;
using Telerik.Windows.Controls;
 
namespace SL_BusyIndicator
{
    public partial class Page1 : Page
    {
        public Page1()
        {
            InitializeComponent();
            this.busyInd.IsBusy = true;
            this.tileView.ItemsSource = LoadItems();
            this.busyInd.IsBusy = false;
        }
 
        // Executes when the user navigates to this page.
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
 
        }
 
 
        private IEnumerable<TestItem> LoadItems()
        {
            Random rdm = new Random();
            int count = rdm.Next(5, 20);
            List<TestItem> li = new List<TestItem>();
            for (int i = 1; i <= count; i++)
            {
                li.Add(new TestItem() { Field1 = i.ToString() + ".Value1", Field2 = i.ToString() + ".Value2", Field3 = i.ToString() + ".Value3" });
            }
            return li.AsEnumerable();
        }
 
        private void tileView_TileStateChanged(object sender, Telerik.Windows.RadRoutedEventArgs e)
        {
            RadTileViewItem item = e.Source as RadTileViewItem;
            if (item != null)
            {
                //RadFluidContentControl fluidControl = item.Content as RadFluidContentControl;
                RadFluidContentControl fluidControl = item.ChildrenOfType<RadFluidContentControl>().FirstOrDefault();
                if (fluidControl != null)
                {
                    switch (item.TileState)
                    {
                        case TileViewItemState.Maximized:
                            fluidControl.State = FluidContentControlState.Large;
 
                            break;
                        case TileViewItemState.Minimized:
                            fluidControl.State = FluidContentControlState.Small;
                            break;
                        case TileViewItemState.Restored:
                            fluidControl.State = FluidContentControlState.Normal;
                            break;
                    }
                }
            }
        }
 
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            IEnumerable<TestItem> items = LoadItems();
            MessageBox.Show(string.Format("Loading {0} items", items.Count().ToString()));
            this.busyInd.IsBusy = true;
            this.tileView.ItemsSource = items;
            this.busyInd.IsBusy = false;
        }
    }
    public class TestItem
    {
        public string Field1 { get; set; }
        public string Field2 { get; set; }
        public string Field3 { get; set; }
    }
}

0
Konstantina
Telerik team
answered on 10 Dec 2010, 12:40 PM
Hi Raghava,

Thank you for the code snippet.

The BusyIndicator doesn't show, because the time to load the Items is very small. To properly implement the RadBusyIndicator you will have to use a BackgroundWorker. Please refer to this online demo in which is illustrated how to implement the RadBusyIndicator.

Hope this information helps. If you have further questions please let us know.

Regards,
Konstantina
the Telerik team
Browse the videos here>> to help you get started with RadControls for Silverlight
0
Raghava
Top achievements
Rank 1
answered on 10 Dec 2010, 07:53 PM
Hi Konstantina,
There is NO problem with RadBusyIndicator visibility. The problem is with RadTileView. RadTileView doesn't appear if RadBusyIndicator.VerticalAlignment is explicitly set.
0
Konstantina
Telerik team
answered on 13 Dec 2010, 01:54 PM
Hi Raghava,

The BusyIndicator is a ContentControl. And when you set the VerticalAlignment property to Top the Height of the BusyIndicator is 0, that is way it is not showing the TileView. You will have to either set fixed Height of the BusyIndicator or not set the Top alignment. Why do you need it to be top aligned, you can use Stretch instead?

Hope this information helps. If you have further questions please let us know.

Greetings,
Konstantina
the Telerik team
Browse the videos here>> to help you get started with RadControls for Silverlight
0
Developer
Top achievements
Rank 1
answered on 11 Feb 2011, 11:40 AM
I also have this issue, has it been fixed? I cant find any issue in PITS describing this.

Thank you in advance,
Lars Udengaard
0
Konstantina
Telerik team
answered on 15 Feb 2011, 12:23 PM
Hi Lars,

The issue is not added to PITS, because it is not a bug. To make it properly align there has to be set Height to the BusyIndicator or Top alignment as explained earlier.

Hope this helps. Please let us know if you have any other questions.

Regards,
Konstantina
the Telerik team
Let us know about your Windows Phone 7 application built with RadControls and we will help you promote it. Learn more>>
0
Manuel Felício
Top achievements
Rank 1
answered on 17 Feb 2011, 04:29 PM
How about the Background visibility issue when it is set to transparent. Is it fixed?

Best regards,
Manuel Felício.
0
Raghava
Top achievements
Rank 1
answered on 17 Feb 2011, 05:11 PM
Konstantina,
Why telerik doesn't agree their bugs? This is not first time, I have seen couple of other questions in the forum. What you are suggesting to the problem can be considered as work-around. The issue we are talking here is a true BUG. If one has to set the VerticalAlignment always to Top not anything else, why the property exists? Or atleast mention in your documentation that BusyIndicator.VerticalAlignment cannot be used. 

You asked a question Why do I need to align busyindicator vertical align to center? We have to align the busy indicator according to the UI & its style. Sorry, I cannot ask the same question to my client. Also Not everyone use fixed height & widths. using "stretch" doesn't work either. Only "Top" verticalAlignment works.
0
Konstantina
Telerik team
answered on 23 Feb 2011, 09:11 AM
Hi Raghava,

Since the BusyIndicator is a ContentControl it inherits the behaviour of the ContentControl. And that is way setting the Top alignment results in not showing the content. Please find attached a sample application in which the BusyIndicator is replaced with a ContentControl.
Could you please send us a screenshot showing what layout you are trying to achieve. In that way we will be able to provide you with a solution.

Greetings,
Konstantina
the Telerik team
Registration for Q1 2011 What’s New Webinar Week is now open. Mark your calendar for the week starting March 21st and book your seat for a walk through all the exciting stuff we ship with the new release!
0
Developer
Top achievements
Rank 1
answered on 23 Feb 2011, 09:20 AM
Hi Konstantina,

It was acutally the first bug mentioned, the one with the background, which i was interrested in. There is no issue tracking for this bug?
And i can see it mentioned in any release notes of the internal builds.

I dont want to update my telerik binaries, if the bug isnt fixed yet :-)

Regards,
Lars
0
Konstantina
Telerik team
answered on 24 Feb 2011, 09:27 AM
Hello Lars,

Yes, this issue is fixed.

If you still experience difficulties please send us your XAML code in order to investigate it and provide you with solution.

Best wishes,
Konstantina
the Telerik team
Registration for Q1 2011 What’s New Webinar Week is now open. Mark your calendar for the week starting March 21st and book your seat for a walk through all the exciting stuff we ship with the new release!
Tags
BusyIndicator
Asked by
Nuno Ferreira
Top achievements
Rank 1
Answers by
Konstantina
Telerik team
Manuel Felício
Top achievements
Rank 1
neo e
Top achievements
Rank 1
Raghava
Top achievements
Rank 1
Developer
Top achievements
Rank 1
Share this question
or