Xamarin Forms Округлые ПоискHandler - PullRequest
0 голосов
/ 24 февраля 2020

Я тестирую новую страницу оболочки в формах Xamarin. Мне интересно, можно ли персонализировать обработчик поиска, например, применить закругленный эффект к углу поиска. Я попытался переопределить шаблон SearchHandler, но он просто изменил внешний вид запроса результата поиска обработчика (как предложение показано пользователю). Большое спасибо за вашу помощь!

Ответы [ 2 ]

1 голос
/ 26 февраля 2020

Я вернулся после нескольких тестов.

Я нашел один способ сделать это легко.

Для верхней панели навигации в приложении Shell есть тег "Shell.TitleView".

Вы можете внутри этого тега определить шаблон персонализации. Поэтому я удалил «SearchHandler» и внедрил внутри «Shell.TitleView» пользовательскую панель поиска с закругленным углом. Это работает довольно хорошо. При необходимости я могу дать вам образец.

Если вы знаете другой способ сделать это, я с удовольствием протестирую его.

Спасибо

0 голосов
/ 25 февраля 2020

Я думаю, невозможно реализовать Rounded SearchHandler, если использовать SearchHandler в Shell Application.

Первый , примерно Внешний вид SearchHandler , изменить его раунд невозможно:

  • BackgroundColor типа Цвет - это цвет фона для текста в окне поиска.
  • CancelButtonColor, типа Цвет, - это цвет кнопки отмены.
  • CharacterSpacing, типа double, - это интервал между символами текста SearchHandler.
  • FontAttributes типа FontAttributes указывает, является ли текст в окне поиска итальянским c или жирным шрифтом.
  • FontFamily типа строка, это семейство шрифтов, используемых для текста окна поиска.
  • FontSize, типа double, это размер текста окна поиска.
  • HorizontalTextAlignment, типа TextAlignment, является горизонтальным выравниванием текста поля поиска.
  • PlaceholderColor, типа Color, является цветом текста поля поиска заполнителя.
  • TextColor, типа Color, является цвет текста окна поиска.
  • VerticalTextAlignment типа TextAlignment - вертикальное выравнивание текста поля поиска.

Секунда , при использовании Настраиваемые средства визуализации Shell также не могут быть найдены SearchBar в NavigationController.

Например, в iOS Средство визуализации оболочки:

public class CustomNavBarAppearanceTracker : IShellNavBarAppearanceTracker
{
    public void Dispose()
    {
        //throw new NotImplementedException();
    }

    public void ResetAppearance(UINavigationController controller)
    {
        //throw new NotImplementedException();
    }

    public void SetAppearance(UINavigationController controller, ShellAppearance appearance)
    {
        //throw new NotImplementedException();
        //var seabar = controller.SearchDisplayController.SearchBar;
        controller.NavigationBar.BackgroundColor = UIColor.Red;
        Console.WriteLine("-----"+controller.NavigationItem.SearchController.SearchBar);
    }

    public void UpdateLayout(UINavigationController controller)
    {
        //throw new NotImplementedException();
    }
}

Вывод: controller.NavigationItem.SearchController.SearchBar = null

Если вы не используете SearchHandler, вы можете попробовать Custom SearchBar Renderer для его реализации.

...