none
Создание в TextBox неизменного текста RRS feed

  • Вопрос

  • WPF C# Добрый день.

    Как можно в TextBox сделать неизменный текст

    Например надо ввести цифрами количество рублей. А в конце введённых данных должен быть символ р.

    Ввожу в TextBox 12 отображается: 12 р.

    Далее ввожу в TextBox 45 отображается: 1245 р.

    Т.е. р. это всегда приставка в конце. Но не просто приставка а объект который тоже может меняться. Он тоже берётся из базы или из переменной или вычисляется как то.

    Спасибо за помощь

    14 февраля 2016 г. 4:43

Ответы

  • Хотя есть несколько направлений реализации вашей задумки, я бы все таки отказался бы именно от такого подхода.

    При разработке первое, что вы должны помнить - пользователь имеет привычки. Если поведение вашего приложения идет в разрез привычек пользователя, то он откажется от его использования, либо будет регулярно поминать вас не добрым словом, если отказаться не может.

    Вы же не станете помещать кнопки управления окном в нижний левый угол, потому что вам показалось это оправданным. Так же и с вашей идеей. Пользователь привык работать с текстовым полем по определенному принципу и самодеятельность этого текстового поля, может сбить с толку и создать массу неудобств.

    Как бы вашу задачу решил бы я? Предельно просто - справа от TextBox поместил бы TextBlock с надписью "р." (или что там еще будет). Причем визуально я бы оставил различия TextBox и TextBlock такими как они есть. Таким образом пользователю будет понятно, что обозначение валюты он изменить не может.


    VB.Net - WPF, UWP

    • Помечено в качестве ответа DevingAs 17 февраля 2016 г. 9:37
    17 февраля 2016 г. 9:05
    Отвечающий

Все ответы

  • Хотя есть несколько направлений реализации вашей задумки, я бы все таки отказался бы именно от такого подхода.

    При разработке первое, что вы должны помнить - пользователь имеет привычки. Если поведение вашего приложения идет в разрез привычек пользователя, то он откажется от его использования, либо будет регулярно поминать вас не добрым словом, если отказаться не может.

    Вы же не станете помещать кнопки управления окном в нижний левый угол, потому что вам показалось это оправданным. Так же и с вашей идеей. Пользователь привык работать с текстовым полем по определенному принципу и самодеятельность этого текстового поля, может сбить с толку и создать массу неудобств.

    Как бы вашу задачу решил бы я? Предельно просто - справа от TextBox поместил бы TextBlock с надписью "р." (или что там еще будет). Причем визуально я бы оставил различия TextBox и TextBlock такими как они есть. Таким образом пользователю будет понятно, что обозначение валюты он изменить не может.


    VB.Net - WPF, UWP

    • Помечено в качестве ответа DevingAs 17 февраля 2016 г. 9:37
    17 февраля 2016 г. 9:05
    Отвечающий
  • Вы же не станете помещать кнопки управления окном в нижний левый угол, потому что вам показалось это оправданным.

    Как бы вашу задачу решил бы я? Предельно просто - справа от TextBox поместил бы TextBlock с надписью "р." (или что там еще будет). Причем визуально я бы оставил различия TextBox и TextBlock такими как они есть. Таким образом пользователю будет понятно, что обозначение валюты он изменить не может.

    Спасибо LXGDARK.

    C TextBlock у меня не получилось. Точнее очень всё сложно. В XAML городить. У меня была задача не справа от TextBox разместить "р." а именно внутри TextBox. Где то в Excel такая функция была.

    String.Format( решил то чего нужно было.

    А по кнопкам управления окном - :) у меня вся программа изобилует "новыми" методами управления окном и новым взаимодействием с пользователем. Верхней панели у меня как раз нет (там где три кнопки минимизировать свернуть и закрыть)

    Я подумал раз Microsoft "легко" меняет правила пользования в WINRT изменив под планшеты, то почему мне нельзя :).  А пользователь - привыкнет. Я слышал от пользователя перешедшего на Apple что слева вверху кнопки управления окном ему почему то удобнее. Хотя мне удобнее справа вверху.

    Может я и не прав.


    • Изменено DevingAs 17 февраля 2016 г. 9:38
    17 февраля 2016 г. 9:37
  • Тут нужно не забывать, что пользователь Windows 8/1 и 10 четко понимает разницу между классическим приложением и приложением рабочего стола, поэтому адаптируется и ждет от каждого своего поведения.

    Красивый макет это важно, но он при всем при этом должен быть удобным.

    Вот пример моего WPF приложения. Фирменный стиль соседствует со стандартами и в итоге я никого не учил пользоваться приложением. Пользователи понимали что делать на уровне интуиции. Это и называется "интуитивно понятный интерфейс"

    Что же начального вопроса. Если реализация с TextBlock вам не подходит или не получается, то лучше не закрывать тему. а продолжить диалог. Лично я приветствую стремление в получении новых знаний.


    VB.Net - WPF, UWP

    17 февраля 2016 г. 11:09
    Отвечающий