PageC#プログラマーのための一味違う学習サイト。(x,y-1)のいずれかで、それぞれが、1/4の確率である場合の動きを可視化するプログラムです。軌跡はグレーで示しています。「ランダムウォーク」Silverlight3からサポートされたWritableBitmapクラスを使い、点を描画しています。実際に描画するエリアの縦横幅の1/2のサイズのWritableBitmapを用意し、Silverlightの機能を使い、イメージを自動拡大させています。軌跡が細い線で描けないのはその手抜きのせいです。Silverlightでは、WindowsFormsとは異なりPaintイベントがありません。WriteableBitmapの内容を画面に反映させたい場合は、Invalidateメソッドを呼ぶだけです。UIスレッドでしか、WritableBitmapにアクセスできません。このプログラムでは、ひとつの点しか動かしていませんが、スレッドを使い複数の点を動かす場合には、注意する必要があります。WriteableBitmapには、SetPixelという点を描画するメソッドが用意されていないので、WriteableBitmapExtentionクラスで、SetPixel拡張メソッドを定義しています。DispatcherTimerクラスは、WindowsFormsのTimerクラスに該当するもので、一定時間おきに、指定したメソッドを呼び出せます。同じスレッドで動きますので、WriteableBitmapにアクセスできます。