如何在WPF中的ViewBox和图像之间添加水平按钮行?

如何在WPF中的ViewBox和图像之间添加水平按钮行?,wpf,xaml,button,Wpf,Xaml,Button,我试图在图像和视图框之间的窗体顶部添加一行水平按钮,但当我添加按钮时,它会填充图像。我尝试添加一个网格来包含按钮,但这填充了图像元素。有人知道我如何做到这一点吗 我相信一定有一个快速解决办法,有人能解释一下为什么会发生这种情况吗?我通常使用设计器,但我认为在这种情况下,我应该更好地理解xaml元素和属性 以下是我定义窗口布局的方式: <Window x:Class="KinectKickboxingBVversion1.ConditioningFrm" xmlns="htt

我试图在图像和视图框之间的窗体顶部添加一行水平按钮,但当我添加按钮时,它会填充图像。我尝试添加一个网格来包含按钮,但这填充了图像元素。有人知道我如何做到这一点吗

我相信一定有一个快速解决办法,有人能解释一下为什么会发生这种情况吗?我通常使用设计器,但我认为在这种情况下,我应该更好地理解xaml元素和属性

以下是我定义窗口布局的方式:

<Window x:Class="KinectKickboxingBVversion1.ConditioningFrm"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="ConditioningFrm"  Height="377.612" Width="637.313">
    <Grid>

        <Viewbox Grid.Row="1" Stretch="Uniform" HorizontalAlignment="Center">

            <Image Name="Image" Width="640" Height="250"/>

           </Viewbox>

    </Grid>
</Window>

如果要将其放置在窗体顶部而不进行缩放,请执行以下操作:

<Window x:Class="KinectKickboxingBVversion1.ConditioningFrm"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="ConditioningFrm"  Height="377.612" Width="637.313">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefintion Height="Auto" />
            <RowDefintion Height="*" />
        </Grid.RowDefinitions>

        <StackPanel Orientation="Horizontal" Grid.Row="0">
            <Button Content="1"/>
            <Button Content="2"/>
            <Button Content="2"/>
        </StackPanel>
        <Viewbox Grid.Row="1" Stretch="Uniform" HorizontalAlignment="Center">
            <Image Name="Image" Width="640" Height="250"/>
       </Viewbox>
    </Grid>
</Window>
<Window x:Class="KinectKickboxingBVversion1.ConditioningFrm"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="ConditioningFrm"  Height="377.612" Width="637.313">

    <Viewbox Stretch="Uniform" HorizontalAlignment="Center">
        <StackPanel Orientation="Vertical">
            <StackPanel Orientation="Horizontal">
                <Button Content="1"/>
                <Button Content="2"/>
                <Button Content="2"/>
            </StackPanel>
            <Image Name="Image" Width="640" Height="250"/>
        </StackPanel>
    </Viewbox>
</Window>

添加stackpanel,将方向设置为水平。在图像和viewbox之间?在编写它之前,您需要了解XAML。你不能把它放在视图框和图像之间。那么我将把stackpanel放在代码中的什么地方?好的,那么stackpanel必须在视图框之外,你能解释一下为什么吗?一个
ViewBox
只能存储一个孩子。我将进行编辑,向您展示如何将其添加到Viewbox中,一秒钟好吧,有趣的是,我在上一个示例中还注意到,WPF中不支持RowDefinition,是否有其他选择?抱歉,上一个示例没有网格,因此不应设置网格。一旦实现第二个示例,我还有一个问题,当我运行应用程序时,图像没有显示,有什么原因吗?
<Window x:Class="KinectKickboxingBVversion1.ConditioningFrm"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="ConditioningFrm"  Height="377.612" Width="637.313">

    <Viewbox Stretch="Uniform" HorizontalAlignment="Center">
        <StackPanel Orientation="Vertical">
            <StackPanel Orientation="Horizontal">
                <Button Content="1"/>
                <Button Content="2"/>
                <Button Content="2"/>
            </StackPanel>
            <Image Name="Image" Width="640" Height="250"/>
        </StackPanel>
    </Viewbox>
</Window>
KinectVideo.Source = BitmapSource.Create(colorFrame.Width, colorFrame.Height, 96, 96,
                    PixelFormats.Bgr32, null, colorData, colorFrame.Width * colorFrame.BytesPerPixel)