Немного о Silverlight

silverlight


Вот решил сегодня узнать побольше об этом интересной платформе.
Многое обещает майкрософт для разработчиков - вычисления в облаке особенно впечатляют.
И вот в результате появилось на свет моё первое Silverlight приложение!

Идея проста - жмём по кнопке и кнопка убегает от курсора мыши.

Основные загвоздки были при попытках получить положение кнопки. Оно не очень очевидно расположилось в Canvas.GetLeft и Canvas.GetRight, и немного погуглить пришлось чтобы сделать анимацию движения кнопки при нажатии.

Реализация XAML:


<UserControl x:Class="SilverlightApplication1.Page"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="400" Height="300">
<Canvas Background="White" Name="canvas">
<Button Name="btn" Content="hello,silverlight"
Canvas.Left="100" Canvas.Top="100" Width="100" Height="100" Click="Button_Click"/>
</Canvas>
</UserControl>


Код:


private void Button_Click(object sender, RoutedEventArgs e)
{
Random rnd=new Random();

Duration d = new Duration(TimeSpan.FromMilliseconds(250));
DoubleAnimation da = new DoubleAnimation();
DoubleAnimation da2 = new DoubleAnimation();
Storyboard sb = new Storyboard();
da.Duration = d;
sb.Duration = d;
da2.Duration = d;

Storyboard.SetTarget(da, btn);
Storyboard.SetTarget(da2, btn);
Storyboard.SetTargetProperty(da, new PropertyPath("(Canvas.Left)"));
Storyboard.SetTargetProperty(da2, new PropertyPath("(Canvas.Top)"));
da.To = rnd.Next((int)canvas.ActualWidth);
da2.To = rnd.Next((int)canvas.ActualHeight);
sb.Children.Add(da);
sb.Children.Add(da2);
sb.Begin();
}


ЗЫ: Форматирование кода сделано с помощью http://www.manoli.net/csharpformat/format.aspx

Комментарии

Популярные сообщения из этого блога

Структуры данных ( АВЛ-дерево , обход графа и построение минимального остовного дерева графа)

2D Физика для игр - Separate Axis Theorem

Взлом алгоритма Эль-Гамаль( с помощью алгоритма Шенкса)