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

时间:2011-09-28 15:23:03

标签: c# wpf xaml wpf-controls

在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);

当然这不起作用。

3 个答案:

答案 0 :(得分:18)

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

border.Background = Brushes.Transparent;

答案 1 :(得分:4)

使用SolidColorBrush

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

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

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

答案 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));