Прозрачная граница в WPF программно - PullRequest
6 голосов
/ 28 сентября 2011

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

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

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

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

Это, конечно, не работает.

Ответы [ 3 ]

18 голосов
/ 28 сентября 2011

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

border.Background = Brushes.Transparent;
4 голосов
/ 28 сентября 2011

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

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

VisualBrush имеет другое назначение.Смотрите обзор основных типов щеток WPF здесь:

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

3 голосов
/ 28 сентября 2011

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

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

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

border.Background = new SolidColorBrush(Color.FromArgb(128, 255, 0, 0));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...