【问题标题】:InkPresenter draw only in transparent areaInkPresenter 仅在透明区域绘制
【发布时间】:2014-10-24 05:54:33
【问题描述】:

我有一个 InkPresenter 和这个带有透明背景的图像。我希望我的笔触只在透明区域绘制,而忽略形状的黑色边框。这怎么可能?

【问题讨论】:

  • 剪辑也许可以帮助你。你能分享一些示例代码吗?

标签: c# wpf xaml windows-phone-7 windows-phone-8


【解决方案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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-31
    • 1970-01-01
    • 1970-01-01
    • 2020-03-07
    • 1970-01-01
    • 1970-01-01
    • 2012-07-28
    相关资源
    最近更新 更多