xamarin 如何设置选择器文本的颜色和文本/字体大小?

jdg4fx2g  于 2023-08-01  发布在  其他
关注(0)|答案(1)|浏览(208)

我使用一个特定的选择器设置来模仿Xamarin.iOS中下拉列表的操作。代码为:

  1. public void ConfigureSelectPicker(UITextField pickerTextField, List<string> theData)
  2. {
  3. PickerViewModel MyModel = new PickerViewModel();
  4. MyModel._pickerSource = theData;
  5. var picker = new UIPickerView
  6. {
  7. Model = MyModel,
  8. ShowSelectionIndicator = true,
  9. TintColor = UIColor.Blue
  10. };
  11. var screenWidth = UIScreen.MainScreen.Bounds.Width;
  12. var pickerToolBar = new UIToolbar(new RectangleF(0, 0, (float)screenWidth, 44)) { BarStyle = UIBarStyle.Default, Translucent = true };
  13. var flexibleSpaceButton = new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace);
  14. var doneButton = new UIBarButtonItem(UIBarButtonSystemItem.Done, (sender, e) => pickerTextField.ResignFirstResponder());
  15. doneButton.Clicked += (object sender, EventArgs e) =>
  16. {
  17. pickerTextField.Text = MyModel.SelectedItem;
  18. };
  19. pickerToolBar.SetItems(new[] { flexibleSpaceButton, doneButton }, false);
  20. pickerTextField.InputView = picker;
  21. pickerTextField.InputAccessoryView = pickerToolBar;
  22. }

字符串
theData列表包含在选择器中被截断的字符串。有没有一种方法可以改变字体大小,使他们适合也文本颜色?

qlvxas9a

qlvxas9a1#

您可以覆盖UIPickerViewModel中的GetView方法。

  1. public override UIKit.UIView GetView(UIKit.UIPickerView pickerView, nint row, nint component, UIKit.UIView view)
  2. {
  3. var pickerLabel = view as UILabel;
  4. if (pickerLabel == null)
  5. {
  6. pickerLabel = new UILabel();
  7. pickerLabel.Font = UIFont.SystemFontOfSize(5);
  8. pickerLabel.TextColor = UIColor.Red;
  9. }
  10. // you should again give the value to the pickerLabel Text based on the row or component of your picker
  11. if (component = 0)
  12. {
  13. pickerLabel.Text = names[row];
  14. }
  15. else
  16. {
  17. pickerLabel.Text = row.ToString()
  18. }
  19. return pickerLabel;
  20. }

字符串
有关更多信息,您可以参考Picker control in Xamarin.iOS和示例代码:PickerControl

展开查看全部

相关问题