2011-09-12 17 views
0

確認し、各矩形は、別の隣にありページが長方形でいっぱいになるまで。このボタンをクリックすることで、それはページ内の四角形を作成し、各タイマティックで、タイマーを開始します、私はボタンが含まれているSilverlightのページを作成したSilverlightページは5秒ごとにリロード

私の質問は、長方形との完全なページのリロードを作成する方法ですか?

ps。私はコード(.cs)NOT .xamlでページを作成しました。また、Silverlightコード(.cs)でリロードするようにしたいと思います.xaml

答えて

1

まず、ページをリロードする必要はありませんこれはあなたの銀色のアプリを再起動するので、伝統的な感覚)。

あなたはWriteableBitmapEx(http://writeablebitmapex.codeplex.com/)で見たことがありますか?これを使用して長方形を描き、画面を消去することができます。

この問題が解決しない場合は、あなたがあなたの四角形を描画する方法をアドバイスしてください。

+0

は、私は今、私は、矩形(長方形からページを空にして、再度起動するボタンをクリックして)、私はコードでこれを行うにしたいとの完全なページをリロードしたい、コードがXAMLではない使用して、プログラム的に四角形を作成しました – zaidmctaie

0

System.Threading.Timer classをご覧ください。それは間隔でタスクをスケジュールすることができます。ページ全体をリロードする例は、(あなたはピノが示唆したように、あなたのページをクリアするために検討すべきである):

public partial class MainPage : UserControl 
{ 
    public MainPage() 
    { 
     InitializeComponent(); 
     timer = new Timer(TimerElapsed); 
    } 

    // hold the timer in a variable to prevent it from being garbage collected 
    private Timer timer = null; 

    private void TimerElapsed(object state) 
    { 
     // important: this line puts the timer call into UI thread 
     Dispatcher.BeginInvoke(() => { 
      // your code goes here... 
      // reload the page (this will reload the app and stop the timer!) 
      HtmlPage.Window.Eval("location.reload()"); 
     }); 
    } 

    private void button1_Click(object sender, RoutedEventArgs e) 
    { 
     // start the timer in 1 second and repeat every 5 seconds 
     timer.Change(1000, 5000); 
    } 
} 

は、コード内のコメントを見ます。クラススコープの変数にTimerを格納する必要があります。さもなければそれは参照されず、ガベージコレクションされるかもしれません。時限操作でページの内容を変更する場合は、Dispatcherオブジェクトを使用してUIスレッドに挿入する必要があります。もしあなたがそれをしなければあなたは例外を得るでしょう。

関連する問題