【问题标题】:Scratching the color off a picture刮掉图片的颜色
【发布时间】:2013-05-05 20:51:59
【问题描述】:

我正在使用 kinect 开展一个项目(我正在添加以防有人有使用 kinect 的好方法),但我认为这主要是 C# 和 WPF 中的一些编程问题。我想做两张照片,一张在另一张上,用鼠标点击,就能把第一张照片刮掉。我尝试使用inkcanvas并将图片放在inkcanvas中,但我只能在上面画画。

有人可以给我一个想法或一些他认为会更好的方法吗?

【问题讨论】:

  • 这很奇怪,但每次我尝试将大家好放在开头时,它都会从帖子中删除:(...大家好 :)
  • @jimmy_keen 谢谢 :),至少我可以说“谢谢”
  • @adlescouflair:我对此表示怀疑。
  • @H.B.你是对的,..我刚刚看到我的感谢被删除了

标签: c# wpf inkcanvas


【解决方案1】:

一个想法可能是使用OpacityMask,它是一个包含您的InkCanvasVisualBrush

【讨论】:

  • 谢谢,但是什么是视觉画笔?其他刷子之间是什么?我想我快到了……现在我有一张像彩票一样的刮刮卡。 geekswithblogs.net/tkokke/archive/2009/03/02/… 我正在测试在我刚刚添加的链接上找到的这段代码,我想知道如何让图片成为视觉画笔而不是灰色的视觉画笔。我尝试更改它,但后来,我发现我无法将其刮掉。 :( 微软为什么不在他们的页面中添加一个小句子来告诉使用 class at ,至少我可能知道它是什么 :(
  • @adlescouflair:您只需将另一张图片放在受蒙版影响的图片下方,然后默认显示,另一张在画布上绘制时显示。灰色来自Grid 的背景,将您的图像添加为Grid 的第一个元素。 (只要确保您的图片顺序正确)
  • 我有点迷茫,我有一些电力问题......我明天或稍后如果有电我会尝试了解更多。再次感谢您的帮助
  • 谢谢 :D 它有效!我实际上把我想显示的图片作为网格的背景......但是现在你能向我解释一下它为什么会起作用吗?我不喜欢不理解我在代码中输入的东西:(
  • 嗯,Grid的背景是默认显示的,带有OpacityMask的图像显示在遮罩不透明的地方,这是由遮罩中的InkCanvas决定的,所以如果你在上面画画,图像就会变得可见。
【解决方案2】:

这就是我所做的,感谢@HB 的帮助。部分代码来自 http://geekswithblogs.net/tkokke/archive/2009/03/02/scratchcard-in-wpf.aspx 如果有人想知道或需要它。

<Border Background="#FF909090" BorderBrush="#FF000000" 
     BorderThickness="2,2,2,2">
        <Grid Width="Auto" Height="Auto">
            <Grid.Background>
               <ImageBrush ImageSource="birthday_cake_by_protoperahe.jpg"/>
            </Grid.Background>
            <InkCanvas x:Name="inkCanvas" 
                Background="{x:Null}">
                <InkCanvas.DefaultDrawingAttributes>
                    <DrawingAttributes Height="25" Width="25"/>
                </InkCanvas.DefaultDrawingAttributes>
            </InkCanvas>
            <Image IsHitTestVisible="False" Source="planet.jpg" Stretch="Fill">
                <Image.OpacityMask>
                    <VisualBrush 
                 Visual="{Binding ElementName=inkCanvas}"/>
                </Image.OpacityMask>
            </Image>

        </Grid>

【讨论】:

    猜你喜欢
    • 2019-06-04
    • 2015-09-02
    • 2018-12-01
    • 1970-01-01
    • 2013-05-28
    • 1970-01-01
    • 1970-01-01
    • 2016-04-26
    • 2019-12-15
    相关资源
    最近更新 更多