首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在WPF中突出显示/勾勒出可视对象?

如何在WPF中突出显示/勾勒出可视对象?
EN

Stack Overflow用户
提问于 2008-10-09 19:35:08
回答 3查看 4K关注 0票数 5

如果我有一个包含n个任意形状或大小的可视对象的画布,我如何以编程方式突出显示或勾勒出一个可视对象?

有没有内置到WPF中的东西来帮助我?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2008-10-09 20:26:55

在阅读了另一个答案中的注释之后--您在其中声明希望轮廓与视觉形状一致--我只能建议您看一下BitmapEffects。有一个用于外部发光效果。

复制可视化本身可能效率较低,并且可能会由于这些项目的其他方面(如任何绑定)而产生大量的复杂性。

编辑:.NET 4.0中的BitmapEffects属性和BitmapEffect类已过时。你会抛出一个异常。相反,您现在拥有了System.Windows.Media.Effects.Effect类及其派生类,以及Visual.VisualEffect等属性。

票数 5
EN

Stack Overflow用户

发布于 2008-10-09 20:36:56

关于使用BitmapEffects,Joel有一个很好的建议。

但是,如果您可以使用GPU3.5GPU,我会引导您使用 .NET rendered 。因此,您可以使用UIElement.Effect而不是UIElement.BitmapEffect。GPU3.5 SP1内置了两个.NET特效: BlurEffect和DropShadowEffect。你也可以创建你自己的GPU效果...这就是你要用到ShaderEffect的地方。

有关更多信息,请查看Greg Schechter的博客文章series

这是我几天前刚刚实现的鼠标悬停效果的一段代码(由于ShadowDepth为0,它实际上显示了一种类似于外部发光位图的效果,但并不完全是这样):

代码语言:javascript
复制
<Path
    x:Name="mouseOverEffect"
    Width="80"
    Height="43.916"
    Stretch="None"
    Fill="#FFFFFFFF"
    Opacity="0"
>
    <Path.Data>
        <PathGeometry FillRule="Nonzero">
            <PathFigure IsClosed="True" StartPoint="39.9592899612151,25.9913931634531">
                <LineSegment Point="80.0000001464848,43.9159987905149"/>
                <LineSegment Point="39.9513899394755,4.97379893856246E-14"/>
                <LineSegment Point="1.77635636294422E-15,43.9159987905149"/>
                <LineSegment Point="39.9592899612151,25.9913931634531"/>
            </PathFigure>
        </PathGeometry>
    </Path.Data>
    <Path.Effect>
        <DropShadowEffect
            Color="#FFFFFFFF"
            BlurRadius="10"
            ShadowDepth="0"
        />
    </Path.Effect>
</Path> 
票数 5
EN

Stack Overflow用户

发布于 2008-10-09 19:54:49

如果您将这些可视对象包装在边框中...默认情况下将不透明度设为0 ...然后,您可以在需要时以编程方式将不透明度设置为1。

这有帮助吗?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/188844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档