Я разрабатываю приложение для Windows 10 UWP, и я хотел бы добавить текстовые поля с кнопками, как показано на скриншоте. Снимок экрана взят из универсального приложения «Карты» в Windows 10. Если кто-то может указать мне на любую документацию или образцы, я был бы очень благодарен.Добавить кнопку в текстовое поле
ответ
Вот подсказка: смотрите на TextBox control template.
Это очень долго, поэтому я не буду копировать все это, но если вы посмотрите на нижнюю часть, вы заметите, что есть текст ContentControl для заполнителя (PlaceholderTextContentPresenter), а также кнопка с именем DeleteButton, которая видимый, когда вы фокусируетесь на TextBox с некоторым текстом внутри.
Это показывает вам, что одним из способов сделать то, что вы хотите, является изменение шаблона, чтобы иметь другую кнопку рядом с DeleteButton или что-то подобное (в зависимости от того, чего вы пытаетесь достичь в конце), а затем вы можете скрыть его или показать в зависимости от текущего VisualState, что также будет определено в вашем шаблоне.
Создание шаблона также означает, что вы можете сделать его вполне многоразовым, чтобы вы могли использовать его и в будущих проектах.
Это ответ на следующий вопрос: как вы обрабатываете события на дополнительной кнопке?
Если ваш новый шаблон кнопки находится в каком-либо локальном ресурсном словаре (например, Page.Resources
, вы можете просто добавить обработчик кликов непосредственно. Если шаблон кнопки живет в отдельном ресурсном словаре (Styles.xaml или что-то еще) делать это потребует создания кода позади для словаря это, вероятно, лучше подклассы и сделать что-то вроде этого:.
public class MyTextBox : TextBox
{
public event EventHandler<RoutedEventArgs> ExtraClick;
protected override void OnApplyTemplate()
{
base.OnApplyTemplate();
Button extraButton = GetTemplateChild("ExtraButton") as Button;
if (extraButton != null)
{
extraButton.Click += (sender, e) => ExtraClick?.Invoke(sender, e);
}
}
}
вы могли бы справиться с этим (или любой другой вы заботитесь решать) события, где вы на самом деле использовать кнопка, например,
<local:MyTextBox ExtraClick="OnExtraClicked" />
Code-за:
private void OnExtraClicked(object sender, RoutedEventArgs e)
{
// ...
}
Для полноты: Внешний словарь должен быть объединены в имеющиеся ресурсы в какой-то момент, например, в ресурсах приложения:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Styles.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
- 1. Добавить кнопку в текстовое поле javafx
- 2. Как добавить кнопку в текстовое поле iphone?
- 3. Добавить кнопку в текстовое поле слова
- 4. как добавить текстовое поле, нажав кнопку
- 5. Как добавить кнопку в текстовое поле в поле зрения
- 6. Поместите кнопку в текстовое поле
- 7. Как добавить новое текстовое поле в существующее текстовое поле-iphone
- 8. Как добавить текст в текстовое поле, нажав кнопку
- 9. select2 как добавить текстовое поле и кнопку в combobox
- 10. JavaScript - Попытка добавить значение в текстовое поле, нажав кнопку
- 11. Как добавить текстовое поле/кнопку в контроллер табличного представления?
- 12. Выровнять текстовое поле и кнопку
- 13. Добавить текстовое поле программно
- 14. Как автоматически добавить текстовое поле
- 15. Добавить номера в текстовое поле
- 16. Добавить текстовое поле в multipleTextBox
- 17. Добавить текстовое поле в jquery
- 18. Добавить текст в текстовое поле
- 19. Добавить текстовое поле в tableviewheader
- 20. Добавить теги в текстовое поле
- 21. Добавить границы в текстовое поле
- 22. Добавить значение в текстовое поле
- 23. Добавить изображение в текстовое поле
- 24. C# добавить текстовое поле динамическое
- 25. Добавить поле ввода текста в текстовое поле
- 26. Добавить текстовое поле при нажатии кнопки Добавить
- 27. android: как добавить кнопку или текстовое поле на холсте
- 28. мы можем добавить текстовое поле и кнопку, чтобы выбрать 2
- 29. Javascript добавить кнопку текстовое поле не работает должным образом
- 30. Добавить новую метку и текстовое поле на кнопку click Java
У меня есть вопрос об этом решении , Как вы обрабатываете события добавленной кнопки? Элемент управления TextBox, как и ожидалось, не представляет таких событий. Должен ли я подклассифицировать TextBox или есть другой способ, которым это можно сделать, просто переустановив элемент управления? – Corcus