Я только начал работать в Xamarin и пишу приложение для таргетинга на iOS и Android. Я пытаюсь сохранить почти весь свой дизайн пользовательского интерфейса в общей библиотеке между ними, и я начинаю искать строки немного размытыми. Мое текущее требование - отключить автокапитализацию объекта тега «Entry» в XAML. Это что-то, что можно сделать с помощью разметки? Я не могу найти какое-либо свойство, которое поддерживало бы это поведение. Если нет, что мне делать вместо этого?Есть ли способ отключить автоматическую капитализацию Xamarin Forms 'Entry' XAML
ответ
Вы можете установить Keyboard="Text"
- клавиатура Default
выполняет капитализацию.
Также проверьте дополнительную клавиатуру settings, которая может быть применена. Они позволяют переключаться с предложениями и прочими вещами.
В качестве альтернативы я рекомендую вам создать простой Effect для UITextField
и использовать родную IOS API, чтобы установить флаги нужно (AutocapitalizationType = UITextAutocapitalizationType.None;
).
У нас также есть documentation о том, как создать пользовательский рендерер для достижения цели, но с момента появления эффектов это, похоже, немного перебор.
Я пробовал настраивать клавиатуру на «Текст», но результат остался для меня одинаковым - я использую симулятор iOS, и он заглаживает первое письмо каждый раз независимо. Я прочитаю об эффектах, но, полагаю, я немного смущен тем, что делает для меня «общий» вид, если я должен делать пользовательские представления или изменения в каждой операционной системе. Я уверен, что мне не хватает чего-то фундаментального здесь, его ранних дней для меня в этом мире.Ваша часть ответа, похоже, предполагает использование подхода, отличного от XAML, заключается в том, что я неправильно его понимаю? –
Если вы планируете использовать эту клавиатуру в количестве или на страницах, вы хотите добавить следующий код в свой ResourceDictionary
вашего App.xaml. Если вы хотите использовать его в нескольких местах, но только в одном ContentPage
, вы хотите добавить его в ContentPage
ResourceDictionary
. В противном случае вы можете добавить его в каталог Entry
.
Также см. here для имеющихся значений KeyboardFlag
. Я просто использую None
ниже.
При добавлении к ResourceDictionary
:
<ContentPage.Resources>
<ResourceDictionary>
<Keyboard x:Key="NoCapitalizationKeyboard"
x:FactoryMethod="Create">
<x:Arguments>
<KeyboardFlags>None</KeyboardFlags>
</x:Arguments>
</Keyboard>
</ResourceDictionary>
</ContentPage.Resources>
<Entry Keyboard="{StaticResource NoCapitalizationKeyboard}" />
Или непосредственно к Entry
:
<Entry>
<Entry.Keyboard>
<Keyboard x:FactoryMethod="Create">
<x:Arguments>
<KeyboardFlags>None</KeyboardFlags>
</x:Arguments>
</Keyboard>
</Entry.Keyboard>
</Entry>
- 1. Динамически отключить автоматическую капитализацию EditText
- 2. Отключить автоматическую капитализацию в Windows
- 3. Есть ли лучший способ масштабирования элементов в Xamarin Forms XAML?
- 4. Отключить автоматическую капитализацию Windows Phone 7
- 5. Xamarin Forms Entry throwing Java.Lang.ArrayIndexOutOfBoundsException
- 6. Xamarin Forms Switch XAML
- 7. Xamarin Layout vs Xamarin Forms ContentPage XAML
- 8. Xamarin Forms WinRT Entry Custom Renderer
- 9. Xamarin Forms: Entry with background image
- 10. Xamarin Forms XAML Layout Ques
- 11. Xamarin Forms XAML Label Rotation
- 12. xamarin entry not work
- 13. Есть ли способ отключить автоматическую декларацию для нестандартных типов?
- 14. Есть ли способ указать несколько LayoutFlags в XAML Xamarin?
- 15. Как реализовать автоматическую капитализацию в JavaScript/HTML
- 16. Изменение isVisible свойство Xamarin Forms Кнопки XAML
- 17. Xamarin Forms Alternating BackgroundColor Listview в XAML
- 18. Xamarin Forms Action Bar
- 19. Share Context on Xamarin Forms Xaml MasterDetailPage
- 20. Xamarin Forms/XAML: конвертер не называется
- 21. Xamarin Forms XAML - булево набор атрибутов из XAML
- 22. Xamarin Forms - Отключить загрузку счетчика в ListView
- 23. Xcode не может установить автоматическую капитализацию UITextField
- 24. Xamarin Forms Listview set focus to entry в выбранной строке
- 25. Xamarin Forms Pill Button
- 26. Свойства объекта BreezeSharp, связанные с Xamarin Forms Entry
- 27. Xamarin Forms Label - Обоснование?
- 28. Xamarin Forms custom Entry renderer, который скрывает мягкую клавиатуру
- 29. pandoc - отключить капитализацию уценки фокуса
- 30. Xaml Entry MVVM Databinding
Когда я создаю новый 'Entry' и введите в него, то первая буква не капитализируются. Возможно, вы указали конкретный 'Entry.Keyboard' или' KeyboardFlag' в 'Entry'? Либо напрямую, либо, может быть, через стиль/базовый класс? Следующее должно принудительно ввести запись в авто-заглавные буквы, но я не думал, что это произошло без этого флага: 'new Entry {Keyboard = Keyboard.Create (KeyboardFlags.CapitalizeSentence)};' ([source] (https: // developer .xamarin.com/recipes/cross-platform/xamarin-forms/controls/select-keyboard-for-entry/# Sentence_capitalization)) – hvaughan3
Я использую xaml для создания экземпляра Entry, разметка полностью голая, поэтому только. Я могу получить доступ к свойству Entry.Keyboard, но я не вижу никакого очевидного контента, который мог бы внести туда, что изменило бы это поведение. Я запускаю это на симуляторе iOS. Вы создаете свою запись из XAML? Какой симулятор вы используете? –
Отправлено на симулятор iOS (iPhone 4s 8.4). У вас все еще может быть глобальный стиль «Entry», определенный в вашем файле «App.xaml» или определенный в вашей «ContentPage»? – hvaughan3