void SetupBanner()
        {
            double interval = 1.0;

            if (!double.TryParse(textBoxInterval.Text, out interval))
            {
                MessageBox.Show("Error: Interval should be a number");
                return;
            }

            // 画像を作ります
            var grayImage = TextBitmap.Build(textBoxText.Text);

            int height = HEIGHT;
            int width  = grayImage.Length / height;

            image.Source = GrayImageDataToImage(grayImage, width, height);

            mBMS = new BitmapScroll(grayImage, width);
            mTLB.Start();

            mTimer           = new Timer();
            mTimer.Interval  = interval * 1000;
            mTimer.Elapsed  += new ElapsedEventHandler(TimerElapsed);
            mTimer.AutoReset = true;
            mTimer.Enabled   = true;
        }
        private void buttonStart_Click(object sender, RoutedEventArgs e)
        {
            if (radioButtonTextBannerMarquee.IsChecked == true)
            {
                SetupBanner();
                Update();
            }
            if (radioButtonStaticBitmapPattern.IsChecked == true)
            {
                mBMS   = null;
                mTimer = null;
                mTLB.Start();
                UpdateStaticBitmap();
            }

            buttonStart.IsEnabled = false;
            buttonStop.IsEnabled  = true;
            radioButtonStaticBitmapPattern.IsEnabled = false;
            radioButtonTextBannerMarquee.IsEnabled   = false;
        }