使用 Visual Basic.NET 的 Xamarin.Forms

Xamarin 不直接支持 Visual Basic - 请按照本页上的说明创建 C# Xamarin.Forms 解决方案,然后将 .NET Standard C# 项目替换为 Visual Basic。

创建 Xamarin.Forms 解决方案,然后将 .NET Standard 项目替换为 Visual Basic

注意

必须在 Windows 上使用 Visual Studio 才能通过 Visual Basic 进行编程。

使用 Visual Basic 的 Xamarin.Forms 演练

按照以下步骤创建一个使用 Visual Basic 的简单 Xamarin.Forms 项目:

  1. 在 Visual Studio 2019 中选择“创建新项目”

  2. 在“创建新项目”窗口中,键入“Xamarin.Forms”以筛选列表并选择“移动应用(Xamarin.Forms)”,然后按“下一步”

    Xamarin.Forms 应用筛选器

  3. 在下一个屏幕上,键入项目名称并按“创建”

  4. 选择“空白”模板,然后按“确定”

    空白 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 项目,以便它们引用新的 Visual Basic 项目(而不是模板创建的 C# 项目)。 右键单击 Android 和 iOS 项目中的“引用”节点以打开“引用管理器”。 取消勾选 C# 库并勾选 Visual Basic 库(请记得对 Android 和 iOS 项目执行此操作)。

    移除旧项目引用,添加 Visual Basic 引用

  13. 删除 C# 项目。 添加新的 .vb 文件以生成 Xamarin.Forms 应用程序。 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 的限制

可移植 Visual Basic.NET 页中所述,Xamarin 不支持 Visual Basic 语言。 这意味着 Visual Basic 的使用范围存在一些限制:

  • XAML 页面不能包含在 Visual Basic 项目中 - 代码隐藏生成器只能生成 C#。 可以将 XAML 包含在单独的、被引用的 C# 可移植类库中,并使用数据绑定通过 Visual Basic 模型填充 XAML 文件(示例包含在示例中)。

  • 自定义渲染器不能用 Visual Basic 编写,必须在本机平台项目中用 C# 编写。

  • 依赖项服务实现不能用 Visual Basic 编写,必须在本机平台项目中用 C# 编写。