WP7入门:创建首个应用与Panorama控件详解

需积分: 10 1 下载量 40 浏览量 更新于2024-07-29 收藏 6.46MB PDF 举报
"WP7有约.pdf"是一份针对Windows Phone 7(WP7)开发者的教程或指南,主要关注于WP7应用程序的入门教程和设计。作者首先强调了学习WP7开发前的准备工作,包括推荐使用的软件工具如Expression Blend 4 for Windows Phone和Visual Studio 2010 Express for Windows Phone,这些工具对于创建和设计WP7应用至关重要。作者建议读者安装这两款软件,并确保有足够的水分和零食供应,因为脑力活动过程中保持良好的生理状态有助于提高学习效率。 章节1详细介绍了如何创建第一个WP7应用程序,用户被指导如何在Expression Blend中建立一个Windows Phone Panorama Application项目。Panorama控件是WP7中的一个重要组件,它允许开发者创建可滑动的导航视图,类似于今天的Hub或卡片式布局。作者提到了Panorama控件的特点,即它会延伸至屏幕之外,因此在设计时需要注意UI的整体布局和用户界面的可滚动性。 为了帮助读者理解Panorama控件的工作原理,作者建议尝试使用Objects and Timeline面板和Artboard功能进行实际操作,通过这种方式直观感受其动态效果和结构。此外,作者还鼓励读者参考预置的WP7内置Hub,这些内置的范例可以作为学习和模仿的基础。 这份文档提供了一个清晰的步骤指南,从基础设置到具体操作,旨在帮助读者快速掌握WP7开发的基础知识,特别是针对初学者来说,是非常实用的学习资源。"WP7有约"的核心内容围绕着项目创建、控件理解和用户体验设计,旨在帮助读者踏上WP7开发之旅。
2011-09-25 上传

帮我把下面一段C++代码改写成python代码:#include "Trade.h" #include "WPrice.h" #include <algorithm> double normalCDF(double x) // Phi(-∞, x) aka N(x) { return std::erfc(-x / std::sqrt(2)) / 2; //erfc()是互补误差函数,该返回值表示标准正态分布下var小于x的概率,即N(x) } CTrade::CTrade(double tick) : wp_bid(0.01), wp_ask(0.01), m_tick(tick), m_TimeRound(50) { newday(NULL); } CTrade::~CTrade() { } void CTrade::OnBook(const BTRec& btRec) { wp.setGamma(0.1); wp_bid = wp.getWP(&btRec.Bids); wp_ask = wp.getWP(&btRec.Asks); if (wp_mid > 0){ //wp_mid初始化为-1,仅遇到第一条BTRec记录时条件为false double wp_now = (wp_bid + wp_ask) / 2; //updated wp_mid int volume = btRec.volume; //volume between two orderbook records double ratio = normalCDF((wp_now - wp_mid) / (2 * m_tick)); //m_tick = tick = 0.2 double buyvolume = ratio*volume, sellvolume = (1 - ratio)*volume; m_TimeRound.update(buyvolume, sellvolume, btRec.rec_time.timestamp); //volume moving average if (mv_volume < 0) { mv_volume = volume; mv_buyvolume = buyvolume; } else{ mv_volume += 0.002*(volume - mv_volume); mv_buyvolume += 0.002*(buyvolume - mv_buyvolume); } // round trip volatility if (time_ini < 0 || btRec.rec_time.timestamp - time_ini >= time_scale){ if (time_ini>0){ double dp = wp_now - wp_ini; volatility += 0.05*(dp*dp - volatility); } time_scale = m_TimeRound.getTime() * 1000; //in milliseconds time_ini = btRec.rec_time.timestamp; wp_ini = wp_now; } } wp_mid = (wp_bid + wp_ask) / 2; } void CTrade::newday(const char* p) { wp_mid = -1; m_TimeRound.newday(p); volatility = 16 * m_tick*m_tick; time_slapse = -1, time_scale = -1, wp_ini = -1, time_ini = -1; mv_buyvolume = mv_volume = -1; }

2023-05-15 上传