1

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

<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);

谢谢。

4

2 回答 2

0

尝试将 Image 和 Button 控件放置在 Canvas 或嵌套 Grid 中。

于 2012-10-24T08:56:47.033 回答
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>
于 2012-10-24T14:18:30.467 回答