Как я могу создать кнопку со встроенной кнопкой закрытия - PullRequest
1 голос
/ 26 мая 2009

Я пытаюсь создать панель с набором «кнопок».

Эти кнопки должны иметь следующее поведение:

  1. Похоже на тег (с закругленные края)
  2. Содержит красный крестик, чтобы удалить фильтр / тег из панель, похожая на интернет вкладки проводника имеют встроенный крестик для закрытия отдельной вкладки.
  3. позволяет пользователю нажимать на теге и отвечай как нормальный кнопка (пока щелчок не в красном кресте)

Номер 1 не проблема, это всего лишь внешний вид, однако, что касается чисел 2 и 3, я не уверен, существует ли уже какой-либо код, делающий что-то подобное ... и я действительно не хочу изобретать велосипед, если Я могу избежать этого!

У меня вопрос: кто-нибудь знает, есть ли что-то в инфраструктуре, что будет делать это просто, или мне нужно будет написать это самому, используя подклассы кнопок winform?

Заранее спасибо!

Ответы [ 3 ]

1 голос
/ 27 мая 2009

Это новая разработка или сопровождение существующего проекта?

Если это техническое обслуживание, у вас впереди несколько тяжелее время. Вы реализуете UserControl, вероятно, разделенный на две кнопки. Используйте стыковку, чтобы получить максимально правильное поведение. Крайняя правая кнопка будет содержать ваше перекрестное изображение; левый (который нужно будет автоматически расширять при изменении размера элемента управления) будет содержать поведение вашей основной кнопки. Играйте с визуальными стилями, пока вы не получите их правильно (например, удаление границ и т. Д.).

Если это новая разработка, и вы не слишком углубились в нее, вы можете рассмотреть с использованием Windows Presentation Framework (WPF) вместо WinForms. Будет проще построить элемент управления и заставить его выглядеть именно так, как вы этого хотите. WPF включает в себя чрезвычайно мощную систему компоновки элементов управления, которая позволяет накладывать несколько элементов управления друг на друга и заставлять их работать точно так, как вы ожидаете, и обладает дополнительным преимуществом полного визуального контроля.

В любом случае, это больше работы, чем добавление внешнего компонента ... Я использовал Infragistics в течение многих лет, и я не могу придумать, что у них есть, что сопоставимо. Самый близкий, но только , если вы создаете приложение MDI и эти элементы управления предназначены для навигации по окнам, это инструменты управления окнами с вкладками MDI - и там только вкладки (которые заменяют заголовки окон) имеют это поведение.

0 голосов
/ 01 июня 2009

вам, вероятно, придется контролировать костюм для этого типа работы.

0 голосов
/ 27 мая 2009

Я не думаю, что инфраструктура может сделать что-то подобное. Элемент управления UltraButton не может. Реализация собственного контроля не будет такой сложной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...