.NET - Есть ли какие-либо элементы управления перевернутыми часами? - PullRequest
5 голосов
/ 19 мая 2010

Для приложений .NET (Winforms) есть ли какие-либо элементы управления перевернутыми часами?

В идеале это будет выглядеть примерно так, как на BlackBerry Bold:

альтернативный текст http://images.crackberry.com/files/u3/reviewimages/blackberry9000c/lgclock3.jpg

ОБНОВЛЕНИЕ 1:

Следуя этой ссылке SO , я добавил в свой проект элемент host для размещения ретро-часов WPF, о которых упоминал @ Shane .

ОБНОВЛЕНИЕ 2:

Несколько шагов, которые я выполнил:

  • Компиляция RetroClock
  • Добавление ссылки на DLL в приложение WinForm
  • Добавить 'используя WPFControls.Clocks;'
  • Добавить elementHost в форму
  • В событие загрузки формы добавьте:

    //create retroclock

    RetroClock rc = new RetroClock();

    //add retroclock to element host

    elementHost1.Child = rc;

ОБНОВЛЕНИЕ 3:

Укладка часов

//style clock
rc.Height = 30;
rc.IncludeLeadingZero = true;
rc.IsAmPmVisible = true;
rc.FontSize = 60;
rc.HorizontalAlignment = System.Windows.HorizontalAlignment.Center;
rc.TimeFormat = TimeFormats.Hour12;

Ответы [ 3 ]

4 голосов
/ 19 мая 2010

Если ответить на вопрос Джоэла, здесь есть простой ответ для WPF здесь .

4 голосов
/ 19 мая 2010

Это было бы немного неуместно для winforms, основной целью которого является предоставление общих элементов управления .Net, чтобы помочь разработчикам создавать приложения Windows, которые используют «стандартный» внешний вид. Это не значит, что вы не найдете его, но вы должны подумать о третьей стороне в первую очередь здесь. Все, что предоставлено Microsoft, будет в лучшем случае запоздалой мыслью.

WPF, с другой стороны, гораздо лучше подходит для такого рода вещей.

3 голосов
/ 19 мая 2010

Это довольно легко сделать самостоятельно. Добавьте класс, выведите его из Control. Вам понадобится таймер, который его поддерживает, и вызов метода Tick Invalidate (). Переопределите OnPaint (), чтобы нарисовать цифры и индикатор am / pm. Вам понадобится перегрузка TextRenderer.DrawText (), которая рисует внутри прямоугольника, чтобы центрировать цифры. Нарисуйте черную линию через центр.

Должно быть весело.

...