Jump to content

Формы Windows

Формы Windows (WinForms)
Другие имена WinForms
Оригинальный автор(ы) .NET : Microsoft ,
Моно : Симиан / Novell
Разработчик(и) Фонд .NET
Первоначальный выпуск 13 февраля 2002 г .; 22 года назад ( 13 февраля 2002 г. )
Стабильная версия
v8.0.0 / 14 ноября 2023 г .; 8 месяцев назад ( 14.11.2023 ) [1]
Репозиторий
Написано в С#
Операционная система Microsoft Windows
Платформа .NET Framework , .NET , моно
Тип Программная среда , набор инструментов для виджетов
Лицензия МОЯ лицензия
Веб-сайт учиться .microsoft /en-нас /дотнет /рабочий стол /winforms /

Windows Forms ( WinForms ) — это с открытым исходным кодом бесплатная библиотека графических (GUI) классов , входящая в состав Microsoft .NET , .NET Framework или Mono . [2] предоставление платформы для написания клиентских приложений для настольных компьютеров, ноутбуков и планшетов. [3] Хотя она рассматривается как замена более ранней и более сложной C++ на базе библиотеки классов Microsoft Foundation , она не предлагает сопоставимой парадигмы. [4] и действует только как платформа для уровня пользовательского интерфейса в многоуровневом решении. [5]

На мероприятии Microsoft Connect 4 декабря 2018 года компания Microsoft объявила о выпуске Windows Forms как проекта с открытым исходным кодом на GitHub . Он выпущен под лицензией MIT . В этом выпуске Windows Forms стала доступна для проектов, ориентированных на платформу .NET Core . Однако платформа по-прежнему доступна только на платформе Windows, а неполная реализация Windows Forms в Mono остается единственной кроссплатформенной реализацией. [6] [7]

Архитектура

[ редактировать ]
Этот API является частью .NET Framework 3.0.

Приложение Windows Forms — это приложение, управляемое событиями, поддерживаемое Microsoft .NET Framework . В отличие от пакетной программы , она проводит большую часть своего времени, просто ожидая, пока пользователь что-то сделает, например заполнит текстовое поле или нажмет кнопку . Код приложения можно написать на языке программирования .NET, таком как C# или Visual Basic .

Windows Forms обеспечивает доступ к собственным общим элементам управления пользовательского интерфейса Windows , заключая существующий API Windows в управляемый код . [8] С помощью Windows Forms .NET Framework обеспечивает более полную абстракцию над Win32 API, чем Visual Basic или MFC. [9]

Windows Forms аналогична библиотеке Microsoft Foundation Class (MFC) при разработке клиентских приложений. Он предоставляет оболочку, состоящую из набора классов C++ для разработки приложений Windows. Однако он не предоставляет платформу приложений по умолчанию, такую ​​как MFC. Каждый элемент управления в приложении Windows Forms является конкретным экземпляром класса.

Все визуальные элементы в библиотеке классов Windows Forms являются производными от класса Control. Это обеспечивает минимальную функциональность элемента пользовательского интерфейса, такую ​​как расположение, размер, цвет, шрифт, текст, а также общие события, такие как щелчок и перетаскивание. Класс Control также имеет поддержку стыковки, позволяющую элементу управления изменить свое положение под родительским элементом. Поддержка Microsoft Active Accessibility в классе Control также помогает пользователям с ограниченными возможностями лучше использовать Windows Forms. [10]

В Visual Studio формы создаются с помощью методов перетаскивания . Инструмент используется для размещения элементов управления (например, текстовых полей, кнопок и т. д.) в форме (окне). Элементы управления имеют атрибуты и обработчики событий связанные с ними . Значения по умолчанию предоставляются при создании элемента управления, но могут быть изменены программистом. Многие значения атрибутов могут быть изменены во время выполнения в зависимости от действий пользователя или изменений в среде, обеспечивая динамическое приложение. Например, в обработчик событий изменения размера формы можно вставить код, чтобы изменить положение элемента управления так, чтобы он оставался в центре формы, расширялся для заполнения формы и т. д. Вставляя код в обработчик событий для нажатия клавиши в текстовом поле, программа может автоматически переводить регистр вводимого текста или даже запрещать вставку определенных символов.

Помимо предоставления доступа к собственным элементам управления Windows, таким как кнопка, текстовое поле, флажок и просмотр списка, Windows Forms добавила свои собственные элементы управления для размещения ActiveX , организации макета, проверки и расширенной привязки данных. Эти элементы управления визуализируются с использованием GDI +. [10]

История и будущее

[ редактировать ]

Как и Abstract Window Toolkit (AWT), эквивалентный Java API, Windows Forms был первым и простым способом предоставления компонентов графического пользовательского интерфейса для .NET Framework . Windows Forms построен на основе существующего Windows API, а некоторые элементы управления просто оборачивают базовые компоненты Windows. [11] Некоторые методы обеспечивают прямой доступ к обратным вызовам Win32 , которые недоступны на платформах, отличных от Windows. [11]

В .NET Framework 2.0 Windows Forms получили более широкие возможности управления макетом, элементы управления панели инструментов в стиле Office 2003, многопоточный компонент, более широкую поддержку времени разработки и привязки данных, а также ClickOnce для развертывания через Интернет. [12] [13]

С выпуском .NET Framework 3.0 Microsoft выпустила второй параллельный API для рендеринга графических интерфейсов: Windows Presentation Foundation (WPF), основанный на DirectX, [14] вместе с декларативным языком графического пользовательского интерфейса XAML . [15]

Во время сессии вопросов и ответов на конференции Build 2014 Microsoft объяснила, что Windows Forms находится в режиме обслуживания, без добавления новых функций, но обнаруженные ошибки все равно будут исправлены. [16] Совсем недавно в обновлениях .NET Framework версии 4.5 была представлена ​​улучшенная поддержка высокого разрешения для различных элементов управления Windows Forms. [17]

Обратная совместимость XAML с Windows Forms.

[ редактировать ]

В целях дальнейшего развития Microsoft заменила Windows Forms созданием графического пользовательского интерфейса на основе XAML с использованием таких платформ, как WPF и UWP . Однако размещение компонентов графического пользовательского интерфейса методом перетаскивания аналогично Windows Forms по-прежнему обеспечивается в XAML путем замены корневого элемента XAML страницы/окна на элемент управления пользовательским интерфейсом «Canvas». Внося это изменение, пользователь может создать окно аналогично Windows Forms, напрямую перетаскивая компоненты с помощью графического интерфейса Visual Studio.

Хотя XAML обеспечивает обратную совместимость с перетаскиванием при размещении через элемент управления Canvas, элементы управления XAML похожи только на элементы управления Windows Forms и не имеют обратной совместимости «один к одному». Они выполняют схожие функции и имеют схожий внешний вид, но свойства и методы настолько различаются, что требуют переназначения одного API на другой.

Альтернативная реализация

[ редактировать ]

Mono — это проект под руководством Xamarin (ранее Ximian , затем Novell ) по созданию Ecma и набора инструментов, совместимого со стандартом .NET Framework .

В 2011 году поддержка Mono для System.Windows.Forms начиная с .NET 2.0 была объявлена ​​полной; [18] System.Windows.Forms 2.0 изначально работает в Mac OS X. [19] Однако System.Windows.Forms не получил активной разработки в Mono. [20] Полная совместимость с .NET была невозможна, поскольку Microsoft System.Windows Forms в основном представляет собой обертку Windows API , а некоторые методы допускают прямой доступ к обратным вызовам Win32 , которые недоступны на платформах, отличных от Windows. [11] Более существенная проблема заключается в том, что, начиная с версии 5.2, [21] Mono был обновлен, поэтому по умолчанию используется 64-битная платформа.Однако System.Windows.Forms на Mono для платформы Macintosh OS X был построен с использованием 32-разрядной подсистемы Carbon . [22] На эту дату [ когда? ] 64-разрядная версия System.Windows.Forms для использования в Mac OS X остается недоступной, и можно ожидать, что будут выполняться только приложения .NET, созданные для 32-разрядной платформы.

См. также

