Вы можете решить эту проблему, создав PlatformEffect :
App.xaml.cs
[assembly: ResolutionGroupName("ProjectName")]
namespace ProjectName.App
{
public partial class App : Application
{
...
Общий проект:
public class SearchBarBackgroundEffect : RoutingEffect
{
public SearchBarBackgroundEffect() : base("ProjectName.SearchBarBackgroundEffect") { }
}
Проект iOS:
[assembly: ExportEffect(typeof(SearchBarBackgroundPlatformEffect), "SearchBarBackgroundEffect")]
public class SearchBarBackgroundPlatformEffect : PlatformEffect
{
private UISearchBar NativeSearchBar => (UISearchBar)Control;
private SearchBar XamarinSearchBar => (SearchBar)Element;
protected override void OnAttached()
{
if (UIDevice.CurrentDevice.CheckSystemVersion(13, 0))
NativeSearchBar.SearchTextField.BackgroundColor = XamarinSearchBar.BackgroundColor.ToUIColor();
}
protected override void OnDetached()
{
// Intentionally left blank.
}
}
XAML-файл
<SearchBar>
<SearchBar.Effects>
<effects:SearchBarBackgroundEffect />
</SearchBar.Effects>
</SearchBar>