Xamarin表单设计器

时间:2016-05-19 07:12:46

标签: xamarin

我是xamarin开发的新手,对于如何在xamarin.forms(portable / shared)中设计UI界面感到有点奇怪

如果我只是设计了xamarin android或xamarin ios,我可以通过拖放来完成我的UI(就像在windows窗体应用程序中),并自动生成UI的代码。但是在xamarin表单中,不支持这个(我们必须使用代码或xaml)。我知道如果我们使用xamarin表单,我们只编码一次,以后可以在android或ios中使用。

然而,这个人花了很长时间来创建UI,是否有可能在xamarin我们在xamarin android / ios porject中创建UI然后只有xamarin表单中的功能代码(可移植或共享)?

我知道这是一个常见的问题,但可以帮助许多新开发者选择使用xamarin而不是..

6 个答案:

答案 0 :(得分:13)

import pickle class PlayerData: def __init__(self, user_name, pwd): self.name = user_name self.pwd = pwd #self.pos = 12 #comment this line self.online = False self.info = {'gunNum': 0, 'guns': None, 'barrelNum': 0, 'barrels': None, 'health': 100, 'ammos': {'0': {'ammoCurrentCarried': 50, 'ammoName': 'Assault Rifle'}, '1': {'ammoCurrentCarried': 30, 'ammoName': 'Assault Rifle RUS'}, 'number': 2 } } def create_user_file(user): file_path = "data/users/" + user.name f = open(file_path, "w") pickle.dump(user, f, pickle.HIGHEST_PROTOCOL) f.close() def load_user(user_name): file_path = "data/users/" + user_name f = open(file_path, "r") user = pickle.load(f) f.close() return user def register(user_name): pwd = "ab" data = PlayerData(user_name, pwd) create_user_file(data) def login(user_name): user = load_user(user_name) print user.__dict__ name = "dd" register(name) login(name) 进行编码时,有Xamarin.Forms XAML预览:

enter image description here

但是最后,是的,你正在编写事件和数据转换器等等......甚至使用像iOS XAML这样的工具,你仍然需要做所有的编码来将UI联系在一起

在个人笔记中:我使用的几乎所有组都不会将GUI设计工具用于任何大于一两个屏幕的应用程序。在iOS上,我们避免Interface Builder& .xib就像它们是黑死病的原因一样。

答案 1 :(得分:2)

我完全理解你的情况。一个好的开始是一本Xamarin书,你可以免费下载这个页面https://developer.xamarin.com/guides/xamarin-forms/creating-mobile-apps-xamarin-forms/

如果你是使用WPF开发的,那么在Xamarin中你有相同的概念。一个好的开始是尝试使用应用程序来了解结构和应用程序生命周期。您可以在this link找到一组示例和代码。您可以创建表单或使用XAML或代码。有两种方法。我建议你从XAML和C#开始。

我建议您使用Portable项目,这样您就可以与Xamarin项目共享,但与其他类型的项目(例如ASP.NET项目)共享。

答案 2 :(得分:1)

您可以认为设计Xamarin Forms UI就像设计网站一样。

设计网站

  1. 您了解 HTML
  2. 您需要使用网络浏览器进行审核

设计Xamarin表单。

  1. 您了解 XAML
  2. 您需要Xamarin Previewer进行审查(大猩猩播放器,xamarin实时播放器,LiveXaml)

答案 3 :(得分:0)

Xamarin.Forms非常棒,为了更好地理解XAML,我鼓励您花时间观看这段视频(https://evolve.xamarin.com/session/56e201d2bad314273ca4d813),其中Charles Petzold详细介绍了XAML的工作原理。 在Xamarin Studio o Visual Studio为Xamarin.Forms提供XAML预览器之前,我使用GorillaPlayer(http://gorillaplayer.com/)是免费的,效果很好。 另请参阅Xamarin大学和实例。 James Montemagno是一个你在谈论Xamarin时必须研究的名字,他做了一些非常酷和有帮助的Xamarin Nuget包。 希望我指出你正确的方向。

答案 4 :(得分:0)

我知道你是Xamarin.Forms的新手。我刚接触该框架时所做的是在https://www.xamarin.com/university上学习了几门课程,如果我是对的(这必须足以理解基础知识),它可以免费使用30天。关于预览者,我没有很好的表现。他们经常很慢或不工作。对我而言,通常在手机上进行调试通常会更快。希望这会对你有所帮助。

答案 5 :(得分:0)

即使有一个不错的设计师,我仍然会认为手工编码会更有效:不会产生错误的代码(例如有约束条件:没有在错误的位置设置填充/边距。不需要时没有硬编码的大小等)。

您将更好地理解并且学习曲线很快。

过去,我使用Silverlight和令人惊叹的Microsoft UI设计器Blend来启动XAML。几个月后,我最终遇到了破坏设计器的体系结构(由于在构造函数中注入了依赖性,或者由于设计器难以在外部程序集中发现控件)。这真的很痛苦,我失去了很多生产力。几个月后,我精通XAML,甚至比设计人员的工作效率更高。

如今,Visual Studio对XAML控件很友好。我已经创建了其中的一些(例如具有多个自动列行的网格,用于生成ContentPage.Resource和样式的代码段等)。

这是值得的痛苦。 此外,您将学到很多东西,并对自己的技能更有信心。

尝试几个月:您不会后悔的!

最后但并非最不重要的是,正如其他人建议的那样,即使在iOS中,构建大型应用程序时,我认识的大多数开发人员也不会使用设计器,而是由于代码段,助手,扩展方法等手动编写所有内容。