Kinect for developer

最近公司做Jaguar,用Kinect做互动。因为Developer版本的Kinect要贵,而且中国不销售,定85个来不及。所以每次调试VS都如下输出

The Kinect sensor plugged into your computer is for use on the Xbox 360.
You may continue using your Xbox 360 Kinect sensor on your computer for development purposes.
Microsoft does not guarantee full compatibility for Kinect for Windows applications and the Xbox 360 Kinect Sensor.

悲剧啊

WPF中Page类继承问题

问题描述:今天做Jaguar的Kinect互动,发现C#中Page继承失败。

问题解决
在cs文件中修改StartPage继承ContentPage。报如下错误:
 “Jaguar.Page.StartPage”的分部声明一定不能指定不同的基类。
应该是XAML自动生成的StartPage.g.cs里的基类没有改变。那么随后修改xaml文件中映射的类。又报如下错误:
 “Jaguar.Page.ContentPage”不能是 XAML 文件的根,因为它是使用 XAML 定义的。
原来要被继承就必须是只有cs文件,而没有xaml文件的。所以只能保留cs文件。把所有xaml定义的转到cs代码上。
问题终于解决了。别看VS方便,其实问题特多。

C#事件不能直接继承问题

问题描述:今天做Jaguar的Kinect互动,发现C#中事件一继承后就不能调用。

代码如下:
public class ContentPage : System.Windows.Controls.Page
{
public delegate void LoadCompletedHandle(object sender);
public event LoadCompletedHandle LoadCompleted;
}
public partial class StartPage : ContentPage
{
private void VideoPlayer_MediaOpened(object sender, RoutedEventArgs e)
{
if (LoadCompleted != null)
{
LoadCompleted(this);
}
}
}

报错如下:
错误 1 事件“Jaguar.Page.ContentPage.LoadCompleted”只能出现在 += 或 -= 的左边(从类型“Jaguar.Page.ContentPage”中使用时除外) C:\Users\CouldHll\Desktop\Jaguar\Jaguar\Page\StartPage.xaml.cs 48 17 Jaguar

问题分析
事件只能从声明它们的类中调用,派生类不能直接调用在基类声明的事件。

要处理基类的事件,通常通过在基类中为事件创建受保护虚方法(OnEventName)来实现。派生类可以重写基类的OnEventName方法,也可以直接调用基类的OnEventName方法,从而实现调用基类的事件。重写基类的OnEventName方法,派生类可以截获基类正在调用的事件,对这些事件执行它自己的处理。

问题解决

代码如下:
protected virtual void OnLoadCompleted(object sender)
{
if (LoadCompleted != null)
{
this.LoadCompleted(sender);
}
}
private void VideoPlayer_MediaOpened(object sender, RoutedEventArgs e)
{
OnLoadCompleted(this);
}

《史蒂夫·乔布斯传》

“‘我喜欢把很棒的设计和简便的功能融入产品中,而且不会太贵。’”---史蒂夫·乔布斯

“他的父母‘都知道责任在学校,学校没有激发我学习的兴趣,而是让我背一些没用的东西。’”

“我教他,如果你表现得好像你能做某件事,那就能起到作用。我告诉他,装得好像你掌握了一切,别人就会以为你真的掌控了一切。”---诺兰·布什内尔

苹果营销哲学:第一共鸣;第二专注;第三灌输。

“至繁归于至简。”---列奥纳多·达·芬奇

“有时对那些渴望奉承的人,他会给予不真诚的奉承。”

“永远不要害怕内部相残。”

“与其被别人取代,不如自己取代自己。”---史蒂夫·乔布斯

“自然喜欢简洁与统一。”---天文学家约翰尼斯·开普勒(Johannes Kepler)

“如果你不忙着求生,你就在忙着求死。”---迪伦