InkPresenter 仅在透明区域绘制
Posted
技术标签:
【中文标题】InkPresenter 仅在透明区域绘制【英文标题】:InkPresenter draw only in transparent area 【发布时间】:2014-10-24 05:54:33 【问题描述】:我有一个 InkPresenter 和这个带有透明背景的图像。我希望我的笔触只在透明区域绘制,而忽略形状的黑色边框。这怎么可能?
【问题讨论】:
剪辑也许可以帮助你。你能分享一些示例代码吗? 【参考方案1】:这里是一个使用 WPF 的例子,同样适用于 InkPresenter,你可以使用InkPresenter.Clip
属性来定义剪辑区域
<Border BorderBrush="Green"
BorderThickness="1"
Width="200"
Height="200">
<Grid>
<InkCanvas>
<InkCanvas.Clip>
<EllipseGeometry RadiusX="98"
RadiusY="98"
Center="100,100" />
</InkCanvas.Clip>
</InkCanvas>
<Ellipse Stroke="Blue"
StrokeThickness="2" />
</Grid>
</Border>
结果
【讨论】:
问题是,我希望剪辑是根据图像而不是形状来完成的。我使用 OpacityMask 解决了它。 很棒的发现!只要透明区域基于图像,不透明蒙版就非常好。当需要可缩放蒙版时,可以使用基于几何的剪辑。快乐编码:)【参考方案2】:我能够使用不透明蒙版解决我的问题:
<InkPresenter.OpacityMask>
<ImageBrush ImageSource="Binding ImageMask" />
</InkPresenter.OpacityMask>
【讨论】:
以上是关于InkPresenter 仅在透明区域绘制的主要内容,如果未能解决你的问题,请参考以下文章