问题标签 [opacitymask]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
9430 浏览

c# - C#, WPF - VisualBrush 和 OpacityMask

我需要创建一个 UserControl,它有一部分控件的背景是透明的。透明部分被切割成 CornerRadius 为 2 的边框形状——这是设计所必需的。

这是我的代码不起作用:

我做了一些更改,所以你们应该能够将它直接放入 XamlPad。

出于某种原因,设置为边框的 OpacityMask 的 VisualBrush 根本无法正常工作。OpacityMask 只是显示完全可见的所有内容。为了进行测试,我将一个快速的 LinearGradientBrush 放入其中,它按预期工作。

一起使用 VisualBrush 和 OpacityMask 有问题吗?这里出了什么问题?

这是我想要实现的截图:

截图 http://monitor.utopiaselfscan.com/Screen.png

UserControl 是表示实体编号、进度、小时数等的标题。它们是黑色的,透明度为 30%,并且有一个圆角矩形不透明蒙版切口。我通常使用图像来渲染这样的东西,b/c 我们的图形艺术家可能会因为玻璃效果而疯狂。

0 投票
2 回答
2891 浏览

wpf - 在wpf中将背景变为灰度

考虑一个带有大量多色控件的窗口。当表单中发生某些触发时,我想在其上放置一个面板,这样所有控件都会失去其颜色(所有控件都以灰度显示),除了刚刚弹出的面板。有人可以帮我吗?

0 投票
6 回答
24093 浏览

javascript - 使用 Javascript “禁用” HTML 表格

我最近在很多网站上都看到过这种做法,但似乎无法找到。本质上,我想在单击按钮时“禁用”整个面板(即 HTML 表格中的表单)。

通过禁用我的意思是我不希望表格中的表单元素可用并且我希望表格淡出。

我已经能够通过在桌子上放置一个“面纱”来实现这一点,它有一个绝对定位的 div,该 div 具有白色背景和低不透明度(所以你可以看到它后面的表格,但不能点击任何东西,因为 div在它前面)。这也增加了我想要的褪色效果。但是,当我将面纱的高度设置为 100% 时,它只会达到我的屏幕大小(不包括滚动),所以如果用户向上或向下滚动,他们会看到面纱的边缘,这并不漂亮。

我假设这通常以不同的方式完成。有没有人有一些建议作为更好的方法来实现这一点?

0 投票
0 回答
723 浏览

silverlight - 来自 LinearGradientBrush 的 OpacityMask 与 Silverlight 3 中的绝对 GradientStops

我的问题与类似。

但是,该线程中的答案对我不起作用,因为我使用 LinearGradientBrush 作为不透明蒙版。

我有一个三行网格:

网格的内容在网格的顶部和底部(第一行和第三行)应该是半透明的。

我知道我不能使用剪辑,因为这不允许调整不透明度。所以我想我必须使用不透明蒙版。他们将图像或画笔作为内容,后者对于这个问题更有意义,但提出了如何将 GradientBrush 的偏移设置为网格高度的绝对值的问题。

另外,我正在使用 MVVM 模式。绑定偏移量不起作用,因为它不是从 FrameworkElement 派生的。我现在能看到的唯一解决方案是将完整的画笔绑定到我的视图模型,并在每次网格大小发生变化时对其进行调整。不太好,有没有更优雅的解决方案?

我想做的是这样的(RowDefinitions 和内容被跳过)

伪代码

我不能拆分网格或类似的东西,因为内容跨越三行。我猜 DrawingBrush 会很好地解决它,但这不是住在 SL 房子里。

我正在使用 Silverlight 3。

0 投票
1 回答
1047 浏览

wpf - OpacityMask 不适用于 WPF WindowsFormsHost?

我试图在通过 WindowsFormHost 对象托管的控件上放置一个圆形边框。似乎无论我为 OpacityMask 设置什么,它对渲染都没有影响。有什么我错过的吗?

这是我正在使用的 XAML 代码。子控件是在运行时添加的。我尝试了各种面具组合,但没有一种对我有用。任何帮助,将不胜感激。谢谢!

0 投票
1 回答
4179 浏览

c# - 带有 SnippingTool 效果的 C# WPF 抓取屏幕截图

