2012-10-24 45 views
1

对于我的windows8App,我需要在其上有播放按钮的图像。 我创建了一个网格,该网格包含一个堆栈计划。我想以编程方式将图像和按钮放在图像上。但是当我运行该应用程序时,我发现该按钮位于图像后面。 我的问题的第一个问题是,如果是将按钮放在图像上的好方法? 如果是,那么我的代码有什么问题?Xaml,以编程方式将按钮添加到堆叠面板中的图像

<Border x:Name="videoPlayerBr" BorderBrush="#FFDED5D5" HorizontalAlignment="Center" Width="400" Height="300" VerticalAlignment="Top" Grid.Row="0"> 
<StackPanel Name="videoPlayerSP"> 
</StackPanel> 
</Border> 

这是后面的代码:

 var proVideoImg = new Image(); 
     proVideoImg.Source = new BitmapImage(new Uri("ms-appx:///Assets/image.png", UriKind.Absolute)); 
     proVideoImg.Stretch = Stretch.UniformToFill; 
     videoPlayerSP.Children.Add(proVideoImg); 

     var playBtn = new Button(); 
     playBtn.Margin = new Thickness(136, 121, 0, 133); 
     ImageBrush brush1 = new ImageBrush(); 
     brush1.ImageSource = new BitmapImage(new Uri("ms-appx:///Assets/playbutton.png")); 
     playBtn.Background = brush1;   
     playBtn.Click += new RoutedEventHandler(PlayVideo_Button_Click); 
     videoPlayerSP.Children.Add(playBtn); 

感谢。

回答

0

尝试将图像和按钮控件放置在画布或嵌套网格中。

+0

谢谢,我已经把它们放在一个Canvas中。但是现在,当我将鼠标放在按钮上时,按钮消失。你有什么想法,为什么? – wingman55

0

我刚推出了一个解决方案。干得好。我希望你可以轻松地将其转换为C#?

 <Button Height="29" Width="82" Click="Button_Click"> 
     <Button.Content> 
      <Grid> 
       <Image Source="Icons/add_action.png" Stretch="Fill" Opacity=".2"/> 
        <Path Data="M13,9.8933333 L13,21.561587 23.2164,16.328076 z" Fill="#FFBED460" HorizontalAlignment="Center" Stretch="Fill" Width="11.212" RenderTransformOrigin="0.357,0.5" VerticalAlignment="Center" Height="15"> 
         <Path.Stroke> 
          <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
           <GradientStop Color="Black" Offset="0"/> 
           <GradientStop Color="#FF9B6262" Offset="1"/> 
          </LinearGradientBrush> 
         </Path.Stroke> 
        </Path> 
       </Grid>    
      </Button.Content>     
     </Button> 
相关问题