在XAML文件中为视口生成透明边框(用于Trackball事件)是微不足道的:
<Border Name="myElement" Background="Transparent" />
但是如何在.cs中完成?
Border border = new Border();
**border.Background = (VisualBrush)Colors.Transparent;**
grid.Children.Add(viewport);
grid.Children.Add(border);
当然这不起作用。
答案 0 :(得分:18)
这是因为你不能只将一个颜色转换为画笔。请改用Transparent画笔
border.Background = Brushes.Transparent;
答案 1 :(得分:4)
使用SolidColorBrush
:
border.Background = new SolidColorBrush(Colors.Transparent);
VisualBrush
有不同的目的。请参阅此处的WPF画笔主要类型概述:
答案 2 :(得分:3)
您还可以使用透明色创建SolidColorBrush: 这将创建一个完全透明的颜色
border.Background = new SolidColorBrush(Color.FromArgb(0, 0, 0, 0));
但你也可以通过改变alpha来制作半透明颜色(这看起来像50%透明的红色:
border.Background = new SolidColorBrush(Color.FromArgb(128, 255, 0, 0));