2013-02-11 2 views
0

У меня есть <Rectangle /> в моем представлении приложения для телефона Windows, в котором отображается канал камеры, и я пытаюсь выяснить код 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

+0

Убедитесь, что ваше изображение действительно существует, вставив код изображения в пустую сетку. Если он все еще не отображается, вы неправильно загружаете изображение. Кроме того, попробуйте использовать заполненный прямоугольный прямоугольник в качестве наложения и убедитесь, что он отображается правильно. Попробуйте несколько разных комбинаций, чтобы сузить место возникновения проблемы. Вы также можете обновить свой вопрос с помощью последнего кода, который «не работает». – BTownTKD

+1

Получил! XAML, на который я ссылался, был в дочернем каталоге, поэтому я забыл о ведущем «../» на моем пути к моему изображению. Огромное спасибо вам за помощь! – Brett

Смежные вопросы