zoukankan      html  css  js  c++  java
  • Silverlight toolkit:BusyIndicator的使用

    toolkit:BusyIndicator 是一个加载动画的容器控件,当这个控件被激活时,容器内容会被锁定,就类似弹出一个层,底部门内容均不可操作,容器中间有一个加载动画,

    这个动画可以自己的定义,也可以可以是模板。下面看一个例子

    1:新建一个用户控件,前台代码如下:

    <Grid x:Name="LayoutRoot" Background="White">
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"/>
                <RowDefinition />
            </Grid.RowDefinitions>
            <StackPanel Orientation="Horizontal" Grid.Row="0">
                <Button x:Name="btnstart" Content="启动" Width="75" Height="30" Click="btnstart_Click" />
                <Button x:Name="btnstop" Content="停止" Width="75" Height="30" Click="btnstop_Click" />
            </StackPanel>
            <toolkit:BusyIndicator x:Name="Indicator" Grid.Row="1">
                <sdk:DataGrid x:Name="dglist" />
            </toolkit:BusyIndicator>
        </Grid>

    补充一下BusyIndicator 是toolkit的一个控件,所以要先添加toolkit的命名空间,一般在右边工具栏托到界面,系统就自动回吧引用代码写到头部。

    上面的界面很简单,一个启动按钮,一个停止按钮,然后是一个BusyIndicator容器,容器中间放了一个表格控件,注意,只有在容器里面的内容在加载状态时才会受影响,容器外面的不管。

    所以,一般要把内容都写到这个容器里面。

    下面看后台代码

     private void btnstart_Click(object sender, RoutedEventArgs e)
            {
                Indicator.IsBusy = true;
                DeskCollection desks = new DeskCollection();
                for (int i = 0; i < 21; i++)
                {
                    int state = 0;
                    if (i > 6)
                        state = 1;
                    if (i > 10)
                        state = 2;
                    if (i > 15)
                        state = 3;
    
                    Desk d = new Desk() { Id = i.ToString("000"), Name = "A" + i.ToString("00"), State = state, Count = 5, Grt = 555522.52F, Booker = "叶先生和刘先生", BookCount = 3 };
                    desks.Add(d);
                }
                dglist.ItemsSource = desks;
            }
    
            private void btnstop_Click(object sender, RoutedEventArgs e)
            {
                Indicator.IsBusy = false;
            }
    

     重点:Indicator.IsBusy = true;  Indicator.IsBusy = false;  当为true时,就会激活加载状态,为false时就停止。

    效果图如下:

    补充一点:如果是动态加载用户控件的设计界面,需要获取父控件的元素代码如下

      BusyIndicator busyIndicator = ((FrameworkElement)App.Current.RootVisual).FindName("Indicator") as BusyIndicator;

    其中"Indicator"就是控件名称
                busyIndicator.IsBusy=true;

  • 相关阅读:
    [SAP HANA] HANA 安装更新工具HDBLCM
    [SAP BASIS] [TMS] TMS相关的程序和后台作业
    [sap basis] [authorization trace] Disable/enable authorization trace
    IEEE 802.11 标准列表
    802.11 wireless 七
    802.11 wireless 六
    802.11 wireless 五
    802.11 wireless 四
    802.11 wireless 三
    802.11 wireless 二
  • 原文地址:https://www.cnblogs.com/Rmeo/p/3054936.html
Copyright © 2011-2022 走看看