如何在 DatePickerDialog 中以越南语显示月份和日期?
How to display months and days in Vietnamese in DatePickerDialog?
如何在 DatePickerDialog for Android 和 DatePicker in IOS 中显示越南语月份和日期,当 Xamarin forms 中的应用程序语言为越南语时
Android:
protected override DatePickerDialog CreateDatePickerDialog(int year, int month, int day)
{
pickerDialog = new DatePickerDialog(Context, (o, e) =>
{
datePicker.Date = e.Date;
((IElementController)datePicker).SetValueFromRenderer(VisualElement.IsFocusedPropertyKey, false);
}, year, month, day);
//ok
pickerDialog.SetButton((int)DialogButtonType.Positive, AppResources.AlertDismiss, OnDone);
//cancel
pickerDialog.SetButton((int)DialogButtonType.Negative, AppResources.PickerCancelText, OnCancel);
return pickerDialog;
}
IOS: 建议我在 IOS?
中怎么做
如果我没理解错的话,你想为 DatePicker 显示英文格式吗?
如果是这样,您可以修改自定义渲染器中日期选择器的 Locale
。
iOS 解决方案
[assembly: ExportRenderer(typeof(DatePicker), typeof(MyRenderer))]
namespace FormsApp.iOS
{
class MyRenderer : DatePickerRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<DatePicker> e)
{
base.OnElementChanged(e);
if(Control != null)
{
UIDatePicker picker = Control.InputView as UIDatePicker;
picker.Locale = new NSLocale("us");
}
}
}
}
之前
之后
如果你想让 Datepicker
只显示 month
和 day
来选择项目,它可能有点复杂,因为 iOS 没有提供 option/mode 要实现这一点,您需要创建一个实现 UIPickerViewDelegate 的视图和控制器并创建您自己的。
参考
.
.
Android 解决方案
在 MainActivity
class .
中的 OnCreate 中添加以下代码
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
Xamarin.Essentials.Platform.Init(this, savedInstanceState);
global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
//this code
Locale locale = Locale.Us;
Locale.SetDefault(Locale.Category.Format, locale);
Configuration config = this.Resources.Configuration;
config.SetLocale(locale);
CreateConfigurationContext(config);
LoadApplication(new App());
}
之前
###之后
参考
Set Android DatePicker title language
如何在 DatePickerDialog for Android 和 DatePicker in IOS 中显示越南语月份和日期,当 Xamarin forms 中的应用程序语言为越南语时
Android:
protected override DatePickerDialog CreateDatePickerDialog(int year, int month, int day)
{
pickerDialog = new DatePickerDialog(Context, (o, e) =>
{
datePicker.Date = e.Date;
((IElementController)datePicker).SetValueFromRenderer(VisualElement.IsFocusedPropertyKey, false);
}, year, month, day);
//ok
pickerDialog.SetButton((int)DialogButtonType.Positive, AppResources.AlertDismiss, OnDone);
//cancel
pickerDialog.SetButton((int)DialogButtonType.Negative, AppResources.PickerCancelText, OnCancel);
return pickerDialog;
}
IOS: 建议我在 IOS?
中怎么做如果我没理解错的话,你想为 DatePicker 显示英文格式吗?
如果是这样,您可以修改自定义渲染器中日期选择器的 Locale
。
iOS 解决方案
[assembly: ExportRenderer(typeof(DatePicker), typeof(MyRenderer))]
namespace FormsApp.iOS
{
class MyRenderer : DatePickerRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<DatePicker> e)
{
base.OnElementChanged(e);
if(Control != null)
{
UIDatePicker picker = Control.InputView as UIDatePicker;
picker.Locale = new NSLocale("us");
}
}
}
}
之前
之后
如果你想让 Datepicker
只显示 month
和 day
来选择项目,它可能有点复杂,因为 iOS 没有提供 option/mode 要实现这一点,您需要创建一个实现 UIPickerViewDelegate 的视图和控制器并创建您自己的。
参考
.
.
Android 解决方案
在 MainActivity
class .
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
Xamarin.Essentials.Platform.Init(this, savedInstanceState);
global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
//this code
Locale locale = Locale.Us;
Locale.SetDefault(Locale.Category.Format, locale);
Configuration config = this.Resources.Configuration;
config.SetLocale(locale);
CreateConfigurationContext(config);
LoadApplication(new App());
}
之前
###之后
参考
Set Android DatePicker title language