我正在尝试在我的 WPF 应用程序中集成屏幕截图抓取功能,我希望它看起来像截图工具。

到目前为止,我已经通过创建一个不透明度设置为 0.5 和深色背景的全屏窗口(带有画布)来完成类似的操作。当我单击某处并开始拖动时,会绘制一个白色矩形,产生类似于的效果。

我想要的是那个矩形的内部在背景画布上打开一个不透明的洞,这样我就可以看到选定的区域——就像截图工具一样。

问题是,对 .NET 来说还很新,我不知道如何或从哪里开始。对屏幕截图窗口的 OpacityMask 字段进行了一些研究和测试,但一无所获。

这里有一个小视频来展示当前的效果。

编辑另外,作为奖励问题,是否有一种简单的方法来获取跨越多个显示器(虚拟屏幕)的屏幕截图?Graphics.CopyFromScreen()似乎只适用于 1 个屏幕。
已经解决了这个问题,并且似乎适用于所有可能的奇怪虚拟桌面布局:

0 投票
1 回答
8216 浏览

wpf - WPF GroupBox 标题自定义

我已经编辑了标准 GroupBox 模板,因为我想对其进行自定义。除了其他自定义之外,我希望 GroupBox 标题在中心而不是左或右水平对齐。Header 的对齐不是问题,但真正的问题是为 Border 控件定义的 OpacityMask。不透明度蒙版设置不绘制边框的组框标题后面的透明空间。当我将标题设置为中心时,我无法弄清楚如何在组框标题后面放置透明空间/间隙。

这是我的 XAML 的样子:(请导航到以“Border.OpacityMask”开头的部分,该部分设置标题周围边框的透明间隙)

非常感谢您提前提供的帮助。

-Wajahat

0 投票
3 回答
1096 浏览

xaml - 向全景背景添加透明过滤器,如市场

我正在尝试在我的全景背景中添加一个透明图层以使背景图像变暗,以便无论图像中的颜色如何都可以显示内容。就像在 WP7 Market Place 或手机上的图片中心一样。

我玩过不透明蒙版。在paint.net 中创建了一个透明图像用作不透明蒙版。

并在我的全景图中使用它,例如:

但是,这会使整个页面变暗,包括显示的任何内容,就好像透明图像在所有内容之上一样。我在这里缺少一个技巧吗?也许将不透明度添加到网格?

0 投票
1 回答
2689 浏览

wpf - 反转不透明度蒙版

考虑以下 Xaml

它看起来像这样,因为 OpacityMask 唯一的不透明部分是 TextBlock 的前景。
替代文字

现在,如果我像这样在 TextBlock 中切换前景和背景的颜色

我得到这个是因为即使前景是透明的,它背后的背景也不是,导致无用的 OpacityMask :)
替代文字

反正我能得到这个吗?基本上是一个倒置的 OpacityMask
替代文字

我在这里错过了其他方法吗?

更新
澄清一下,即使我的示例是关于 TextBlock 的,它也可以是任何东西。椭圆/图像/路径等。我追求的功能是“反转 OpacityMask”

0 投票
2 回答
2368 浏览

wpf - 如何在 wpf 中创建不缩放的不透明蒙版?

好的,我创建了一个具有透明度的 PNG-24。它基本上是一个灰度图像,它使用黑色和透明之间的“颜色”而不是黑色和白色。我这样做是为了可以将其用作彩色矩形的不透明度蒙版,从而仅使用单个图形以我想要的任何颜色渲染图像。

但是,对于我的生活,我无法让 WPF 停止对 da*n 图像进行抗锯齿!!

我已经在应用画笔的矩形上​​设置了“SnapesToDevicePixels”...我已经将 ImageBrush 的 Scale 设置为“None”...我已经将其 ViewPort 和 ViewBox 设置为绝对单位并将它们的大小精确到源图像。但无论我怎么尝试,WPF 仍然坚持试图让事情变得顺畅!这非常令人沮丧!

所以......有人知道如何使用图像作为不透明蒙版,但不会丢失我们所做的像素精确绘图吗?我只是想让 WPF 在我们绘制它时渲染该死的东西,期间!