8 / 16 / 2
Регистрация: 15.06.2015
Сообщений: 247
1

Как связан код программы с интерфейсной частью?

06.07.2018, 08:33. Показов 1344. Ответов 7
Метки wpf (Все метки)

Author24 — интернет-сервис помощи студентам
Вопрос касается не только c#..., но все же интересно как это сделано в c#.

Допустим есть программа с интерфейсом uwp, или wpf, или winforms...
код написан на c#(а может и на другом яп). Как это все связано?

Я понимаю, что у кнопки есть событие и на него я вешаю некое действие...НО как программа понимает что произошло событие нажатия на кнопку. Где та связь между wpf(uwp) и кодом?

ну или допустим я захочу нарисовать свою кнопку(или другой визуальный объект) с блекджеком....Как это сделать? куда смотреть? что читать? Как заставить этот объект запускать событие?

Какими средствами вообще разрабатываются эти визуальные объекты?
Как можно самому сделать свою систему интерфейса типо WPF?(понятно что оно нафиг никому не надо, но чтобы понять как работает...почему бы и нет)
да и в чем кардинальное отличие wpf и winforms, за исключением того что в wpf проще сделать что-то красивое? в чем отличие программное их?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.07.2018, 08:33
Ответы с готовыми решениями:

Как связан в данном случае HTML-код?
Изначально написал не правильно строчку <a href="http://ru.html.net/" title="HTML-учебник"><img...

JavaBuilder + код из html связан с button actionlistener.
Skagite pogalujsta kak kod html,kotorij svjazan s listenerom button-a moget rabotat s...

Связи: человек1 связан с человек2, --в свою очередь человек2 связан с человек3
Ребятки всем доброго времени суток. Вопрос в следующем. --Есть бд со связями (пример во...

Создание программы с клиентской частью
Я создал программу с клиентской частью и база с которой эта программа работает написано в SQL...

7
Эксперт JS
6492 / 3903 / 2005
Регистрация: 14.06.2018
Сообщений: 6,781
06.07.2018, 09:14 2
Операционная система генерирует кучу событий. Например нажатие клавиши, движение мыши, клик мыши.
Программа подписывается на эти события операционной системы.

Соответственно для начала Вам нужно изучить, что такое делегаты и события C#.
Потом уже грамотно понимать, как WinForms/WPF цепляют обработчики событий.

Для новичка особой разницы между WPF и WinForms месяца три практически не будет.
0
8 / 16 / 2
Регистрация: 15.06.2015
Сообщений: 247
06.07.2018, 09:23  [ТС] 3
Цитата Сообщение от amr-now Посмотреть сообщение
Операционная система генерирует кучу событий. Например нажатие клавиши, движение мыши, клик мыши.
Программа подписывается на эти события операционной системы.
Соответственно для начала Вам нужно изучить, что такое делегаты и события C#.
Потом уже грамотно понимать, как WinForms/WPF цепляют обработчики событий.
Я представляю что такое делегаты и события. Я не врубаюсь что именно заставляет работать вместе wpf и код а c#.
Я знаю как прописать действие на событие у кнопки, но я не врубаюсь почему же эта гадость работает!
Где прописывается такое "вот это интерфейс на wpf и он будет работать с файлом 123.cs, а файл 123.cs в свою очередь будет работать с интерфейсом 123.xaml" Делегаты и прочая шняга принимают это уже как данность и просто работают. а как прописывается эта связка?

Добавлено через 2 минуты
И когда я говорил про "свою кнопку", я имел ввиду не <button name="моякнопка">, а про <mycustommegabuttonwithblackjack>...
0
Эксперт JS
6492 / 3903 / 2005
Регистрация: 14.06.2018
Сообщений: 6,781
06.07.2018, 09:41 4
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 5
Если без замудренных архитектурных особенностей, то в WinApi скорее всего есть какой-то метод, который вызывается каждый кадр в котором и проверяется была ли нажата какая-либо клавиша или что-нибудь другое. Потом это отправляется уже на уровень выше в WPF или WinForms и вдруг вот если было нажато, то уже идет вызов события.

На самом деле, может быть это не точно, но в Unity так это и сделано. Просто создается объект EventSystem единственный, который проверяет вообще всеееее изменения каждый кадр, от нажатия кнопки, до движения курсора. А потом уже если что-то было сделано, то вызывается соответствующее событие.

Примерно так, но это я так думаю, на практике может все по другому обстоит.
1
управление сложностью
1687 / 1300 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
09.07.2018, 08:08 6
Цитата Сообщение от Phobos92 Посмотреть сообщение
НО как программа понимает что произошло событие нажатия на кнопку
для этого программисты "расставляют жучки", которые оповещают что произошло "такое-то" событие, и те жучки, которые закодированы на определенные события как-то должны реагировать (не зря же их программист "расставил"). События по большей части нужны для GUI, чтоб реагировать на команды юзверя. И не важно на каком языке эта реализация, это просто концепция.
Цитата Сообщение от Phobos92 Посмотреть сообщение
допустим я захочу нарисовать свою кнопку(или другой визуальный объект) с блекджеком....Как это сделать? куда смотреть? что читать? Как заставить этот объект запускать событие?
Цитата Сообщение от Phobos92 Посмотреть сообщение
Я не врубаюсь что именно заставляет работать вместе wpf и код а c#
WPF это уже технология. По сути в книгах описываются механизмы реализации на том или ином языке, взять тот же WPF.
Но есть одно но, например в книге МакДональда упущена одна важная глава про MVVM новичку действительно сложновато разобраться как нужно делать правильно.
0
Эксперт JS
6492 / 3903 / 2005
Регистрация: 14.06.2018
Сообщений: 6,781
09.07.2018, 09:46 7
Почтальон, сейчас на сайте Metanit очень хорошее описание MVVM:
https://metanit.com/sharp/wpf/22.1.php
Плюс корифеи C# много пишут об асинхронности в MVVM. Тут из Яндекса:
https://yandex.ru/search/?text... rosoft.com

В принципе литературных источников сейчас очень много.
0
управление сложностью
1687 / 1300 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
09.07.2018, 09:48 8
amr-now, про метанит я знал, я имел ввиду печатную литературу и на русском
0
09.07.2018, 09:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.07.2018, 09:48
Помогаю со студенческими работами здесь

char_t и как он связан с оперативкой?
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; struct stack { char data; struct...

Связан ли как-либо апплет с документом HTML?
Глупый вопрос: связан ли как-либо апплет с документом HTML (в плане возврата результатов своей...

Не могу понять как связан PHP c CSS
Здравствуйте. Редактирую дизайн одного шаблона. Необходимо поменять радиус (закругление) кнопки....

Как узнать с каким полем БД связан MaskedTextBox?
Уважаемые форумчане! Помогите. Что-то не могу найти решение. На форме имеется компонент...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru