Nano Hash - криптовалюты, майнинг, программирование

Как сделать эллиптическую форму в оконном приложении С# (.Net)?

Кто-то спросил меня: «Как сделать форму входа в систему, которая должна иметь эллиптическую форму в приложении Windows, используя C # (.Net)». Я ответил ему, чтобы он сделал фон формы прозрачным и поставил изображение эллипса в качестве фонового изображения формы. Однако человек не был удовлетворен. Я думаю, что он ожидал более логичного ответа.

01.04.2014

  • Не по теме (+1 к ссылке Дэвида), но это кажется устаревшим стилем, и, возможно, стоит поговорить с ними о модернизации. 01.04.2014
  • Наиболее логичным ответом будет: О, конечно, вы можете сделать это в несколько раз медленнее, заставив пользовательские области из вызовов winapi вместо аккуратного прямоугольника, который очень прост для вычислений. Здесь возьмите запаздывающую форму, может быть, вы хотите, чтобы она была написана на языке сценариев, эмулированном в Java, для выполнения завершающего движения на процессоре? 01.04.2014
  • more logical answer: Используйте WPF. winforms — действительно старая технология, которая больше никого не волнует и ничего не поддерживает. even more logical answer: Microsoft уменьшила (почти устранила) количество прозрачных и неквадратных областей в Windows 8 из соображений производительности. Вы должны подумать, действительно ли вы хотите снизить производительность с помощью этой техники. 01.04.2014
  • @HighCore: мне любопытно, есть ли у вас данные о том, сколько приложений было и пишется в WF и WPF? 01.04.2014
  • @TaW, зачем мне это? у вас есть цифры, сколько приложений было написано на COBOL? это не делает COBOL менее бесполезным и устаревшим в современном мире в 2014 году. Пожалуйста... 01.04.2014
  • @HighCore, мне все равно, что тебя волнует и что ты знаешь. Мне было любопытно, и я думал, что у вас есть факты, а не только мнения. Что касается COBOL, вы были бы поражены .. (Также потрясены ;-) 01.04.2014
  • @TaW Факт: winforms ничего не поддерживает, для чего-либо требуется невероятное количество кода, и он не допускает никаких настроек, не прибегая к куче ужасных хаков. WPF — это современная среда пользовательского интерфейса, поддерживающая расширенную привязку данных и обладающая широкими возможностями настройки, со встроенным аппаратным ускорением, векторной графикой и поддержкой разнообразных интерактивных функций, таких как анимация и переходы. Это обеспечивает огромный уровень разделения между пользовательским интерфейсом и логикой и данными приложения, что обеспечивает большую масштабируемость, удобство обслуживания и даже переносимость. 01.04.2014
  • @TaW Факт № 2: Microsoft работает над следующей версией WPF и они называют его первой платформой разработки приложений для настольных приложений Windows, в то время как winforms не получила соответствующего улучшения за 6 с лишним лет. 01.04.2014
  • @HighCore: Успокойся, чувак. Может быть, Winforms стабильна и зрела? И поскольку вы можете показать идеально эллиптическое окно входа в систему в три строки, это не так уж и плохо. Просто шучу ;-) 01.04.2014
  • @TaW Факт № 3: XAML + MVVM можно повторно использовать в различных технологиях на основе XAML (Silverlight, хотя он и мертв, приложения Windows Phone и WinRT Store). Ужасные взломы winforms совершенно бесполезны за пределами мира winforms. 01.04.2014
  • @TaW Maybe Winforms is stable and mature - COBOL также стабилен и зрел... 02.04.2014
  • @HighCore: COBOL также стабильный и зрелый ... Действительно. И это, вероятно, перемещает каждую денежную транзакцию, которую когда-либо видели ваши деньги. 02.04.2014
  • @TaW, что не делает его менее бесполезным в нынешнем мире 2014 года. Вы бы выбрали COBOL в качестве технологии для запуска нового приложения Windows? Ваш аргумент бессмыслен, и мы не должны спорить здесь, в SO, создайте чат, если хотите продолжить обсуждение. 02.04.2014
  • @хайкор. Мы не должны спорить здесь, в SO. Согласованный. На самом деле мы просто не должны вообще спорить. До свидания. 02.04.2014

Ответы:


1

Да, это будет выглядеть ужасно..

        InitializeComponent();

        using (GraphicsPath GP = new GraphicsPath() )
        {
        GP.AddEllipse(this.ClientRectangle);
        this.Region = new Region(GP);
        }

Вы не должны. Серьезно.

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

01.04.2014
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..