dotnet在UOS国产系统上如何使用XamarinForms创建xaml界面的GTK应用

这篇文章将为大家详细讲解有关dotnet在 UOS 国产系统上如何使用Xamarin Forms创建xaml界面的GTK应用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

为隆德等地区用户提供了全套网页设计制作服务,及隆德网站建设行业解决方案。主营业务为成都网站设计、网站建设、隆德网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

下面告诉大家如何在 UOS 国产系统上,通过 Xamarin.Forms 使用 XAML 写界面逻辑,构建出 GTK 应用

小编将使用特别底层的方法告诉大家如何一步步创建,而不是告诉大家如何在 IDE 上进行快速的创建。因此更适合用来告诉大家一些基础的内容,而不适合用来规模化创建上

在开始之前,请确定你安装好了环境,如何安装请看下面博客

  • dotnet 在 UOS 国产系统上安装 MonoDevelop 开发工具

  • dotnet 在 UOS 国产系统上使用 MonoDevelop 创建 GTK 全平台带界面应用

  • dotnet 在 UOS 国产系统上使用 MonoDevelop 进行拖控件开发 GTK 应用

如 dotnet 在 UOS 国产系统上使用 MonoDevelop 创建 GTK 全平台带界面应用 所说,创建一个空白的 GTK# 应用

dotnet在 UOS 国产系统上如何使用Xamarin Forms创建xaml界面的GTK应用

dotnet在 UOS 国产系统上如何使用Xamarin Forms创建xaml界面的GTK应用

接着创建一个控制台项目,假定这个项目是 A 项目,这个控制台项目将会添加 Xamarin.Foms 负载,然后将构建出基于 Xamarin.Forms 的界面 dll 文件,接着将由 GTK 项目,假定命名为 B 项目,作为最终原生控件支持,被 Xamarin.Forms 的界面 dll 所映射,因此刚才新建的 GTK 项目就是最终入口项目,应用程序由他启动

dotnet在 UOS 国产系统上如何使用Xamarin Forms创建xaml界面的GTK应用

修改 csproj 文件为下面内容



 
   netstandard2.0
   true
 


 
   portable
   true
 


 
       
 


dotnet在 UOS 国产系统上如何使用Xamarin Forms创建xaml界面的GTK应用

有小伙伴说,在 Windows 下,用 VS 新建一个 Xamarin.Forms 项目之后,再拷贝到 UOS 上,也是可以的,但是有一点需要注意的是不能拷贝 bin 和  obj 文件夹过去,原因是在 obj 文件夹存放了很多依赖本机电脑的文件夹绝对路径的文件,如 nuget 还原里面的 project.assests.json 文件将会包含 fallback 路径,如果拷贝到 Linux 下的系统,也许会看到如下提示

Error MSB4018 The "ResolvePackageAssets">

或者

Error MSB4018 The "ResolvePackageAssets" task failed unexpectedly. NuGet.Packaging.Core.PackagingException: Unable to find fallback package folder 'C:\Program Files (x86)\Xamarin\NuGet\'

如果忘了这一点复制了 obj 文件夹,可以在 UOS 这个 Linux 系统下删除 obj 文件夹,解决 Xamarin Forms 在 Linux 系统构建失败的问题

先忽略从Windows等系统创建好了 Xamarin Forms 的方法,咱就在 UOS 上一步步创建

删除 A 项目,也就是安装了 Xamarin Forms 的控制台项目,的 Program.cs 文件

然后选择新建一个空 xml 文件,创建完成之后修改命名为 App.xaml 文件,同时创建一个空类叫 App.xaml.cs 文件

这两个文件将表示 Xamarin Forms 项目的起始,也就是在 Xamarin 层的启动入口。在使用 Xamarin.Forms 的 GTK 应用,有两层入口,第一层是本机程序的入口,也就是 B 项目的 Program 文件的 Main 方法入口,第二层就是 Xamarin.Forms 的 App 入口。应用程序启动的时候,先进入第一层入口,在第一层入口初始化本机相关的进程,然后进入第二层入口,在第二层入口初始化 Xamarin 应用

在 App.xaml 添加下面代码,下面代码的 x:Class="WokemhelurnawgelrallKearlallidallla.App" 其实 WokemhelurnawgelrallKearlallidallla 就是项目名


            xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
            xmlns:d="http://xamarin.com/schemas/2014/forms/design"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            mc:Ignorable="d"
            x:Class="WokemhelurnawgelrallKearlallidallla.App">
   

   


其实上面的 App.xaml 是空代码,有意义的代码放在 App.xaml.cs 请看代码

using Xamarin.Forms;

namespace WokemhelurnawgelrallKearlallidallla
{
   public partial class App : Application
   {
       public App()
       {
           InitializeComponent();

           MainPage = new MainPage();
       }
   }
}

上面代码的核心就是在构造方法调用 InitializeComponent 方法,然后设置主页面

接着咱需要新建一个主界面,新建 MainPage 的 xml 文件,然后修改命名为 MainPage.xaml 文件

然后填写界面代码


            xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
            xmlns:d="http://xamarin.com/schemas/2014/forms/design"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            mc:Ignorable="d"
            x:Class="WokemhelurnawgelrallKearlallidallla.MainPage">

   
       



还请小伙伴先不要改多内容哈

接着新建 MainPage.xaml.cs 文件,添加下面代码

using System.ComponentModel;
using Xamarin.Forms;

namespace WokemhelurnawgelrallKearlallidallla
{
   [DesignTimeVisible(false)]
   public partial class MainPage : ContentPage
   {
       public MainPage()
       {
           InitializeComponent();
       }
   }
}

现在新建了 App 应用和 MainPage 一个界面,但是还需要一个 AssemblyInfo.cs 文件,设置程序集特性

using Xamarin.Forms.Xaml;

[assembly: XamlCompilation(XamlCompilationOptions.Compile)]

这样一个简单的 Xamarin Forms 项目就完成了,设置 GTK 项目,也就是 B 项目,引用 Xamarin Forms 项目,也就是 A 项目

dotnet在 UOS 国产系统上如何使用Xamarin Forms创建xaml界面的GTK应用

但是此时将会发现构建不通过,因为 B 项目,也就是 GTK 项目没有引用足够的 NuGet 包。给 B 项目添加以下 NuGet 库

  • OpenTK

  • Xamarin.Forms

  • Xamarin.Forms.Platform.GTK

接着打开 B 项目的 Program.cs 文件,在 Main 方法添加如下代码

            Gtk.Application.Init();
           Forms.Init();

           var app = new App();
           var window = new FormsWindow();
           window.LoadApplication(app);
           window.SetApplicationTitle("lindexi");
           window.Show();
           Gtk.Application.Run();

注意在编辑器里面添加 using 引用

然后删除除了 Program.cs 的其他 cs 代码文件

此时 B 项目,构建之后可以看到如下界面

dotnet在 UOS 国产系统上如何使用Xamarin Forms创建xaml界面的GTK应用

关于dotnet在 UOS 国产系统上如何使用Xamarin Forms创建xaml界面的GTK应用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


分享标题:dotnet在UOS国产系统上如何使用XamarinForms创建xaml界面的GTK应用
文章来源:http://myzitong.com/article/jddjej.html