【发布时间】:2015-04-14 17:37:00
【问题描述】:
我正在使用 Xamarin.Forms,共享项目模板。 在这里,我通过say框架提供的StackLayout为内容页面添加了一个Label等控件。
现在在目标应用程序中 - 比如说 iOS/Andriod,我只需要为这个标签设置一些文本。我有一些特定于平台的代码,我想更改共享项目中创建的标签的文本值。
怎么做?
我了解,可以使用自定义渲染器。我在这里想念什么直截了当的方法吗?
【问题讨论】:
标签: xamarin
我正在使用 Xamarin.Forms,共享项目模板。 在这里,我通过say框架提供的StackLayout为内容页面添加了一个Label等控件。
现在在目标应用程序中 - 比如说 iOS/Andriod,我只需要为这个标签设置一些文本。我有一些特定于平台的代码,我想更改共享项目中创建的标签的文本值。
怎么做?
我了解,可以使用自定义渲染器。我在这里想念什么直截了当的方法吗?
【问题讨论】:
标签: xamarin
当然,您可以使用自定义渲染器......但恕我直言,这将是一种矫枉过正。 我会使用 OnPlatform 方法 - 类似于:
myLabel.Text = Device.OnPlatform<string>("text for iOS", "text for Android", "text for Windows Phone");
如果您愿意,您也可以从 XAML 中执行相同的操作,如本文所示(在此处搜索“OnPlatform”): http://developer.xamarin.com/guides/cross-platform/xamarin-forms/xaml-for-xamarin-forms/essential_xaml_syntax/
如果您需要的文本是动态的,并且您需要在运行时从特定于平台的项目中设置它,那么您需要将标签分配给共享项目中的某个变量,然后从平台项目中引用此变量。
【讨论】: