0

我的<Rectangle />Windows 手机应用程序视图中有一个显示相机源的视图,我正在尝试找出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

谢谢!

4

1 回答 1

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>
于 2013-02-11T14:17:37.047 回答