WPF中的透明边框以编程方式

生成在XAML文件中的视口上透明的边框(用于Trackball事件)是微不足道的:

 

但是我如何在.cs中做到这一点?

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

这当然不起作用。

这是因为你不能只将一个颜色转换为画笔。 请改用透明画笔

 border.Background = Brushes.Transparent; 

使用SolidColorBrush

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

VisualBrush有不同的用途。 请参阅此处的WPF画笔主要类型概述:

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

您还可以使用透明颜色创建SolidColorBrush:这将创建完全透明的颜色

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

但你也可以通过改变alpha来制作半透明颜色(这看起来像50%透明的红色:

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