Создание прозрачных окон с .NET Framework 3.0 June CTP

Автор: Topol Воскресенье, Май 6th, 2012 Нет комментариев

Рубрика: Операционные системы

Выпущенный недавно June CTP .NET  Framework 3.0 включает в себя долгожданную возможность под названием AllowsTransparency, которая позволяет создавать полу-прозрачные закругленные окна, которых все так долго ждали…

Я написал небольшой пример, иллюстрирующий некоторых с этих новых возможностей. Основная часть примера в XAML:

Код:
<Window x:Class=»WindowTransparency.Window1″
xmlns=»http://schemas.microsoft.com/winfx/2006/xaml/presentation»
xmlns:x=»http://schemas.microsoft.com/winfx/2006/xaml»
Title=»WindowTransparency» Height=»300″ Width=»300″
AllowsTransparency=»True» WindowStyle=»None»
Background=»Transparent»
>
<Border CornerRadius=»50″ Background=»Blue» Opacity=».7″>
<Button Click=»CloseWindow» Height=»30″ Width=»100″>Close Me
</Button>
</Border>
</Window>

Есть несколько вещей, которые стоит отметить в этом XAML. Во-первых, я позволил Window.AllowsTransparency, выставив значение «истина». Конечно, это означает лишь то, что окно может быть прозрачным. Но чтобы действительно добиться прозрачности, я поставил Window.Background на Transparency. Теперь, когда у меня есть прозрачное окно, я могу заняться содержанием. В этом примере я сделал скругленные края, чтобы заодно продемонстрировать и эту новую возможность.

Отметьте также, что Window.WindowStyle выставлено на нет. На данный момент окна с AllowsTransparency=true несовместимы с любым типом WindowStyle и ожидается, что это не станет проблемой (ведь если вы используете прозрачное окно, вряд ли вам понадобится стандартный стиль Win32). Проще простого добавить содержимое — на нашем примере я добавил кнопку закрытия окна через код Window.Close()). Также просто можно сделать окно перемещаемым. Следующий код способствует этому:

Код:
public Window1()
{
InitializeComponent();
MouseLeftButtonDown += new MouseButtonEventHandler
(Window1_MouseLeftButtonDown);
}

void Window1_MouseLeftButtonDown(object sender,
MouseButtonEventArgs e)
{
DragMove();
}

Источник: thevista.ru

Оставить комментарий

Чтобы оставлять комментарии Вы должны быть авторизованы.

Похожие посты