如何在xamarin.formsiOS中为输入单元格设置背景颜色和文本颜色?
How to set a background color and text color to an entry cell in xamarin.forms iOS?
我是 Xamarin 表单的新手。似乎没有 属性 可以为 Table 视图中的 EntryCell 设置背景颜色或文本颜色。当 iOS 的主题处于黑暗模式时,有没有办法自定义它?
DarkMode 将文本颜色更改为与背景颜色相同的白色。所以文字现在是不可见的
要将 background color
和 text color
设置为 xamarin.forms iOS
中的 EntryCell,您可以使用自定义渲染器:
[assembly: ExportRenderer(typeof(MyEntryCell), typeof(myEntryCelliOSCellRenderer))]
namespace App99.iOS
{
public class myEntryCelliOSCellRenderer : EntryCellRenderer
{
public override UITableViewCell GetCell(Cell item, UITableViewCell reusableCell, UITableView tv)
{
var nativeCell = (EntryCell)item;
var cell = base.GetCell(nativeCell, reusableCell, tv);
((UITextField)cell.Subviews[0].Subviews[0]).TextColor = UIColor.Orange;
((UITextField)cell.Subviews[0].Subviews[0]).BackgroundColor = UIColor.Green;
return cell;
}
}
}
并在 Xamarin.forms 项目中使用它:
public partial class Page1 : ContentPage
{
public Page1()
{
InitializeComponent();
TableView tableView = new TableView
{
Intent = TableIntent.Form,
Root = new TableRoot
{
new TableSection
{
new MyEntryCell
{
Label = "EntryCell:",
Placeholder = "Type Text Here",
}
}
}
};
this.Content = new StackLayout
{
Children =
{
tableView
}
};
}
}
public class MyEntryCell : EntryCell {
}
我是 Xamarin 表单的新手。似乎没有 属性 可以为 Table 视图中的 EntryCell 设置背景颜色或文本颜色。当 iOS 的主题处于黑暗模式时,有没有办法自定义它?
DarkMode 将文本颜色更改为与背景颜色相同的白色。所以文字现在是不可见的
要将 background color
和 text color
设置为 xamarin.forms iOS
中的 EntryCell,您可以使用自定义渲染器:
[assembly: ExportRenderer(typeof(MyEntryCell), typeof(myEntryCelliOSCellRenderer))]
namespace App99.iOS
{
public class myEntryCelliOSCellRenderer : EntryCellRenderer
{
public override UITableViewCell GetCell(Cell item, UITableViewCell reusableCell, UITableView tv)
{
var nativeCell = (EntryCell)item;
var cell = base.GetCell(nativeCell, reusableCell, tv);
((UITextField)cell.Subviews[0].Subviews[0]).TextColor = UIColor.Orange;
((UITextField)cell.Subviews[0].Subviews[0]).BackgroundColor = UIColor.Green;
return cell;
}
}
}
并在 Xamarin.forms 项目中使用它:
public partial class Page1 : ContentPage
{
public Page1()
{
InitializeComponent();
TableView tableView = new TableView
{
Intent = TableIntent.Form,
Root = new TableRoot
{
new TableSection
{
new MyEntryCell
{
Label = "EntryCell:",
Placeholder = "Type Text Here",
}
}
}
};
this.Content = new StackLayout
{
Children =
{
tableView
}
};
}
}
public class MyEntryCell : EntryCell {
}