Width="628" Height="150" Title="全网带宽越限列表" > 
        <ScrollViewer HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden" BorderThickness="0" Height="120" Margin="0,-6,0,1">
            <Canvas x:Name="canvasInner" Loaded="MarqueeControl_Loaded" Width="600" Height="110" Margin="0" >   <Canvas.Resources><Storyboard x:Name="sb"> <DoubleAnimation x:Name="da" BeginTime="00:00:00" Storyboard.TargetName="gridAchieveLose1"  Storyboard.TargetProperty="(Canvas.Top)"  From="0" RepeatBehavior="Forever"  /> </Storyboard>
                </Canvas.Resources>

                <sdk:DataGrid x:Name="gridAchieveLose1" Height="320" Width="600" Canvas.Left="0" AutoGenerateColumns="False" VerticalScrollBarVisibility="Hidden" HeadersVisibility="None" Canvas.Top="18">                
                 <sdk:DataGrid.Columns >
                 <sdk:DataGridTextColumn Binding="{Binding Name}" CanUserReorder="True" CanUserResize="True" CanUserSort="True" FontSize="14" Foreground="Black"   Width="*" IsReadOnly="True" />
                 <sdk:DataGridTextColumn Binding="{Binding Value}" CanUserReorder="True" CanUserResize="True" CanUserSort="True" FontSize="14" Foreground="Black"  Width="500" IsReadOnly="True" />                
             </sdk:DataGrid.Columns>
</sdk:DataGrid>
            </Canvas>     
        </ScrollViewer>

解决方案 »

  1.   

    DispatcherTimer timer;
            int i = 1;
            int p = 1; //滚动标识
            WebClient client = null;
            List<Top5Value> listTop5Value = null;
            public BandwidthOverview()
            {
                InitInfo();
                InitializeComponent();            
                client = new WebClient();
                client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(client_DownloadStringCompleted);
                if (DownLoadDataManager.IsJsp)
                    client.DownloadStringAsync(DownLoadDataManager.MakeUri("ImageTree.jsp", 0));
                client.DownloadStringAsync(new Uri("http://10.112.32.91/MyTestWebSite/Top5.ashx"));            
            }
      

  2.   

     // 当用户导航到此页面时执行。
            void MarqueeControl_Loaded(object sender, RoutedEventArgs e)
            {            if (gridAchieveLose1.ActualHeight <= canvasInner.Height) return;
                const double speed = 8;
                da.To = -92;
                
                da.Duration = new Duration(TimeSpan.FromSeconds(speed));
                
                sb.Begin();
               
            }
      

  3.   

    void InitInfo()
            {
                timer = new DispatcherTimer();
                timer.Interval = TimeSpan.FromSeconds(1);
                timer.Tick += new EventHandler(timer_Tick);
                timer.Start();
            }