Возможно ли стиль/шаблон TextBox, чтобы входные данные заполняли его значение справа налево? Мой вопрос не связан с арабским письмом - я пытаюсь создать текстовое поле для поля валюты, так что, когда пользователь вводит «12» - значение становится «0.12». Проект C#/WPF/MVVM здесьВход TextBox справа налево
ответ
Вы попробовали HorizontalContentAlignment
? Это должно сработать для вас.
<TextBox HorizontalContentAlignment="Right" Text="6999958"></TextBox>
Для преобразования значения '12' до '0.12', пожалуйста, используйте преобразователь, как
<TextBox HorizontalContentAlignment="Right" Text="6999958" Converter={Binding CurrencyConverter}></TextBox>
И здесь идет код преобразователя:
public class CurrencyConverter: IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
var intValue = int.Parse(value.ToString());
var result = 0;
try
{
result = intValue/100;
}
catch (Exception)
{
}
return result;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
Спасибо, этот работает для TextBox. Вы могли бы посоветовать решение для TextBlock (DataGridColumn.CellStyle) тоже? TextBlock не имеет свойства HorizontalContentAlignment. –
Используйте свойство TextAlignment для текстового блока. Но зачем это нужно для текстового блока, где пользователь не может вводить текст. Не могли бы вы попробовать это для текстового блока? '
Да, спасибо, очень близко к что я хочу. TextBlock - потому что это элемент DataGridColumn.CellStyle - когда пользователь нажимает на ячейку для редактирования - становится TextBox. Если я сначала создаю этот TextBox - DataGrid выглядит не очень хорошо - и я не хочу, чтобы это была коллекция TextBox, которые сразу принимают курсор –
Пробовал несколько решений здесь SO, и IMHO - this one является лучшим для форматирования валюты в TextBox. Это решение форматирует ввод в значение валюты, а также принимает только числа и указанный делитель (который настраивается в обработчике событий KeyPress). Просто дать попробовать, легко реализовать и работает отлично подходит для этого случая (поддерживает формат в конкретной культуре, а не культуры вашего текущего компьютера)
private void textBox_TextChanged(object sender, EventArgs e)
{
textBox.Text = string.Format(System.Globalization.CultureInfo.GetCultureInfo("id-ID"), "{0:##0.00}", double.Parse(textBox.Text));
}
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) && (e.KeyChar != '.'))
{
e.Handled = true;
}
// only allow one decimal point
if ((e.KeyChar == '.') && ((sender as TextBox).Text.IndexOf('.') > -1))
{
e.Handled = true;
}
}
- 1. Вход справа налево
- 2. Вход TextBox справа налево, но dir = "rtl" не завершен
- 3. справа налево вход маски с JQuery
- 4. справа налево поддержки сетки
- 5. Жест Android справа налево
- 6. Jquery выцветанию справа налево
- 7. Частичное приложение справа налево?
- 8. Комбинированные элементы справа налево
- 9. Горизонтальная прокрутка справа налево
- 10. PDFlib- справа налево TextFlow
- 11. Слайд-карусель справа налево
- 12. показать шрифт справа налево
- 13. Скользящий справа налево
- 14. Справа налево Notificatoin.Builder
- 15. Iphone справа налево
- 16. Справа налево TListView
- 17. slideToggle JQuery справа налево
- 18. Довести viewfrom справа налево
- 19. Печать DataGridView справа налево
- 20. Анимация ширины справа налево
- 21. SWT RowLayout справа налево?
- 22. PrimeFaces MenuItem Справа налево
- 23. Вставка Сортировка справа налево
- 24. Слайд div справа налево
- 25. справа налево jframe
- 26. iTextSharp XmlWorker: справа налево
- 27. java- FlowLayout справа налево
- 28. справа налево Resize Animation
- 29. Обратный поиск (справа налево)
- 30. Выражение parse справа налево
Почему вы не можете просто выровнять текст по правому краю? – GregaMohorko