22章:チュートリアル21:Silverlight アプリケーションの開発(VB)

    作成2013.03.21

     Silverlight アプリケーションはブラウザー向けのアプリケーションで、Web サーバーに FrontPage Server Extensions がインストールされ、_vti_bin 仮想ディレクトリが実行可能に設定されている必要がありそうです。
     このような設定は自由に設定可能なWebサーバがなければ困難です。Silverlight アプリケーションとWPFアプリケーションのコードは完全互換ではなさそうですが、わずかな修正でSilverlight アプリケーション用サンプルコードをWPFアプリケーション用コードに変換できます。
     ここでは、Silverlight アプリケーション用サンプルコードをWPFアプリケーション用コードに変換します。

  1. 参照元情報
     WPF - コントロールを動的に作成する(Visual Basic ガイド ツアー)
    Silverlight アプリケーションの開発」にジャンプする
     作成方法の詳細は上記を参照願います。


  2. Silverlight アプリケーションの開発
     Silverlight アプリケーションの開発の解説とおりにWPFアプリケーションを作成すると、互換性の問題でエラーが発生しますが、僅かな修正で動作するようになります。
     完成ファイルは以下からダウンロードできます。
     ダウンロード後は解凍してから使用してください。
      [Silverlight アプリケーションの開発]をダウンロードする。
     解凍すると「22MySilverlight」フォルダーがあります。
    注(1)「22MySilverlight」フォルダーの「MySilverlight.sln」ファイルをダブルクリックすると「Microsoft Visual Basic 2010 Express」が起動します。
    注(2)メニューの「ウインド」_「ウインドレイアウトのリセット」で標準に戻ります。
    注(3)「ソリューションエクスプローラ」ウインドウ内の「MainWindow.xaml」をダブルクリックすると「デザイン」と「XAML」が表示されます。
    注(4)メニューの「表示」_「コード」を選択するとコードが表示されます。
    注(5)「DynamicControls.sln」の動作確認は「デバッグ」_「デバッグ開始」で実行します。デバッグ機能を用いて動作確認を行います。


  3. MySilverlight.slnの実行
    (1)「Microsoft Visual Basic 2010 Express」のデバッグ機能を使用します。
    (2)「デバッグ」_「デバッグ開始」を選択します。
    (3)MainWindow画面が表示されます。
    (4)ボタンを押すと日時が表示されます。
    (5)スライダーを動かすと影が変化します。
    (6)クローズボックスで終了します。


  4. 新規プロジェクトの作成
    (1)新規プロジェクト
     新規プロジェクトを作成すると「デザイナー」にはとXAMLが自動生成されます。

    (2)XAMLコードの作成
     サンプルのXAMLコードをコピーして、ペーストすると完成します。

    (3) クラスコード
    Class MainWindow
    End Class
    が自動生成されます。

    (4) その他
     サンプルのXAMLコードをコピーして、ペーストすると簡単に完成しますが、互換性の問題でエラーが発生します。エラーの原因を修正すると動作するようになります。
     エラーの原因を修正は学習に有効な作業となります。


  5. XAMLの全コード
    <Window x:Class="MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
        <Grid x:Name="LayoutRoot">
            <Grid Margin="20,20,20,0" Height="120" VerticalAlignment="Top" 
                  Background="AliceBlue">
                <TextBox x:Name="textbox1" Margin="20,20,20,0" VerticalAlignment="Top" />
                <Button x:Name="button1" Margin="20,60,20,20" Width="100" 
                        HorizontalAlignment="Right" Content="Click!" 
                        Click="button1_Click"/>
            </Grid>
            <Slider x:Name="slider1" Margin="10,0,10,10" VerticalAlignment="Bottom" 
                    ValueChanged="slider1_ValueChanged" Value="5"/>
        </Grid>
    </Window>
    


  6. XAMLの変更点
    (1)<UserControl x:Class="MySilverlightApp.MainPage"が<Window x:Class="MainWindow"に変更となります。 (<Window x:Class="MainWindow"はWPFアプリケーションのデホルトです。)
    


  7. Class MainWindowクラスの全コード
    Imports System.Windows.Media.Effects 'エフェクト用の名前空間を追加する Class MainWindow Public Sub New() InitializeComponent() End Sub Private Sub button1_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles button1.Click textbox1.Text = DateTime.Now.ToString() End Sub Private Sub slider1_ValueChanged(sender As System.Object, e As System.Windows.RoutedPropertyChangedEventArgs(Of System.Double)) Handles slider1.ValueChanged ' テキストボックスに影をつける Dim shadow As New DropShadowEffect() shadow.ShadowDepth = slider1.Value textbox1.Effect = shadow End Sub End Class


  8. Class MainWindowクラスコードの変更点
    (1)Partial Public Class MainPageがClass MainWindowに変更となります。
    (2)Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)がPrivate Sub button1_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles button1.Clickに変更となります。
    (3)Private Sub slider1_ValueChanged(ByVal sender As System.Object  ByVal e As System.Windows.RoutedPropertyChangedEventArgs(Of System.Double))がPrivate Sub slider1_ValueChanged(sender As System.Object, e As System.Windows.RoutedPropertyChangedEventArgs(Of System.Double)) Handles slider1.ValueChangedに変更となります。

    感想:
    (1)ブラウザー向けのアプリケーションはWebサーバの制約があり、テストが難しいと感じました。
    (2)このサンプルにおいては、Silverlight アプリケーション用コードからWPFアプリケーション用コードへの変更点は僅かであることがわかります。







23章:チュートリアル22:Silverlight におけるレイアウトの基本(VB) に行く。

トップページに戻る。