Kinect 예제에서 제공되는 KinectSkeletonViewer 컨트롤을 변경하고 싶습니다. 스켈레톤 (추적 된 본)의 색상을 변경하는 속성을 공개하려고합니다.SDK v1.6에서 제공하는 KinectSkeletonViewer에서 스켈레톤 색상을 변경하는 방법
내가해야 할 일은 무엇입니까?
Kinect 예제에서 제공되는 KinectSkeletonViewer 컨트롤을 변경하고 싶습니다. 스켈레톤 (추적 된 본)의 색상을 변경하는 속성을 공개하려고합니다.SDK v1.6에서 제공하는 KinectSkeletonViewer에서 스켈레톤 색상을 변경하는 방법
내가해야 할 일은 무엇입니까?
두 파일 (KinectSkeleton.cs
및 KinectSkeletonViewer.xaml.cs
)을 수정해야합니다. KinectSkeleton
에 바인딩을 만들고 있지만이 클래스는 뷰어에서 직접 참조 및 호출되지 않으므로 KinectSkeletonViewer
에 패스 스루 바인딩을 만들어야합니다.
KinectSkeleton.cs - DependencyProperties 만들 :
public static readonly DependencyProperty TrackedJointBrushProperty =
DependencyProperty.Register(
"TrackedJointBursh",
typeof(Brush),
typeof(KinectSkeleton),
new FrameworkPropertyMetadata(new SolidColorBrush(Color.FromArgb(255, 68, 192, 68)), FrameworkPropertyMetadataOptions.AffectsRender));
public static readonly DependencyProperty TrackedBonePenProperty =
DependencyProperty.Register(
"TrackedBonePen",
typeof(Pen),
typeof(KinectSkeleton),
new FrameworkPropertyMetadata(new Pen(Brushes.Green, TrackedBoneThickness), FrameworkPropertyMetadataOptions.AffectsRender));
KinectSkeletonViewer - DependencyProperties에게 에서
public static readonly DependencyProperty TrackedJointBrushProperty =
DependencyProperty.Register(
"TrackedJointBursh",
typeof(Brush),
typeof(KinectSkeletonViewer),
new PropertyMetadata(new SolidColorBrush(Color.FromArgb(255, 68, 192, 68))));
public static readonly DependencyProperty TrackedBonePenProperty =
DependencyProperty.Register(
"TrackedBonePen",
typeof(Pen),
typeof(KinectSkeletonViewer),
new PropertyMetadata(new Pen(Brushes.Green, TrackedBoneThickness)));
을 만드는 두 파일 관련 속성 정의
을이제 바인딩을 연결하려고합니다. KinectSkeletonViewer의 OnLoad
경우 - 마지막
var trackedJointBrush = new Binding("TrackedJointBrush");
trackedJointBrush.Source = this;
skeletonCanvas.SetBinding(KinectSkeleton.TrackedJointBrushProperty, trackedJointBrush);
var trackedBonePen = new Binding("TrackedBonePen");
trackedBonePen.Source = this;
skeletonCanvas.SetBinding(KinectSkeleton.TrackedBonePenProperty, trackedBonePen);
, 당신은 KinectSkeleton.cs을 통해보고 새로운 특성을 가진 하드 코딩 색상의 참조를 교체해야합니다. trackedJointBrush
및 trackedBonePen
- TrackedJointBrush
및 TrackedBonePen
(주 경우)으로 대체됩니다. 그런 다음 하드 코딩 된 변수를 주석 처리 할 수 있습니다.
이제 XAML에서 선언 할 때 KinectSkeletonViewer
의 두 속성을 바인딩 할 수 있습니다.
KinectSkeleton
클래스에는 몇 가지 다른 색상이 정의되어 있습니다. 위와 동일한 개념을 사용하여 바인딩 할 수도 있습니다.
고마워, 이미 해 봤는데, 어떤 이유로 xaml에 속성이 표시되지 않았다. – Ewerton
뷰어에서 바인딩 가능한 속성을 원하십니까? 예 :'kt : SkeletonViewer BoneColor = "Red">' –
@Evli 옷장 원숭이 - 예 – Ewerton