【问题标题】:Is it possible to set a border to overlay (like in photoshop)是否可以将边框设置为叠加(如在 Photoshop 中)
【发布时间】:2013-10-07 09:51:41
【问题描述】:

我有一个非常奇特的问题: 我目前正在开发一个“无边界”的 WPF 应用程序。我成功删除了标准的 windows 窗口控件并添加了我自己的。现在我想为程序添加一个边框。但是我不希望边框具有特定的颜色,我希望它处于某种叠加模式,例如当您在 Photoshop 中将图层设置为叠加时。您可以在示例中看到我的意思:

我真的希望它看起来像左边。但不幸的是,我真的不知道怎么做。 基本上,叠加层的作用是它采用背景颜色并使其更暗。 你有什么建议吗?

编辑:这是效果更好的图片

Photoshop Mookup2 http://img.xrmb2.net/images/243147.png

Edit2:所以,作为一个简短的解释,因为它可能不像我希望的那样清楚:我不是在谈论半透明。我知道该怎么做。两个图像中的右侧框都使用了它。它具有黑色半透明外观。在左侧,我将边框设置为“叠加”模式。如您所见,它变得更暗,但颜色也更强烈。

【问题讨论】:

  • 分层是网格的目的。创建一个边框图层并将填充设置为低不透明度。除非我遗漏了什么,否则应该直截了当。

标签: c# wpf border overlay


【解决方案1】:

使用Transparent画笔怎么样?:

<Border BorderBrush="Transparent" BorderThickness="5">
    ...
</Border>

更新>>>

哦,等一下……我明白你想要什么了……试试这个,而不是用半透明的`刷子:

<Border BorderBrush="3F000000" BorderThickness="5">
    ...
</Border>

您可以通过更改前两个十六进制字符来调整Border 的暗度:3F

更新>>>

我相信这正确的解决方案。正如我最后所说:

您可以通过更改前两个十六进制字符来调整Border 的暗度

因此,只需尝试不同的值,直到获得适当的不透明度平衡。从几乎看不到的黑色开始,然后增加不透明度,直到正确为止:

<Border BorderBrush="08000000" BorderThickness="5">
    ...
</Border>
...
<Border BorderBrush="0F000000" BorderThickness="5">
    ...
</Border>
...
<Border BorderBrush="1F000000" BorderThickness="5">
    ...
</Border>
...
<Border BorderBrush="2F000000" BorderThickness="5">
    ...
</Border>

如果这些值都没有看起来完全正确,那么请改用半透明的白色:

<Border BorderBrush="2FFFFFFF" BorderThickness="5">
    ...
</Border>

【讨论】:

  • 到目前为止,谢谢你,但这并不能解决问题。我的意思是我可能不够精确。但是如果你看一下我发布的图片,你会发现背景的颜色通过叠加效果得到了强调。这是另一张图片,显示了覆盖和简单的半透明边框之间的区别。在右侧,您会看到如果使用半透明边框会发生什么,而在左侧,您会看到叠加效果。 Click me
猜你喜欢
  • 1970-01-01
  • 2017-05-23
  • 1970-01-01
  • 2016-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-28
  • 2012-08-30
相关资源
最近更新 更多