|
8 / 16 / 2
Регистрация: 15.06.2015
Сообщений: 247
|
|
Как связан код программы с интерфейсной частью?06.07.2018, 08:33. Показов 1613. Ответов 7
Вопрос касается не только c#..., но все же интересно как это сделано в c#.
Допустим есть программа с интерфейсом uwp, или wpf, или winforms... код написан на c#(а может и на другом яп). Как это все связано? Я понимаю, что у кнопки есть событие и на него я вешаю некое действие...НО как программа понимает что произошло событие нажатия на кнопку. Где та связь между wpf(uwp) и кодом? ну или допустим я захочу нарисовать свою кнопку(или другой визуальный объект) с блекджеком....Как это сделать? куда смотреть? что читать? Как заставить этот объект запускать событие? Какими средствами вообще разрабатываются эти визуальные объекты? Как можно самому сделать свою систему интерфейса типо WPF?(понятно что оно нафиг никому не надо, но чтобы понять как работает...почему бы и нет) да и в чем кардинальное отличие wpf и winforms, за исключением того что в wpf проще сделать что-то красивое? в чем отличие программное их?
0
|
|
| 06.07.2018, 08:33 | |
|
Ответы с готовыми решениями:
7
JavaBuilder + код из html связан с button actionlistener.
|
|
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
|
|
| 06.07.2018, 09:14 | |
|
Операционная система генерирует кучу событий. Например нажатие клавиши, движение мыши, клик мыши.
Программа подписывается на эти события операционной системы. Соответственно для начала Вам нужно изучить, что такое делегаты и события C#. Потом уже грамотно понимать, как WinForms/WPF цепляют обработчики событий. Для новичка особой разницы между WPF и WinForms месяца три практически не будет.
0
|
|
|
8 / 16 / 2
Регистрация: 15.06.2015
Сообщений: 247
|
||
| 06.07.2018, 09:23 [ТС] | ||
|
Я знаю как прописать действие на событие у кнопки, но я не врубаюсь почему же эта гадость работает! Где прописывается такое "вот это интерфейс на wpf и он будет работать с файлом 123.cs, а файл 123.cs в свою очередь будет работать с интерфейсом 123.xaml" Делегаты и прочая шняга принимают это уже как данность и просто работают. а как прописывается эта связка? Добавлено через 2 минуты И когда я говорил про "свою кнопку", я имел ввиду не <button name="моякнопка">, а про <mycustommegabuttonwithblackjack>...
0
|
||
|
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
|
|
| 06.07.2018, 09:41 | |
|
Phobos92, грубо говоря XAML и код C# это partial class-ы.
При компиляции соединяются в единое целое. Компилятор объединяет. Добавлено через 12 минут Кстати, в этом плане первое встреченное отличие будет: - WPF иногда прицепляет XAML, но может прекрасно обходиться без XAML. - WinForms не прицепляет XAML, там в проекте cs-файлы и ресурсы.
1
|
|
|
1 / 1 / 1
Регистрация: 14.10.2015
Сообщений: 94
|
|
| 06.07.2018, 10:12 | |
|
Если без замудренных архитектурных особенностей, то в WinApi скорее всего есть какой-то метод, который вызывается каждый кадр в котором и проверяется была ли нажата какая-либо клавиша или что-нибудь другое. Потом это отправляется уже на уровень выше в WPF или WinForms и вдруг вот если было нажато, то уже идет вызов события.
На самом деле, может быть это не точно, но в Unity так это и сделано. Просто создается объект EventSystem единственный, который проверяет вообще всеееее изменения каждый кадр, от нажатия кнопки, до движения курсора. А потом уже если что-то было сделано, то вызывается соответствующее событие. Примерно так, но это я так думаю, на практике может все по другому обстоит.
1
|
|
|
управление сложностью
|
||||
| 09.07.2018, 08:08 | ||||
|
Но есть одно но, например в книге МакДональда упущена одна важная глава про MVVM новичку действительно сложновато разобраться как нужно делать правильно.
0
|
||||
|
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
|
|
| 09.07.2018, 09:46 | |
|
Почтальон, сейчас на сайте Metanit очень хорошее описание MVVM:
https://metanit.com/sharp/wpf/22.1.php Плюс корифеи C# много пишут об асинхронности в MVVM. Тут из Яндекса: https://yandex.ru/search/?text... rosoft.com В принципе литературных источников сейчас очень много.
0
|
|
|
управление сложностью
|
|
| 09.07.2018, 09:48 | |
|
amr-now, про метанит я знал, я имел ввиду печатную литературу и на русском
0
|
|
| 09.07.2018, 09:48 | |
|
Помогаю со студенческими работами здесь
8
Создание программы с клиентской частью char_t и как он связан с оперативкой? Связан ли как-либо апплет с документом HTML? Не могу понять как связан PHP c CSS Как узнать с каким полем БД связан MaskedTextBox? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|