Окна произвольной формы на C#

30 дек. 2009 г. | | |

Недавно наткнулась на свою программку, которая создает окно произвольной формы. Написана она была на C#, код довольно простой. Логически код можно разделить на две части - одна отрисовывает форму произвольной формы, заданной bmp-файлом, другая занимается отслеживанием перемещений формы. На самой форме нет ничего, FormBorderStyle установлен в None.
Принцип работы этого кода прост. Методу CreateFromBMP() в качестве аргументов передается bmp-русинок, в котором содержится желаемая форма для окна, и цвет, который надо из рисунка исключить, чтобы получить контур. Для примера использовался рисунок машинки, созданный в mspaint :)

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.BackgroundImage = global::Window.Properties.Resources.bg;
this.Region = CreateFromBMP(global::Window.Properties.Resources.bg, Color.FromArgb(255, 255, 255));
}

#region Create Form Border From BMP

Region CreateFromBMP(Bitmap bg, Color excludeColor)
{
GraphicsPath path = new GraphicsPath();

int width = bg.Width;
int height = bg.Height;

for (int x = 0; x < width; x++)
{
for (int y = 0; y < height; y++)
{
if (bg.GetPixel(x, y) != excludeColor)
{
path.AddRectangle(new Rectangle(x, y, 1, 1));
}
}
}

return (new Region(path));
}
#endregion

#region Moving form
private bool toMove = false;
private Point delta = new Point();

private void start_MouseMove(object sender, MouseEventArgs e)
{
if (toMove)
{
Point coords = this.PointToScreen(e.Location);

Point location = new Point(this.Location.X + (coords.X - delta.X), this.Location.Y + (coords.Y - delta.Y));

this.Location = location;

delta = coords;
}
}

private void start_MouseDown(object sender, MouseEventArgs e)
{
if ((e.Button == MouseButtons.Left) && (e.Clicks == 1))
{
toMove = true;
delta = this.PointToScreen(e.Location);
}
}

private void start_MouseUp(object sender, MouseEventArgs e)
{
toMove = false;
}
#endregion

private void Form1_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Escape) Application.Exit();
}
}

Результат работы кода:
Скачать проект можно отсюда.

Постеры пространств имён

27 дек. 2009 г. | | |

Постер пространства имен .NET 3.5 скачать pdf
Постер пространства имен .NET 4.0 скачать pdf
Постер LinQtoSQL скачать pdf

Microsoft Enterprise Library

| | |

Microsoft Enterprise Library – это набор блоков приложений многоразового использования, созданных как решения проблем, с которыми специалисты по разработке программного обеспечения обычно сталкиваются при создании корпоративных приложений. Для использования библиотеки необходим .NET 3.5. Живет проект по адресу http://www.codeplex.com/entlib. Скачать Microsoft Enterprise Library 4.1 можно отсюда http://www.microsoft.com/downloads/details.aspx?FamilyId=1643758B-2986-47F7-B529-3E41584B6CE5&displaylang=en либо по предыдущей ссылке.
В Enterprise Library входят следующие блоки:
- блок кэширования (Caching Application Block), который применяется для реализации локального кэша;
- блок криптографии (Cryptography Application Block), служащий для исполнения алгоритмов хеширования и симметрического шифрования;
- блок доступа к данным (Data Access Application Block). Он используется для реализации функциональности, связанной с доступом к базам данных;
- блок обработки исключений (Exception Handling Application Block). Применяется для реализации унифицированной обработки исключений на всех уровнях приложения;
- блок протоколирования (Logging Application Block). Служит для исполнения механизмов ведения протоколов;
- блок безопасности (Security Application Block). Реализует механизмы авторизации и безопасного кэширования.
Посмореть презентацию об Enterprise Library вы можете по ссылке http://pnp.in.ua/video/EntLib/default.html, а по этой ссылке http://pnp.in.ua/Slides/EntLib/default.html находятся слайды из это презентации.

Набор системных диалогов для .Net

| | |


Оказывается, существует такая полезная библиотека для .NET 3.5 SP1 Ookii.Dialogs, которая содержит разные системные диалоги (Task dialog, Progress dialog, Credential dialog, Input dialog, Vista-style common file dialogs и др.). В библиотеке представлены две версии диалогов - для WinForms и для WPF. Однако при использовании этой библиотеки нужно учитывать, что большинство диалогов появилось только начиная с Vista. Поэтому для ОС версией меньше Vista, нужно писать обертку для отображения системных диалогов.
Скачать библиотеку можно по ссылке http://www.ookii.org/download.ashx?id=Dialogs. В архиве есть исходный код библиотеки, а так же полная документация.

Горячие клавиши (Hotkeys) Windows 7

26 дек. 2009 г. | | |

