Visual Basic.NET を使用する Xamarin.Forms

Xamarin は Visual Basic を直接サポートしていません。このページの手順に従って C# Xamarin.Forms ソリューションを作成してから、.NET Standard C# プロジェクトを Visual Basic に置き換えてください。

Xamarin.Forms ソリューションを作成して、.NET Standard プロジェクトを Visual Basic に置き換える

Note

Visual Basic を使用してプログラミングを行うには、Windows 上の Visual Studio を使用する必要があります。

Xamarin.Forms と Visual Basic のチュートリアル

以下の手順に従って、Visual Basic を使用する単純な Xamarin.Forms プロジェクトを作成します。

  1. Visual Studio 2019 から、[新しいプロジェクトの作成] を選択します。

  2. [新しいプロジェクトの作成] ウィンドウで、「Xamarin.Forms」と入力してリストをフィルター処理し、[モバイル アプリ (Xamarin.Forms)] を選択した後、[次へ] を押します。

    Xamarin.Forms アプリのフィルター

  3. 次の画面で、プロジェクトの名前を入力し、[作成] を押します。

  4. 以下のように [空白] テンプレートを選択し、[OK] を押します。

    空白の Xamarin.Forms テンプレート

    これにより、C# を使用して Visual Studio 内に Xamarin.Forms ソリューションが作成されます。 次の手順では、Visual Basic を使用するようにソリューションを変更します。

  5. ソリューションを右クリックし、[追加] > [新規プロジェクト...] を選択します

  6. Visual Basic ライブラリ」と入力してプロジェクト オプションをフィルター処理し、以下のように Visual Basic アイコンが付いた [クラス ライブラリ (.NET Standard)] オプションを選択します。

    Visual Basic ライブラリのフィルター

  7. 次の画面で、プロジェクトの名前を入力し、[作成] を押します。

  8. 以下のように Visual Basic プロジェクトを右クリックし、[プロパティ] を選択した後、既存の C# プロジェクトに合うように [既定の名前空間] を変更します。

    Visual Basic ルート名前空間が Xamarin.Forms アプリと一致することを確認する

  9. 新しい Visual Basic プロジェクトを右クリックし、[NuGet パッケージの管理] を選択した後、Xamarin.Forms をインストールしてパッケージ マネージャー ウィンドウを閉じます。

    フォームを作成してパッケージ マネージャー ウィンドウを閉じる

  10. 以下のように既定の Class1.vb ファイルの名前を App.vb に変更します。

    既定の Class1 ファイルとクラスの名前を App に変更する

  11. 次のコードを App.vb ファイルに貼り付けます。これは、Xamarin.Forms アプリの開始点になります。

    Imports Xamarin.Forms
    
    Public Class App
        Inherits Application
    
        Public Sub New()
            Dim label = New Label With {.HorizontalTextAlignment = TextAlignment.Center,
                                        .FontSize = Device.GetNamedSize(NamedSize.Medium, GetType(Label)),
                                        .Text = "Welcome to Xamarin.Forms with Visual Basic.NET"}
    
            Dim stack = New StackLayout With {
                .VerticalOptions = LayoutOptions.Center
            }
            stack.Children.Add(label)
    
            Dim page = New ContentPage
            page.Content = stack
            MainPage = page
    
        End Sub
    
    End Class
    
  12. Android および iOS プロジェクトが (テンプレートによって作成された C# プロジェクトではなく) 新しい Visual Basic プロジェクトを参照するように更新します。 Android および iOS プロジェクトの [参照] ノードを右クリックして、[参照マネージャー] を開きます。 C# ライブラリのチェックを外し、Visual Basic ライブラリにチェックを入れます (これを Android と iOS の両方のプロジェクトで行うのを忘れないでください)。

    以前のプロジェクトへの参照を削除し、Visual Basic への参照を追加する

  13. C# プロジェクトを削除します。 Xamarin.Forms アプリケーションを構築するための新しい .vb ファイルを追加します。 Visual Basic の新しい ContentPage のテンプレートを以下に示します。

    Imports Xamarin.Forms
    
    Public Class Page2
    Inherits ContentPage
    
        Public Sub New()
            Dim label = New Label With {.HorizontalTextAlignment = TextAlignment.Center,
                                        .FontSize = Device.GetNamedSize(NamedSize.Medium, GetType(Label)),
                                        .Text = "Visual Basic ContentPage"}
    
            Dim stack = New StackLayout With {
                .VerticalOptions = LayoutOptions.Center
            }
            stack.Children.Add(label)
    
            Content = stack
        End Sub
    End Class
    

Xamarin.Forms における Visual Basic の制限事項

Portable Visual Basic.NET ページで説明されているように、Xamarin では Visual Basic 言語はサポートされていません。 これは Visual Basic を使用できる場所には以下に示すいくつかの制限があることを意味します。

  • XAML ページを Visual Basic プロジェクト内に含めることはできません。C# をビルドできるのはコードビハインド ジェネレーターだけです。 XAML を個別の参照される C# ポータブル クラス ライブラリに含め、データバインディングを使用して Visual Basic モデルを介して XAML ファイルを設定することが可能です (この例はサンプルに含まれています)。

  • カスタム レンダラーは Visual Basic では記述できず、ネイティブ プラットフォーム プロジェクトの C# で記述する必要があります。

  • 依存関係サービスの実装は Visual Basic では記述できず、ネイティブ プラットフォーム プロジェクトの C# で記述する必要があります。