Прозрачная граница в WPF программно

#c# #wpf #xaml #wpf-controls

#c# #wpf #xaml #wpf-элементы управления

Вопрос:

Тривиально создать границу (для использования для событий трекбола), прозрачную для области просмотра в файле XAML:

 <Border Name="myElement" Background="Transparent" />
  

Но как мне это сделать в .cs?

 Border border = new Border();
**border.Background = (VisualBrush)Colors.Transparent;**
grid.Children.Add(viewport);
grid.Children.Add(border);
  

Конечно, это не работает.

Ответ №1:

Это потому, что вы не можете просто использовать цвет в качестве кисти. вместо этого используйте прозрачную кисть

 border.Background = Brushes.Transparent;
  

Ответ №2:

Используйте SolidColorBrush :

 border.Background = new SolidColorBrush(Colors.Transparent);
  

VisualBrush Имеет другую цель. Смотрите Обзор основных типов кистей WPF здесь:

http://msdn.microsoft.com/en-us/library/aa970904.aspx

Ответ №3:

Вы также можете создать SolidColorBrush с прозрачным цветом: это создаст полностью прозрачный цвет

 border.Background = new SolidColorBrush(Color.FromArgb(0, 0, 0, 0));
  

но вы также можете сделать полупрозрачный цвет, изменив альфа (это будет выглядеть как 50% прозрачный красный:

 border.Background = new SolidColorBrush(Color.FromArgb(128, 255, 0, 0));