[ редактировать ]
  1. ^ «v8.0.0» . github.com . 14 ноября 2023 г. Проверено 21 ноября 2023 г.
  2. ^ Селлс, Крис (6 сентября 2003 г.). Программирование Windows Forms на C# (1-е изд.). Аддисон-Уэсли Профессионал. п. xxxviii.
  3. ^ «Руководство по проектированию и реализации веб-клиентов от Microsoft Pattern and Practices» . Майкрософт. Ноябрь 2003 года.
  4. ^ Селлс, Крис; Вайнхардт, Майкл (16 мая 2006 г.). «Приложение Б». Переход от MFC, Программирование Windows Forms 2.0 (2-е изд.). Аддисон-Уэсли Профессионал.
  5. ^ «Введение в Windows Forms» (документация Visual Studio 2003). Майкрософт 2003.
  6. ^ Мартин, Джефф (4 декабря 2018 г.). «Открытые исходные коды Microsoft WPF, WinForms и WinUI» . ИнфоQ . Проверено 6 декабря 2018 г.
  7. ^ Генсельман, Скотт (4 декабря 2018 г.). «Объявление о том, что WPF, WinForms и WinUI становятся открытым исходным кодом» . Проверено 6 декабря 2018 г.
  8. ^ Де Смет, Барт (4 января 2011 г.). «Глава 5». Выпуск C# 4.0 . Издательство Самс.
  9. ^ Гриффитс, Ян; Адамс, Мэтью (март 2003 г.). NET Windows Forms в двух словах . О'Рейли Медиа. п. 4.
  10. ^ Jump up to: а б Гриффитс, Ян; Адамс, Мэтью (март 2003 г.). NET Windows Forms в двух словах . О'Рейли Медиа. стр. 27–53.
  11. ^ Jump up to: а б с «Часто задаваемые вопросы: Winforms» . mono-project.com. Очень маловероятно, что в реализации когда-либо будет реализовано все необходимое для полной совместимости с Windows.Forms. Причина в том, что Windows.Forms не является полным набором инструментов, и для решения этой проблемы программисту предоставляется доступ к некоторым базовым основам Win32 в виде обработчика сообщений Windows.
  12. ^ Селлс, Крис; Вайнхардт, Майкл (16 мая 2006 г.). «Приложение А. Что нового в Windows Forms 2.0». Программирование Windows Forms 2.0 (2-е изд.). Аддисон-Уэсли Профессионал.
  13. ^ Нойес, Брайан (12 января 2006 г.). "Предисловие". Привязка данных с помощью Windows Forms 2.0: программирование приложений данных Smart Client с помощью .NET (1-е изд.). Аддисон-Уэсли Профессионал. ISBN  978-81-317-4823-7 .
  14. ^ Холл, Гэри (27 декабря 2010 г.). «DirectX, а не GDI+». Pro WPF и Silverlight MVVM: эффективная разработка приложений с помощью модели (изд. 2010 г.). Апресс. п. 2.
  15. ^ Смит, Джош (5 сентября 2007 г.). «WPF против Windows Forms» . Джош Смит о WPF . Проверено 25 августа 2011 г. WPF не предназначен для замены Windows Forms. [...] Windows Forms все еще жива и здорова, и Microsoft будет продолжать ее совершенствовать и поддерживать в течение многих лет. WPF — это просто еще один инструмент, который разработчики настольных приложений Windows могут использовать, когда это необходимо.
  16. ^ «Вопросы и ответы о WPF» . infoq.com. 03 апреля 2014 г. Проверено 21 апреля 2014 г. Windows Forms продолжает поддерживаться, но в режиме обслуживания. Они будут исправлять ошибки по мере их обнаружения, но новые функции не обсуждаются.
  17. ^ Аллен, Джонатан (6 мая 2014 г.). «Улучшения высокого разрешения для Windows Forms в .NET 4.5.2» . ИнфоQ . Проверено 10 февраля 2015 г.
  18. ^ «ВинФормс» . mono-project.com . Проверено 30 июля 2011 г. Поддержка Windows Forms 2.0 завершена. На данный момент мы по большей части просто исправляем ошибки и дорабатываем наш код.
  19. ^ «ВинФормс» . mono-project.com . Проверено 30 июля 2011 г. Работает ли Winforms на OSX? Да, начиная с Mono 1.9, Winforms имеет собственный драйвер OSX, который используется по умолчанию.
  20. ^ де Икаса, Мигель (07 марта 2011 г.). «КРИ 2011» . Проверено 30 июля 2011 г. Для инструментов, которые в основном основаны на OpenGL/DirectX, используйте Windows.Forms, помня, что с их стороны может потребоваться некоторое исправление ошибок или обходные пути, поскольку наш Windows.Forms активно не разрабатывается.
  21. ^ «Введение в Mono на macOS» . mono-project.com . Проверено 12 ноября 2019 г.
  22. ^ Мартин, Джесс. «Windows.Forms доступен в 64-битной Mac OS X» . Проверено 12 ноября 2019 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: d468389746c86cadfcdcefd402ed4edf__1714920660
URL1:https://arc.ask3.ru/arc/aa/d4/df/d468389746c86cadfcdcefd402ed4edf.html
Заголовок, (Title) документа по адресу, URL1:
Windows Forms - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)