FAQ по Silverlight «и иже с ними»

Здесь будут печататься советы на те вопросы которые вызовут интерес в процессе написания у такого Чайника как я.

Вопрос: Как динамически поменять цвет бекграунда в программе?

Ответ:

private void Canvas1_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)

{

Canvas c = sender as Canvas;

SolidColorBrush newColor = new SolidColorBrush(Color.FromArgb(255, 200, 77, 0));

c.Background = newColor;

}

Вопрос: Как обозначить цвет, зная атрибуты?

Ответ:

Color.FromArgb(255, 200, 77, 0); // где 255 прозрачность, 200 красный, 77 зеленый, 0 синий

Вопрос: Как получить доступ к свойствам контрола?

Ответ: Смотря что имеется ввиду.

а) можно работать как с фреймворк элементом с каждым контролом

private void LayoutRoot_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)

{

FrameworkElement fe = e.Source as FrameworkElement;

StringBuilder sb = new StringBuilder();

sb.Append(«source: » + fe.Name + «\n»);

sb.Append(«relative x/y to source: » + e.GetPosition(fe) + «\n»);

sb.Append(«Silverlight content area x/y : » + e.GetPosition(null));

statusText.Text = sb.ToString();

}

б) а можно работать с функциями SetValue и GetValue, но тогда в xaml’е надо присвоить имя контролу для доступа из программного кода

private void My_Button_Click(object sender, RoutedEventArgs e)

{

My_Button.Content = «Нажата!»;

My_Ellipse.SetValue(Canvas.TopProperty, 100);

My_Ellipse.SetValue(Canvas.LeftProperty, 100);

}

Комментариев пока нет

Ответить