Ответы пользователя по тегу C#
  • Почему вместо текста, я вижу набор символов, как исправить?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Открою маленький секрет: есть такая штука, как кодировка текста - пока не скажете машине в какой кодировке ваш текст, она не сможет правильно его отобразить. Поэтому вам для начала надо разобраться в какой кодировке приходит текст от сервера, затем при необходимости перекодировать текст, а уже только потом вывести в правильной кодировке или куда-то его сохранить.
    Ответ написан
  • Как заблокировать одну из нескольких tabs в С#?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    1 комментарий
  • Как создать билдер на C#?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    В вашем приложении либо реализуете свой скриптовый язык (или какой надо) и реализуете структуру исполняемого файла и соответствующий скрипту бинарный код, компилируя его из скрипта и далее просто сохраняется на диске. Либо используете какой-то уже готовый компилятор и с его помощью компилируете приложение. Детали по реализации зависят от конкретной задачи.
    Ответ написан
  • Как добавить поддержку кириллицы в post method Swagger?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    1. Проверить кодировку со стороны клиента
    2. Проверить кодировку принимаемой строки при парсинге/валидации пришедших данных со стороны сервера
    3. Проверить кодировку после парсинга строки и конвертации её в тип "строка"
    4. Проверить кодировку при сохранении в БД

    Во всех четырех случаях она должна совпадать.
    Ответ написан
    Комментировать
  • Почему не работает код?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    не могу понять почему не выполняется дальше код в цикле а окно просто виснет(не отвечает)

    Потому что в основном потоке графического приложения в Windows обрабатываются системные сообщения и если в этом потоке начать выполнять тяжелый код, то естественно все будет виснуть. Поэтому в основном потоке работать только с UI, а любые вычисления надо запускать в отдельном потоке. Так что выводите все ваши вычисления, в т.ч. работу с сетью в отдельный поток.
    Ответ написан
  • Как положить массив классов в JSON?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Еще есть отличная либа Newtonsoft.Json.
    Ответ написан
  • Корректен ли такой способ обьявления переменной?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    IEnumerable - интерфейс, а List - класс, реализующий данный интерфейс. Любой класс может реализовывать несколько интерфейсов. Правильнее объявлять как есть - т.е. List, а там где, где нужен конкретный интерфейс/класс - просто делать каст. Обычно не требуется, т.к. IDE/компилятор еще стадии написания/компиляции кода проверяет наличие нужного интерфейса в передаваемом объекте. Соответственно, если ваш конструктор просит IEnumerable, но не разрешает List - проверяйте точнее, что именно нужно конструктору, т.к. если все правильно делать - то List он должен принимать.
    Ответ написан
    3 комментария
  • Как установить соединение с сервером Windows по TCP?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Надо открыть порт в настройках сервера в консоли AWS, если правильно помню - это делается в группе безопасности, в которой находится сервер.
    Ответ написан
    Комментировать
  • Как поставить окно на задний план?

    VoidVolker
    @VoidVolker Куратор тега Windows
    Dark side eye. А у нас печеньки! А у вас?
    SetWindowPos

    HWND_BOTTOM
    Places the window at the bottom of the Z order. If the hWnd parameter identifies a topmost window, the window loses its topmost status and is placed at the bottom of all other windows.
    Ответ написан
    Комментировать
  • Как перенести разметку текста из html файла в приложение wpf?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Конвертировать в XAML, ищите по фразе html 2 xaml - я лично не проверял и на сколько качественные нынче конвертеры я не знаю, но в целом должно работать.
    Ответ написан
    1 комментарий
  • Как обратиться к экземпляру класса объявленному на другой форме?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Да, просто уровнем выше создайте переменные/поля с нужными данными и передавайте их как параметры в конструкторе формы.
    Ответ написан
    3 комментария
  • Имеет ли смысл использовать паттерн MVVM в приложении Winforms?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Нет, оно там просто не нужно - достаточно просто правильно структурировать приложение. В WF вполне достаточно просто разделить логику приложения и логику самого интерфейса. Нужен нестандартный контрол со своим поведением? Отпочковываем класс от Control и вперед. Логика самого интерфейса вполне нормально живет в самих классах элементов управления (в терминах MVVM это два в одном View + ViewModel). Например, реальный случай из практики: запилил WF приложение по выданному дизайну - его потестили и почти сразу дизайнер нарисовал полностью новый дизайн; ввиду увеличения фишечек, рюшечек и всего остального (а так же тормозов древнего легаси наследия WF, конечно же) - я просто перенес файлы с логикой из WF проекта в WPF проект в модели и запилил новый GUI на WPF.
    Ответ написан
    Комментировать
  • Как упросить это if...else выражение?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Перегрузка - самый оптимальный вариант.
    Ответ написан
    1 комментарий
  • Вытащить данные с nested json?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
  • Как упростить синтаксис вызова конструктора в c#?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Комментировать
  • Какой тип данных лучше использовать для привязки к Canvas в WPF?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    как например из List там отобразить произвольное количество отрезков (именно со стороны XAML, впринципе если просто взять XY координаты точек и построить по ним линии со стороны VM то это без проблем, а вот как "заставить" эти линии отобразиться непосредственно на канвасе уже со стороны view - пока для меня не совсем понятно)


    В вашем случае все просто: входящие данные, в XAML инпуты привязываются к VM и далее к модели, а исходящие данные через модель передаются в VM и оттуда уже идет привязка к нужному контролу. В модели, при поступлении данных либо вызывается метод для вычисления точек графика либо вычисление делается по команде из VM отдельным методом. Точки графика сохраняются в ObservableCollection, которая привязывается в XAML стандартным методом. Как именно данные из VM попадают на канвас - завит от вашей реализации графика. Правильный подход будет следующим:
    Resources
        MyChart.xaml -> xaml разметка графика (контейнер с канвасом, легендой и прочее)
    Views 
        MyChart.cs -> public class MyChart : Control // view - низкоуровневая логика самого контролла
        MyChartCanvas.cs -> public class MyChart : Canvas // Тут реализуются методы рендеринга данных
    VM
        MyChartVM.cs -> тут высокоуровневая логика работы графика, переменные и прочее
    Models
        MyChartModel.cs -> тут логика расчета данных для графика


    И вот это все связывается вместе через события и свойства. Если логика графика простая - то её можно оставить во View, но лучше, конечно, все же вынести в отдельный View просто унаследовав от канваса.
    Ответ написан
    Комментировать
  • Как конвертировать json в C#?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Вот так с использованием библиотеки Newtonsoft.Json: https://qna.habr.com/q/552973#answer_1257091
    Ответ написан
  • Как сделать картинку размером более 100000 пикселей(png)?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Если памяти хватает - создать массив нужного размера и далее его сохранять в нужный формат в файл. Имеет смысл поискать либы для работы с большими файлами. Либо писать самостоятельно. Про GDI вам уже сказали, что он не поддерживает большие файлы - там просто древний легаси код. Если памяти не хватает - работать с пикселями в потоковом режиме или с небольшими блоками, зависит от того, что надо делать с изображением.
    Ответ написан
    Комментировать
  • Как ожидать нажатия клавиши без заморозки основного потока?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Во-первых - для работы с хоткеями используйте соответствующие события, а не проверку нажата ли или нет клавиша. ОС предоставляет для этого специальные API и оно уже реализовано на уровне приложения. Проверка в цикле "нажата ли клавиша" просто тупо будет грузить процессор на 100% и 99.999% времени эта проверка бесполезна, при этом ОС уведомит приложении о клавише отдельным сообщением. Если надо глобальные хоткеи на уровне приложения - это делается через добавление кода в проверку системных сообщений окну и создание события, на которое уже вешается свой обработчик и какие-то там действия в приложении. Если надо хоткей на уровне системы - то тут надо использовать хук.
    Второе - это ошибка, поиск в гугле которой, стразу же приведет вас к решению и объяснению, почему так. Кроме того, она же на русском даже.
    Ответ написан