CodePlex是很多托管Windows Phone 7项目的普通的地方之一,它对于许多开发者来说可以算是权威的,因为它是免费的、能够托管源码、二进制文件、文档、工作项目、讨论,还支持直接插入到Visual Studio中。这就是说,它适用于有不同需求、喜好的开发者。
还有一个新的Windows Phone 7项目托管的地方,可能微软领域的开发者没有考虑到或曾听过,但是不久之后就会意识到。
谁在负责这个神秘项目?诺基亚!是的,诺基亚。下面来看一个典型的托管项目。
Bubble Level Silverlight
举个简单的Silverlight例子,使用加速度传感器来计算设备的倾斜度,并以泡泡的位置来显示水平度。
特别值得注意的是wiki页面,在这里你可以看到一个伟大的故事,包括介绍这个项目是如何创建并完成的。
这是一个简单的应用程序,但有时简单正是你所需要的。下面是项目的截图和代码片段。
C#代码
/// <summary>
/// Updates the position of the bubble in the glass tube.
/// </summary>
/// <param name="e">Contains the accelerometer reading value.</param>
protected void UpdateBubble(AccelerometerReadingEventArgs e)
{
const double RADIANS_TO_DEGREE = 57.2957795;
double pider = Math.Sqrt(e.X * e.X + e.Y * e.Y + e.Z * e.Z);
// Calculating the angle + using low pass factor 20 %.
// Values from all three accelerometers are used to get more precise reading on y-axis.
m_Angle += (Math.Acos(e.Y / pider) * RADIANS_TO_DEGREE - 90 - m_Angle) * 0.2;
double angle;
// Depending on the orientation, invert the accelerometer value
if (Orientation == PageOrientation.LandscapeLeft)
{
angle = -m_Angle + m_CalibrationFactor;
}
else
{
angle = m_Angle - m_CalibrationFactor;
}
const double MAX_ANGLE = 20.0;
// Restrict the angle value to the range -20 and 20 degrees.
if (angle > MAX_ANGLE)
{
angle = MAX_ANGLE;
}
else if (angle < -MAX_ANGLE)
{
angle = -MAX_ANGLE;
}
// Set the bubble position.
BubbleTransform.X = angle / MAX_ANGLE * (Reflection.Width / 2 - Bubble.Width / 2);
}
如对本文有疑问, 点击进行留言回复!!
苹果手机无法充电-iPhone 12 5G成本上涨若能守住价格 不送充电器也真香
荐 物联网概论(IoT)_Chp5 物联网通信 Zigbee/蓝牙/UWB/WLAN/WiMax
BottomSheetBehavior+ViewPager+RecyclerView引起的滑动冲突事件解决
解决ViewPager设置高度无效问题,从源码角度分析并解决问题
UltraEdit等软件详细安装破解教程,附注册机(全网独家可用)
Xmanager PowerSuite 6企业版详细安装破解教程,解决评估过期问题(附注册机,全网独家可用),非学校/家庭免费版
Navicat 12.x for MySQL最新版安装破解教程(附安装包和注册机,全网独家可用
网友评论