#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 здесь:
Ответ №3:
Вы также можете создать SolidColorBrush с прозрачным цветом: это создаст полностью прозрачный цвет
border.Background = new SolidColorBrush(Color.FromArgb(0, 0, 0, 0));
но вы также можете сделать полупрозрачный цвет, изменив альфа (это будет выглядеть как 50% прозрачный красный:
border.Background = new SolidColorBrush(Color.FromArgb(128, 255, 0, 0));