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

发布于 2024-12-07 04:19:18 字数 337 浏览 1 评论 0原文

在 XAML 文件中生成在视口上透明的边框(用于轨迹球事件)很简单:

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

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

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

这当然行不通。

It's trivial to generate a border (to use for Trackball events) transparent over the viewport in the XAML file:

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

But how do I do it in the .cs?

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

This does not work of course.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

月下客 2024-12-14 04:19:18

这是因为您不能仅将颜色投射为画笔。请改用透明画笔

border.Background = Brushes.Transparent;

This is because you can't just cast a Color to be a Brush. use the Transparent brush instead

border.Background = Brushes.Transparent;
撩动你心 2024-12-14 04:19:18

使用 SolidColorBrush

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

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

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

Use a SolidColorBrush:

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

The VisualBrush has a different purpose. See an overview of the main types of WPF brushes here:

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

七分※倦醒 2024-12-14 04:19:18

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

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

,但您也可以通过更改 alpha 来创建半透明颜色(这看起来像 50% 透明的红色:

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

You can also create a SolidColorBrush with transparent color:
This will create a fully transparent color

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

but you can also make semitransparent color by changing alpha (this will look like 50% transparent red:

border.Background = new SolidColorBrush(Color.FromArgb(128, 255, 0, 0));
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文