0

我有两个非常简单的 Kinect for Windows 项目。

一个项目基于名为ControlsBasics-WPF的原始 Kinect for Windows 开发 SDK V2 代码示例(可在 V2 SDK 浏览器中获得),另一个项目是通过新项目从头开始创建的,随后通过 nuget 包管理器引用 Kinect SDK。

这两个项目中的代码相当于以下 XAML。

<kinectTools:KinectRegion x:Name="kinectRegion">

    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="2*" />
            <RowDefinition Height="8*" />
        </Grid.RowDefinitions>
        <kinectTools:KinectUserViewer Grid.Row="0" />


    </Grid>
</kinectTools:KinectRegion>

和以下 C#

public MainWindow()
{
    InitializeComponent();
    KinectRegion.SetKinectRegion(this, kinectRegion);
    this.kinectRegion.KinectSensor = KinectSensor.GetDefault();
}

如果我运行该项目,预期的行为是一旦抬起手臂(左或右),光标应该出现在定义KinectRegion区域内的屏幕上。

然而,虽然基于ControlsBasics-WPF示例代码的版本是坚如磐石的,并且几乎可以立即按预期运行(光标出现并跟踪)。基于新项目的版本表现出间歇性行为,光标很少出现在屏幕上。

请找到以下两个可以证明问题的解决方案:

  1. 工作检测
  2. 破损检测

另请注意,我故意从 SDK 代码示例版本中删除了 dll 引用,并使用 nuget 来引用 SDK 以确保引用相同的库并且这不会影响行为。这两个项目中的代码(据我所知)是相同的,但显然我遗漏了一些东西。

任何输入将不胜感激!

4

1 回答 1

0

制作支持 kinect 的 WPF 程序所需的全部内容是:

1-创建一个新的WPF程序。2- 添加引用“Microsoft.Kinect”和“Microsoft.Kinect.Wpf.Controls”。3-将此行添加到您的 xaml 页面中的 Window 对象。xmlns:k="http://schemas.microsoft.com/kinect/2014"

最后创建一个 kinect 区域对象,也许在其中添加一个按钮。就像是:

{

<k:KinectRegion x:Name="kinectRegion">
<Grid>
<Button Content="sdfsdfdsfsdfsdf" Background="#FF2F55A6" BorderThickness="6"  Width="150" Height="50" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
</Grid>
</k:KinectRegion>

}

当您运行您的项目时,您应该能够看到手形光标,并按下您刚刚创建的按钮。全部只有一个 xaml 页面。看起来与此相同:

<Window x:Class="KinectDynamicAppLive.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:k="http://schemas.microsoft.com/kinect/2014"
        Title="MainWindow" Height="350" Width="525">
    <k:KinectRegion x:Name="kinectRegion">
    <Grid>
            <Button Content="sdfsdfdsfsdfsdf" Background="#FF2F55A6" BorderThickness="6"  Width="150" Height="50" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>

        </Grid>
      </k:KinectRegion>
</Window>
于 2015-04-07T07:50:00.253 回答