2016-01-22 58 views
0
public static void DrawSkeleton(this Canvas canvas, Body body) 
{ 
    foreach (Joint joint in body.Joints.Values) 
    { 
     canvas.DrawPoint(joint); 
    } 
} 

public static void DrawPoint(this Canvas canvas, Joint joint) 
{ 
    joint = joint.ScaleTo(canvas.ActualWidth, canvas.ActualHeight); 

    Ellipse ellipse = new Ellipse 
    { 
     Width = 20, 
     Height = 20, 
     Fill = new SolidColorBrush(Colors.LightBlue) 
    }; 

    Canvas.SetLeft(ellipse, joint.Position.X - ellipse.Width/2); 
    Canvas.SetTop(ellipse, joint.Position.Y - ellipse.Height/2); 

    canvas.Children.Add(ellipse); 
} 

我想从我的应用程序文件夹路径中添加一个小的jpeg图像,而不是一个椭圆。当使用Kinect SDK绘制骨架时添加图像而不是椭圆形

任何人都可以帮助我吗?

回答

1

您必须设置CacheOption到的OnLoad:

 var bitmap = new BitmapImage(); 
     bitmap.BeginInit(); 
     bitmap.UriSource = new Uri("yourimage.png", UriKind.Relative); 
     bitmap.CacheOption = BitmapCacheOption.OnLoad; 
     bitmap.EndInit(); 
     var img = new Image{Source=bitmap}; 

     canvas.Children.Add(img); 
+0

冷却图像存在但没有n个关节:(关节外 – Neo

2
Image img = new Image 
{ 
    Width = 20, 
    Height = 20, 
    Source = new BitmapImage(new Uri("your/image/relative/path", UriKind.Relative)), 
}; 

Canvas.SetLeft(img, joint.Position.X - img.Width/2); 
Canvas.SetTop(img, joint.Position.Y - img.Height/2); 

canvas.Children.Add(img); 
+0

我想'canvas.Children.Add(IMG)'仍然呈现椭圆形:(为什么这么 – Neo

+0

酷形象是有,但不是n?关节:(出关节 – Neo

+1

对不起,我已经交换了'SetLeft'和'SetTop'方法。现在应该可以工作 –