Список хоткеев в Window 7. Естественно, часть хоткеев не будет для вас новой, потому как унаследована от Windows XP. Сразу оговорюсь, список не претендует на полноту.

Управление окнами

Win+Home: Свернуть/развернуть все окна, кроме активного. («Потрясти» окно)
Win+Space: Сделать все окна прозрачными. (Задержать курсор над небольшой кнопкой в правом нижнем углу экрана.)
Win+Up: Развернуть активное окно на весь экран. (Перетащить окно вверх до упора, или дважды кликнуть по верхней рамке)
Win+Down: Свернуть активное окно или восстановить размер, если оно развёрнуто на весь экран
Shift+Win+Up: Развернуть окно по высоте (Перетащить нижнюю границу окна до таскбара)
Win+Left/Right: Занять окном левую/правую половину монитора, или восстановить размер (Перетащить окно влево/вправо до упора)

Таскбар

Win+цифра: Запустить программу под этим номером или переключиться на неё
Shift+Win+цифра: Запустить новую копию программы под этим номером (кликнуть колёсиком по иконке)
Ctrl+Win+цифра: Переключиться на следующее окно программы под этим номером (кликнуть, зажав Ctrl)
Alt+Win+цифра: Открыть джамплист программы под этим номером
Win+Tab(+Shift): Переключаться между всеми открытыми окнами с превьюшками над таскбаром в прямом (обратном) порядке
Win+B: Фокус на трэй
Ctrl+Shift+Click: Запустить программу от имени Администратора
Shift+Right-Сlick: Показать меню окна / группы

Проводник и Десктоп

Win+E: Вызвать окно проводника
Win+D: Показать Рабочий стол
Win+F: Поиск
Ctrl + Win + F: Поиск компьютеров
Ctrl+Shift+N: Создать новую папку
Alt+Up: Подняться на уровень выше по папкам
Backspace: Вернуться на предыдущий уровень по папкам
Alt+P: Включить панель просмотра файлов
Shift+Right-Click (по файлу): Добавляет в контекстное меню пункт «Скопировать путь» и много дополнительных пунктов в подменю «Отправить»
Shift+Right-Click (по папке): Добавляет в контекстное меню пункт, позволяющий открыть командную строку из этой папки
Ctrl + Scroll: уменьшение/увеличение размеров иконок
Ctrl+C: Копировать объект (папку, файл, фрагмент текста....)
Ctrl+Х: Вырезать объект (папку, файл, фрагмент текста....)
Ctrl+V: Вставить объект (папку, файл....)

Разное

Win+P: Открыть меню настройки режима презентации (второй монитор — проектор)
Win+(+/-): увеличить / уменьшить изображение (вызывает экранную лупу)
Win+G: Переключаться между запущенными гаджетами
Ctrl+Shift+Esc: диспетчер задач
Win+Pause: Панель управления\Все элементы панели управления\Система (Свойства системы)
Win, "Первые буквы названия программы", Enter: поиск программы по первым буквам ее названия, запуск. Раньше для этого надо было устанавливать сторонний софт типа Launchy, а теперь все влючено!
Win+R: Диалог "Выполнить"

Библиотека

22 дек. 2009 г. | | |

С. Макконнелл. Совершенный код (скачать)
Более 10 лет первое издание этой книги считалось одним из лучших практических руководств по программированию. Сейчас эта книга полностью обновлена с учетом современных тенденций и технологий и дополнена сотнями новых примеров, иллюстрирующих искусство и науку программирования. Опираясь на академические исследования, с одной стороны, и практический опыт коммерческих разработок ПО - с другой, автор синтезировал из самых эффективных методик и наиболее эффективных принципов ясное прагматичное руководство. Каков бы ни был ваш профессиональный уровень, с какими бы средствами разработками вы ни работали, какова бы ни была сложность вашего проекта, в этой книге вы найдете нужную информацию, она заставит вас размышлять и поможет создать совершенный код.





Майкл Ховард, Дэвид Леблан. Защищенный код. (скачать)
В этой книге разработчики найдут советы и рекомендации по защите создаваемых приложений на всех этапах процесса создания ПО — от проектирования безопасных приложений до написания надежного кода, способного устоять перед атакам хакеров. Здесь рассказывается о моделировании угроз, планировании процесса разработки защищенных приложений, проблемах локализации и связанных с ней опасностях, недостатках файловых систем, поддержке секретности в приложениях и анализе исходного кода на предмет безопасности. Авторы иллюстрируют свой рассказ примерами программ на самых разных языках — от C# до Perl. Издание обогащено знанием, полученным авторами в процессе реализации Windows Security Push — инициативы по укреплению защиты продуктов Microsoft. Интересно, что эту книгу Билл Гейтс объявил 'обязательным чтением в Microsoft'.