2013-02-11 95 views
0

我在我的Windows手机应用程序视图上显示<Rectangle />,它显示相机馈送,并且我试图找出XAML代码以将部分透明图像置于馈送上。WP - XAML在矩形上覆盖网格

我有工作代码:

<Grid x:Name="LayoutRoot"> 

     <Rectangle x:Name="_previewRect" 
        Margin="0" 
        Height="800" 
        Width="600" 
        HorizontalAlignment="Center" 
        VerticalAlignment="Center" 
        Tap="OnTapDown"> 

      <Rectangle.Fill> 
       <VideoBrush x:Name="_previewVideo"> 
        <VideoBrush.RelativeTransform> 
         <CompositeTransform 
          x:Name="_previewTransform" CenterX=".5" CenterY=".5" /> 
        </VideoBrush.RelativeTransform> 
       </VideoBrush> 
      </Rectangle.Fill> 

     </Rectangle> 

    </Grid> 

这完全显示我的相机饲料(大部分代码是当然的代码隐藏)。

但现在我想添加一个图像作为覆盖。我尝试添加:

<Grid.Background> 
    <ImageBrush ImageSource="Images/Background/BackgroundBlurred.png" Stretch="UniformToFill" /> 
</Grid.Background> 

上方和<Rectangle />元件的下方,但没有这样的运气。

有没有人有任何想法我可以做到这一点?这似乎并不难,但我刚刚开始学习XAML

谢谢!

回答

1

如果要将图像叠加在视频输入矩形上,必须将其设置为“layoutRoot”网格内的单独控件。只需将它直接放置在矩形的顶部,并给它一个更高的值Canvas.ZIndex值:

<Grid x:Name="LayoutRoot"> 
    <Rectangle x:Name="_previewRect" 
       Margin="0" 
       Height="800" 
       Width="600" 
       HorizontalAlignment="Center" 
       VerticalAlignment="Center" 
       Tap="OnTapDown" 
       Canvas.ZIndex="1"> 
     <Rectangle.Fill> 
      <VideoBrush x:Name="_previewVideo"> 
       <VideoBrush.RelativeTransform> 
        <CompositeTransform 
         x:Name="_previewTransform" CenterX=".5" CenterY=".5" /> 
       </VideoBrush.RelativeTransform> 
      </VideoBrush> 
     </Rectangle.Fill> 
    </Rectangle> 

    <Image x:Name="myOverlayImage" Canvas.ZIndex="2"> 
     <!-- Your overlay is now a sibling of the video-feed Rectangle, but drawn on top of it --> 
    </Image> 
</Grid> 
+0

我明白你的逻辑,但是我的图像仍然没有显示出来。甚至没有在ZAML预览中。还有什么我可以尝试吗? – Brett 2013-02-11 14:26:57

+0

通过将图像代码粘贴到空白网格中,确保图像实际存在。如果它仍然不显示,那么你没有正确加载图像。此外,请尝试使用填充的简单Rectangle作为叠加层,并确保其正确显示。尝试一些不同的组合来缩小问题出现的位置。您也可以使用“无效”的最新代码更新您的问题。 – BTownTKD 2013-02-11 14:32:54

+1

Got it! XAML引用的图像来自于一个子目录,所以我忘了我的图像路径中的前导'../'。非常感谢你的帮助! – Brett 2013-02-11 14:44:31