Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
Windows Phone¿ª·¢£¨ÉÏ£©
 
×÷Õߣºcc_net À´Ô´£ºCSDN ·¢²¼ÓÚ 2015-03-30
  3040  次浏览      27
 

Windows Phone¿ª·¢£¨Ò»£©-- ¿ª·¢»·¾³ºÍ½á¹¹

ÓÖÊǺþÃûÓÐдBLOGÁË£¬×öÍêÉÏÒ»¸öMSNÏîÄ¿ºó¶¼ÊÇЩËöËéµÄÊÂÇ飬Ȼºó¾ÍÊÇÊÇÍæÉãÓ°°¡£¬ÂÃÓΰ¡¡£ÉÏÔÂÐݼÙÈ¥ÁËÌËÎ÷²Ø£¬ÕæÊDz»´í¡£»ØÀ´ÁËÒ²ÒªÊÕÐÄѧϰÁË¡£Windows Phone 7.1µÄ¿ª·¢¹¤¾ß·¢²¼ÁË£¬Ò»Ö±¶ÔWP7ºÜ¹Ø×¢£¬ÏÖÔÚÖÕÓÚ¿ÉÒÔ¿ªÊ¼Ñ§Ï°ÁË¡£Æäʵ09Äê¾Íѧϰ¹ýsilverlight£¬¿´¹ý3µÄSDKÎĵµ£¬µ±Ê±ÒòΪ¹¤×÷£¬¶Ï¶ÏÐøÐøÒ²Ã»Óмá³ÖÏÂÀ´£¬ËùÒÔÕâ´ÎѧϰWP7˳±ãÖØÐÂѧϰSL¡£

ÉÏÖܰ²×°ÁËWP7.1µÄ¿ª·¢»·¾³£¬¹¤×÷Ö®Óà¿´ÁËÒ»ÖÜÎĵµ¡£Ä¿Ç°¹ØÓÚWPµÄѧϰÎĵµ´ó¶àÊÇÓ¢Îĵģ¬chian-pubÉϳöÏÖÁËÒ»±¾ÖÐÎĵÄÊ飬²»¹ý»¹ÊÇÍÆ¼ö¿´MSDN£¬ÉÏÃæÓÐ×îеÄWP7.1µÄÄÚÈÝ£¬±Ï¾¹7.1½øÐÐÁ˽ϴóµÄ¸üС£ÎÒдWindows Phone¿ª·¢µÄÎÄÕÂÖ÷ÒªÊǶÔ×Ô¼º¿´µÄÎĵµ½øÐÐÒ»¸öÌáÁ¶ºÍ¼Ç¼£¬Ö÷ÒªÕë¶Ôwp7.1Beta¡£

Ò» Windows Phone ѧϰ×ÊÁÏ

ĿǰÖ÷ÒªµÄѧϰ×ÊÁÏ»¹ÊÇÀ´ÖÁÓÚ΢ÈíMSDNºÍ¡¶Programming Windows Phone 7¡·£¬ÆäÖÐMSDN°üº¬ÁË×îеÄ7.1BetaÌØÐԵĽéÉܺÍʹÓá£Ò»Ð©ÖÐÎÄÍøÕ¾ºÍÔ­´´µÄBLOGÎÄÕ»ù±¾Ò²ÊÇÀ´×ÔÕâЩµØ·½¡£¶øMSDNÔÓ־ÿÆÚÓжÔWindows Phone½éÉܵÄÎÄÕ¡£¹ØÓÚ½çÃæ¿ª·¢¿ÉÒԲο¼Silverlight¿ª·¢¡£

Windows Phone ÖÐÎÄ¿ª·¢ÖÐÐÄ

Windwos Phone Development

Silverlight for Windows Phone

Phone Platform Development

Windows Phone developer documentation

Programming Windows Phone 7

ÊÓÆÁѧϰ×ÊÁÏ

Windows Phone 7 ÖÐÎÄ¿ª·¢×ÊÁϸÅÀÀ

MSDNÔÓÖ¾

¶þ Windows Phone ¿ª·¢»·¾³

΢ÈíÔÚ5Ô·ݷ¢²¼ÁË´úºÅMangoµÄ×îпª·¢¹¤¾ß£¬Windows Phone Developer Tools 7.1 Beta £¨µã»÷ÏÂÔØISOÎļþ£©

ϵͳҪÇó£º

1.²Ù×÷ϵͳ£ºWindows Vista SP2 / Windows 7

2.Ó²¼þÒªÇó£º4GÓ²Å̿ռä 3GÄÚ´æ

3.ÊÖ»úÄ£ÄâÆ÷£ºDirectX10ÒÔÉÏÏÔ¿¨£¬WDDM1.1Çý¶¯

PS£ºÎҵıʼDZ¾ÊÇT2450+3GÄÚ´æ+HD2300ÏÔ¿¨£¬07ÄêµÄÁË£¬Õý³£ÔËÐС£

°²×°×¼±¸£º

1.Èç¹ûûÓа²×°VS2010£¬¿ÉÒÔÖ±½Ó°²×°Windows Phone Developer Tools 7.1 Beta£¬Ëû»á×Ô´øExpress°æ±¾µÄVS2010 for Windows Phone

2.Èç¹û°²×°ÁËVS2010רҵ°æ»òÕ߸ü¸ß°æ±¾£¬¿ÉÒÔÖ±½Ó°²×°£¬µ«ÊDZØÐë°ÑVS2010µÄÓïÑÔÐ޸ijÉͬWindows Phone Developer Tools 7.1 BetaÏàͬµÄÓïÑÔ

3.Èç¹û°²×°ÁËVS2010 RTM°æ±¾£¬±ØÐëÏȰ²×°VS2010 SP1£¨µã»÷ÏÂÔØISOÎļþ£©

4.Èç¹û°²×°ÁË·ÇÓ¢Îİ汾µÄWindows Phone Developer Tools 7.0»ò Expression Blend£¬±ØÐëÏÈÐ¶ÔØÔÚ½øÐа²×°

PS£ºÎÒ֮ǰ°²×°ÁËVS2010ÖÐÎÄÆì½¢°æ£¬ËùÒÔÏȰ²×°ÁËSP1£¨°²×°SP1ʱµÚÒ»´Îµ½ÁËÒ»°ë¾ÍͣסÁË£¬ºóÀ´ÎÒ²éÁË˵¿ÉÄÜȱÉÙÎļþ£¬¾Í°ÑVS2010µÄISOÒ²¼ÓÔØµ½ÐéÄâ¹âÇýÖÐÈ»ºó¾Íͨ¹ýÁË£©£¬µ«ÊÇÒòΪWindows Phone Developer Tools 7.1 BetaĿǰֻÓÐÓ¢ÎİæµÄ£¬ËùÒÔ°²×°Íê³Éºó£¬²¢Ã»ÓÐÔÚVS2010Öм¯³ÉWP7¿ª·¢Ä£°å£¬µ«¼¯³ÉÁËXNA Game StudioµÄ¿ª·¢»·¾³£»¶øÊǰ²×°ÁËVS2010 Express for Windows Phone¡£

Èý µÚÒ»¸öWindows Phone 7³ÌÐò

ÎÒÃÇ¿ÉÒÔ¿´µ½ÆäÖÐÓкܶàÄ£°å¿ÉÒÔÑ¡Ôñ£¬ÏÂÃæ½øÐмòµ¥½éÉÜ£¬¾ßÌå¿ÉÒÔ½¨Á¢ÏàÓ¦ÏîÄ¿²é¿´

1.Windwos Phone Application: ´´½¨Ò»¸öÆÕͨµÄWindows PhoneÓ¦ÓóÌÐò

2.Windwos Phone Databound Application: ´´½¨Ò»¸öºÍÊý¾Ý°ó¶¨ÓйصÄÏîÄ¿£¬Ê¹ÓÃÁбíºÍµ¼º½¿Ø¼þ

3.Windows Phone Class Library:´´½¨Ò»¸öÀà¿âÏîÄ¿

4.Windwos Phone Panorama Application: ´´½¨Ò»¸öÈ«¾°Ó¦ÓÃÏîÄ¿£¬Ê¹ÓÃÈ«¾°Panorama¿Ø¼þ

5.Windwos Phone Pivto Application:´´½¨Ò»¸öÊàÖáÓ¦ÓÃÏîÄ¿£¬Ê¹ÓÃPivto¿Ø¼þ

6.Windwos Phone 3D Graphics Application: ´´½¨Ò»¸öXNA¿ò¼ÜÖ§³ÖµÄÏîÄ¿£¨WP7.1¿ÉÒÔsilverlightºÍXNA¼¯³É£©

7.Windwos Phone Audio Playback Application:´´½¨Ò»¸öÒôƵ²¥·ÅµÄÀà¿âÏîÄ¿

8.Windwos Phone Audio Streaming Application:´´½¨Ò»¸öÒôƵÁ÷µÄÀà¿âÏîÄ¿

9.Windwos Phone Task Scheduler Agent:´´½¨Ò»¸öºǫ́ÈÎÎñ´úÀíÏîÄ¿£¨WP7.1ÖÐÐÂÔöÁ˺ǫ́¶àÈÎÎñ´úÀí£©

Ñ¡ÔñÁËÏîĿģ°åÖ®ºó£¬¾ÍҪѡÔñWindows PhoneµÄ¿ª·¢°æ±¾£¬Ä¿Ç°ÓÐ7.0ºÍ7.1¿ÉÒÔ½øÐÐÑ¡Ôñ¡£

ÉÏͼ¾ÍÊÇWP7µÄ¿ª·¢»·¾³£¬Èç¹ûÓпª·¢¹ýsilverlight£¬Ó¦¸Ã²»»áİÉú¡£×ó±ßÊÇͼÐεĽçÃæ»·¾³£¬ÆäËû.NETÆäËû¿ª·¢»·¾³Ò»Ñù£¬¿ÉÒÔÍϿؼþÀ´²¼¾Ö¡£¶øÓÒ²àÊÇÒ³ÃæµÄXAML´úÂ룬¿ÉÒÔͨ¹ý±àдXAMLÀ´²¼¾Ö¡£¹ØÓÚXAML¿ÉÒԲμûMSDN£¨µã»÷´ò¿ª£©

ÎÒÃǵĵÚÒ»¸ö³ÌÐòҪʵÏÖµÄÊǵã»÷Ò³ÃæÉϵÄÒ»¸ö°´Å¥µ¼º½µ½ÏÂÒ»¸öÒ³Ãæ£º

1 ÔÚMainPage.xamlÖÐÌí¼ÓÒ»¸ö°´Å¥£¬²¢ÇÒÌí¼Ó´¥ÆÁʼþ£¬´úÂëÈçÏÂ

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">  
<Button Width="250" Height="75" Content="Next Page" 
ManipulationStarted="Button_ManipulationStarted"/></Grid> ¡·

2 ΪÏîÄ¿Ìí¼ÓÒ»¸öеÄÒ³Ãæ£¬Êó±êÓÒ¼ü--ADD--New Item--Windows Phone Portrait Page£¬Ãû×ÖΪPage1.xaml£¬ÔÚ´ÎÒ³ÃæÖÐÌí¼ÓÒ»¸öÎı¾ºÍÒ»¸ö·µ»Ø°´Å¥£¬´úÂëÈçÏ£º

¡¶ÕâÀïÓеãÒªÌØ±ð˵Ã÷µÄµØ·½¡·

3 ΪMainPage.xamlµÄ´¥ÆÁʼþºÍPage1.xaml´¥ÆÁʼþÌí¼Ó´úÂ루ºÍC#ÆäËûÏîĿһÑù£¬Ò²ÊDzÉÓÃcode-behind£¬´úÂëÔÚxamlÒ³ÃæµÄcsÎļþÖУ©

¡¶ÕâÀïÓеãÒªÌØ±ð˵Ã÷µÄµØ·½¡·

4 ±àÒëºóµãF5ÔËÐгÌÐò£¬Ä£ÄâÆ÷µÚÒ»´ÎÆô¶¯ÐèÒªµÈ´ý£¨ÎÒҲûÓÐÕæ»ú£¬ËùÒÔÎÞ·¨½øÐÐÕæ»úµ÷ÊÔ£©¡£È»ºóµã»÷Next Page°´Å¥³ÌÐò½«µ¼º½½øÈëµ½µÚ¶þ¸ö½çÃæ¡£µÚ¶þ¸ö½çÃæÖеã»÷Backµ¼º½»ØÇ°Ò»¸ö½çÃæ¡£¿ÉÒÔ·¢ÏÖWindows Phone³ÌÐòͬWeb³ÌÐòÒ³ÃæÓеãÀàËÆ£¬¶¼ÊÇPageµ¼º½µÄ¸ÅÄÕâ¸öºÍ֮ǰWMƽ̨ºÜ²»Ò»Ñù¡£µ«ÊÇʹÓùýWPF»òSilverlight¾ÍûÓÐÊ²Ã´ÌØ±ðµÄ¡£

5 ½øÈëµÚ¶þ¸öÒ³Ãæºó£¬µã»÷¡¾<--¡¿°´Å¥Ò²ÄÜÍ˻ص½µÚÒ»¸ö½çÃæ£¬Ôڵ㡾<--¡¿°´Å¥£¬¾Í»á¹Ø±Õ³ÌÐò¡£Òª×¢ÒâµÄÊÇ£¬Windows PhoneĿǰûÓÐÌṩÈκÎÍ˳ö³ÌÐòµÄExit·½·¨£¬¶¼ÊÇͨ¹ýÔÚµÚÒ»¸öÒ³Ãæµã»÷¡¾<--¡¿°´Å¥Í˳ö³ÌÐò¡£ÔÚ³ÌÐòÖеã»÷ÖмäµÄHome°´Å¥·µ»Øµ½HomeÁÐ±í£¬´Ëʱ³ÌÐò»á½øÈëÐÝÃߣ¨WP7.1£©»òű®£¨WP7.0£©×´Ì¬£¬Õâ¸öºóÃæ»á½éÉÜ¡£

ÖÁ´ËÎÒÃÇÍê³ÉÁ˵ÚÒ»¸öWindows Phone³ÌÐò£¬ËüºÜ¼òµ¥£¬¿´ÆðÀ´ºÍдһ¸öÆÕͨµÄSilverlight³ÌÐòûÓÐÌ«´óµÄÇø±ð¡£

ËÄ Windows PhoneÏîÄ¿½á¹¹

ÏîÄ¿½¨Á¢ºÃÖ®ºó£¬°üº¬ÁËÒÔÏÂһЩÎļþ£º

AppManifest.xml : ´ËÎļþÖаüº¬Ò»¸ö<Deployment.Parts>µÄ½Úµã¡£Èç¹ûÐèÒªµ÷ÓÃXAPÎļþÖаüº¬µÄÆäËûAssemblyµÄDLLÎļþ£¬¾Í»áÔڴ˽ڵãÏÂÌí¼ÓÒ»¸ö<AssemblyPart/>½ÚµãÀ´ÁоÙÕâЩÎļþ£¬¿ÉÒԲμûÕâÀï¡£

AssemblyInfo.cs : Õâ¸öÎļþ°üº¬Á˶Ե±Ç°³ÌÐò¼¯µÄÐÅÏ¢£¬¿ÉÒÔÔÚÊôÐÔÒ³Ãæ½øÐÐÉèÖÃ

WMAppManifest.xml : Õâ¸öÎļþÖ÷Òª¼Ç¼Á˳ÌÐòµÄÆðÊ¼Ò³Ãæ£¬APPID£¬×÷Õߣ¬Í¼±êÉèÖúͳÌÐò¹¦ÄÜÉèÖá£ÆäÖÐ<Capabilities/>½Úµã¶¨ÒåÁ˳ÌÐòµÄ¹¦ÄÜ£¬±ÈÈçID_CAP_PHONEDIALER±íʾ¿ÉÒÔʹÓõ绰¹¦ÄÜ£¬Èç¹ûûÓÐÕâ¸ö½Úµã£¬µ÷ÓÃÏàÓ¦¹¦ÄÜʱ¾Í»á³ö´í£¬Ïêϸ½éÉܼûÕâÀï¡£Ïà¶ÔÓÚ7.0£¬7.1Ôö¼ÓÁ˶ÔÏà»ú£¬ÁªÏµÈË£¬Ô¼»áÌáÐѹ¦ÄÜ¡£

App.xaml : Õâ¸öÎļþAppÀà¼Ì³ÐÓëApplicationÀ࣬Ëü²¢Ã»ÓпÉÊÓ»¯½çÃæ£¬<Application.Resources/>Ò»°ãÓÃÀ´´æ·Å×ÊÔ´Êý¾Ý¹²È«¾ÖʹÓ᣶ø<Application.ApplicationLifetimeObjects/>½Úµã϶¨ÒåÁËÓëÖ´ÐÐÄ£ÐÍÏà¹ØµÄһЩ·½·¨¡£

App.xaml.cs : AppÀàµÄÁíÒ»²¿·Ö£¬´úÂë°üº¬Á˳ÌÐò³õʼ»¯²Ù×÷ºÍÖ´ÐÐÄ£ÐÍÏà¹ØµÄһЩ·½·¨µÄʵÏÖ¡£

ApplicationIcon.jpg : ÏÔʾÔÚ³ÌÐòÁбíÖеÄͼ±ê£¬´óСΪ62*62

Bcakground.jpg : ÔÚ³ÌÐòÆô¶¯Ê±ÏÔʾµÄͼ±ê£¬´óСΪ173*173s

MainPage.xaml : ³ÌÐòÆô¶¯ºóĬÈÏÏÔʾµÄµÚÒ»¸öÒ³Ãæ£¬Óû§Ò²¿ÉÒÔÔÚWMAppManifest.xmlÖÐÖ¸¶¨Æô¶¯Ò³Ãæ¡£

SplashScreenImage.jpg : ³ÌÐòÆô¶¯Ê±ÏÔʾµÄ»¶Ó­½çÃæ£¬´óСΪ480*800£¬Õâ¸öºÍÉ豸Óйء£

ÒÔÉϽéÉÜÁËÒ»¸öWindows PhoneÏîÄ¿µÄ½á¹¹£¬ºÍSilverlight³ÌÐò½á¹¹ºÜÀàËÆ¡£Ö»ÊÇÅäÖÃÎļþÉÏÓÐÐ©Çø±ð¡£

Îå ×ܽá

ÕâÀïÍê³ÉÁËWindows Phone 7.1»·¾³µÄ´î½¨£¬²¢Íê³ÉÁ˵ÚÒ»¸öWindows Phone³ÌÐò£¬¶ÔÓÚ³ÌÐòÄ£°åºÍÏîÄ¿½á¹¹ÓÐÁËÒ»¸öÈÏʶ¡£ÏÂһƪ½«½éÉÜWindows Phone¿ò¼Ü½á¹¹£¬ÒÔ¼°³ÌÐòÆô¶¯ÔËÐз½Ê½¡£

Windows Phone¿ª·¢£¨¶þ£©-- ¿ò¼Ü½á¹¹ºÍÆô¶¯¹ý³Ì

ÉÏһƪÎÄÕ½éÉÜÁËWindows PhoneµÄ¿ª·¢»·¾³ºÍÒ»¸ö¼òµ¥µÄWindows Phone³ÌÐòµÄÑÝʾºÍ½á¹¹£¬ÕâһƪÎÄÕÂÒªÉîÈëÒ»µã£¬½éÉÜWindows PhoneµÄ¿ò¼Ü½á¹¹ºÍ³ÌÐòÆô¶¯µÄ¹ý³Ì¡£

Ò» Windows Phone ¿ò¼Ü½á¹¹

ÔÚ½øÐÐWindows Phone¿ª·¢Ö®Ç°ÓбØÒªÁ˽âÒ»ÏÂÕû¸öÈ«ÐÂÆ½Ì¨µÄ½á¹¹¡£¶ÔÓÚWindows Phoneƽ̨À´Ëµ£¬Çø±ðÓÚ֮ǰµÄWindows Mobileƽ̨×î´óµÄÇø±ðÊÇËûÔËÐл·¾³ÍêÈ«»ùÓÚ.NET¿ò¼Ü£¬ËûÖ»Ö§³ÖÍйܴúÂë½øÐпª·¢¡£

Windows PhoneÊÇ»ùÓÚ.NET Compact Framework¿ò¼Ü£¬ËùÒÔ¾«¼òÁ˺ܶà×ÀÃæ°æµÄ¹¦ÄÜ¡£µ«ÊÇ»¹ÊÇÌṩÁËËùÐèµÄ»ù±¾¹¦ÄÜ¡£ÈçÉÏͼÖеÄ×îϲãµÄÀ¶É«²¿·Ö£¬¾ÍÊÇ.NET CFÌṩµÄBCLÀà¿â¡£¶øÔÚËûµÄÉϲã¾ÍÊÇApplication Object¡£ÕâÒ»²ã¶¼ÊÇ»ùÓÚ.NET CF¿ò¼Ü¡£ÆäÖаüº¬ÁËÁ½ÖÖ¿ª·¢¿ò¼Ü£º

1.Silverlight Framework £ºÒÔ Silverlight Framework Ϊ»ù´¡µÄ Windows Phone 7 Ó¦ÓóÌÐòÊÇÓÉÒ»¶ÑµÄ Page (¼Ì³Ð×Ô PhoneApplicationPage Àà±ðµÄÑÜÉúÀà±ð) ×é³ÉµÄ£¬Ã¿Ò»¸ö Page ÊÇÒ»¸öÀ©Õ¹ÃûΪ .XAML µÄÎļþ£¬´ú±íÒ»¸ö²Ù×÷»­Ã棬³ÌÐòÉè¼ÆÊ¦¿ÉÒÔÀûÓà Visual Studio 2010 Express for Windows Phone »òÊÇ Expression Blend for Windows Phone À´Éè¼Æ Page µÄÓû§½Ó¿Ú¡£WP7.0ÊÇ»ùÓÚSilverlight3.0£¬WP7.1ÔòÊÇ»ùÓÚSilverlight4¡£¹ØÓÚSilverlight for Windows PhoneºÍSilverlightµÄÇø±ð£¨µã»÷´ò¿ª£©

2.XNA Framework£ºÖ÷ÒªµÄÓÃ;ÔÚÖ§³Ö¿ª·¢ÓÎÏ·³ÌÐò£¬Ìṩ 2D/3D µÄ¶¯»­£¬ÒôЧ£¬¼°¸÷ÖÖÓÎÏ·Ïà¹ØµÄ¹¦ÄÜ£¬Ð­ÖúÓÐÖ¾ÓÚ¿ª·¢ÓÎÏ·³ÌÐòµÄÆóÒµ»ò¸öÈË·¢Õ¹ Windows Phone¡¢Xbox 360¡¢Zune ²¥·ÅÆ÷¡¢ÒÔ¼° Windows 7 ƽ̨µÄÓÎÏ·³ÌÐò¡£
±Ï¾¹Òƶ¯ÊÖ»úƽ̨»¹ÓÐ×Ô¼ºÌØÊâµÄÒ»²¿·Ö¹¦ÄÜ£¬ËùÒÔÔÚÁ½¸ö¿ò¼ÜµÄÉϲãWindows PhoneÌØÓеÄһЩ¹¦ÄÜ£¬±ÈÈçÏà»ú£¬Windows Phone¿Ø¼þ£¬¸ÐÓ¦Æ÷£¬¶àµã´¥¿ØÆÁÄ»£¬Launcher£¬ChooserµÈµÈÀ´ÌṩÏàÓ¦¹¦ÄÜ¡£

ËùÒÔ¾ßÌ嵽ʵ¼Ê¿ª·¢£¬ÎÒÃÇÓÐ2Ì׿ª·¢¿ò¼Ü½øÐÐÑ¡Ôñ£¬¶ÔÓÚ´ó¶àÓ¦ÓóÌÐòÎÒÃÇ¿ÉÒÔÑ¡ÔñSilverlight½øÐпª·¢£¬¶ø¶ÔÓÚÓÎÏ·¿ÉÒÔÑ¡ÔñXNA¡£µ«ÊÇWPÒ²Ìṩ²¿·Ö¹¦ÄÜÏ໥µ÷ÓõŦÄÜ¡£¶ø¶ÔÒÔWP7.1À´Ëµ¿ÉÒÔ½¨Á¢Ò»¸ösilverlightºÍXNA¼¯³ÉµÄ¿ª·¢»·¾³£¨µã»÷²é¿´£©¡£

¶ÔÓÚWindows Phone¿ª·¢À´Ëµ£¬²»½ö¿ÉÒÔʹÓÃ.NET CFºÍsilverlight»òXNA¿ò¼ÜÌṩµÄÕâЩ¹¦ÄÜ£¬»¹ÄÜʹÓÃ΢Èí»ùÓÚÔÆ·þÎñµÄһЩ¹¦ÄÜ¡£±ÈÈçNotification£¬Social£¬ Location£¬Map £¬AzureµÈ·þÎñ¡£ÏÂͼÏÔʾÁËWindows PhoneÉÏÖ§³ÖµÄµÄÔËÐÐʱ¿ò¼ÜºÍ¿ª·¢¹¤¾ß¡£ÏÂÃæµÄÏÔʾÌṩµÄÔË·þÎñÒÔ¼°×¢²á¿ª·¢Õߺͷ¢²¼³ÌÐò¡£ËûÃÇ×é³ÉÁ˶ÔWindows Phone¿ª·¢µÄÈí¼þÖ§³Ö¡£

¶ø¶ÔÓÚÓ²¼þÀ´Ëµ£¬Î¢ÈíͳһÁËÓ²¼þƽ̨£¬Ä¿Ç°ÒªÇóµÄÓ²¼þ°üÀ¨ 800 x 480 »ò 480 x 320 ÆÁÄ»·Ö±æÂÊ£¬Ö§³Ö¶àµã´¥¿Ø£¬ÄÚ½¨ A-GPS ÎÀÐǶ¨Î»ÏµÍ³£¬G-Sensor (Accelerometer)£¬µç×ÓÂÞÅÌ´«¸ÐÆ÷£¬¹âÔ´´«¸ÐÆ÷£¬ÒÔ¼°²»ÐèÒªÖ±½Ó½Ó´¥¾Í¿ÉÒÔÕì²âµ½¸½½üÎïÌåµÄ Proximity Sensor¡£×îÉÙ 500 Íò»­ËصÄÊý×ÖÏà»ú£¬ÄÚ½¨ Codec Óë¶àýÌåÓ°Òô²¥·Å¹¦ÄÜ£¬×îÉÙ 256MB µÄ RAM Óë×îÉÙ 8GB µÄÉÁ´æ£¬GPU (ͼÐδ¦ÀíÆ÷)£¬ARMv7 Cortex/Scorpion »ò¸ü¼ÑµÄ´¦ÀíÆ÷£¬ÒÔ¼° Back¡¢Start¡¢Search Èý¸öÓ²¼þ°´¼ü¡£Ä¿Ç°HTCºÍÈýÐÇÒѾ­ÓеÚÒ»´úµÄWP7ÊÖ»úÉÏÊУ¬¿ÉÒÔ»úÐͺÍROMÐÅÏ¢¿ÉÒԲμû£ºÖÇ»úÍø

¹ØÓÚWindows Phone PlateformµÄÏêϸ½éÉܲμûMSND£¨µã»÷´ò¿ª£©

¶þ Windows Phone 7.1 й¦ÄÜ

Ŀǰ×îа汾µÄϵͳÊÇWindows Phone 7.1Beta£¬Ïà¶ÔÓÚWindows PhoneËûÓÐÁ˱ȽϴóµÄ¸Ä¶¯£¬ÅªÇå³þÿһ°æ±¾µÄ¹¦ÄÜ£¬¿ÉÒÔ¸üºÃµÄÁ˽âϵͳºÍÑ¡Ôñ¿ª·¢µÄ°æ±¾¡£

Õ³ÌùºÍ¸´Öƹ¦ÄÜ£º1ÔµĸüÐÂÔö¼ÓÁËÕ³Ìù¸´Öƹ¦ÄÜ

Ö´ÐÐÄ£ÐÍ¿ìËÙÇл»£ºÊµÏÖÁËеÄÖ´ÐÐÄ£ÐÍ£¬Ôö¼ÓÁËÐÝÃß״̬£¬Ê¹µÃÓ¦ÓóÌÐò¿ÉÒÔ¿ìËÙÇл»¡£

ºǫ́³ÌÐò´úÀí£ºÔö¼Óºǫ́´úÀí¹¦ÄÜ£¬¿ÉÒÔÔÚ³ÌÐòûÓÐÔÚǰ̨ÔËÐеÄÇé¿öÏÂÔÚ½øÐÐÌáʾ£¬ÁíÍ⻹Óкǫ́²¥·ÅºÍºǫ́ÏÂÔØ¹¦ÄÜ

¸ÐÓ¦Æ÷APIs£º¹«¿ªÁ˸ÐÓ¦Æ÷µÄAPI£¬ÒÔ±ã³ÌÐò¿ÉÒÔ¶ÔÓ²¼þ½øÐзÃÎÊ¡£

Ö§³ÖSocket£ºÔö¼ÓÁËSocketµÄÖ§³Ö£¬¿ÉÒÔ¿ª·¢»ùÓÚTCPºÍUDPµÄ³ÌÐò£¬·Ç³£ÓÐÓá£

Ïà»úÊý¾Ý£ºÔö¼ÓÁ˶ÔÏà»úԭʼÊý¾Ý·ÃÎʵŦÄÜ

ÍÆËÍÏûÏ¢£ºÔö¼ÓÁËÍÆËÍÏûÏ¢µÄ¹¦ÄÜ£¬¸ü¼ÓÎȶ¨

SilverlightºÍXNA¼¯³É£º¿ÉÒÔÔÚͬһ¸öPageÏÂʹÓÃsilverlightºÍXNA½øÐпª·¢

³ÌÐòÅäÖÃÎļþ£ºÌṩÁ˶ԳÌÐòºÍÓÎÏ·½øÐÐÅäÖõŦÄÜ

WebBrowser £ºä¯ÀÀÆ÷¿Ø¼þ¿ÉÒÔÖ§³ÖIE9£¬²¢ÓÅ»¯ÁËHTML5µÄ±íÏÖ

±¾µØÊý¾Ý¿â£ºÔö¼ÓÁ˶ÔÊý¾Ý¿âµÄÖ§³Ö£¬¿ÉÒÔʹÓÃLINQ to SQL½øÐвÙ×÷

Launchers and Choosers £º ÌṩÁËÐµĹ¦ÄÜ£¬ÈçBing Map£¬AddressµÈ

È«Çò»¯ºÍ±¾µØ»¯£ºÖ§³Ö°üÀ¨ÖÐÎÄÔÚÄÚµÄ16ÖÖÓïÑÔ

¾ßÌåWindows Phone 7.1еĸĽø£¨µã»÷´ò¿ª£©

¹ØÓÚ³ÌÐòµÄ¼æÈÝÐÔ£¬¼òµ¥ËµWP7.0¿ª·¢µÄ³ÌÐò¿ÉÒÔÔÚOS7.0ºÍ7.1ÉÏÔËÐУ¬¶ø7.1¿ª·ÅµÄ³ÌÐòÔÚ7.0ÉÏ¿ÉÄÜ»áʧ°Ü¡£¾ßÌ弿ÈÝÐÔÎÊÌâ²Î¼ûÕâÀï

Èý Window Phone ³ÌÐòÆô¶¯¹ý³Ì

ÔÚÎÒÃÇÉÏһƪÎÄÕÂÖУ¬ÎÒÃÇдÁËÒ»¸ö¼òµ¥µÄDemo³ÌÐò¡£³ÌÐòÆô¶¯ºóÏÔʾµÄÊÇMainPage.xamlÒ³Ãæ¡£ÄÇô³ÌÐòÊÇÈçºÎ³É¹¦Æô¶¯µÄÄØ£¿

1 xapÎļþ

´ò¿ª³ÌÐòºó£¬ÎÒÃǶԳÌÐò½øÐбàÒ룬ȻºóÎÒÃÇ¿ÉÒÔÔÚ/PhoneApp2/Bin/DebugĿ¼Ï¿´µ½Ãû×ÖΪPhoneApp.xapÎļþ£¬Õâ¸ö¾ÍÊÇÎÒÃdzÌÐòµÄ°ü¡£²¿Êðµ½ÊÖ»úÉϾÍÄÜÔËÐС£ÕâÆäʵÊÇÒ»¸öѹËõÎļþ£¬ÎÒÃÇ¿ÉÒÔÓÃ7-ZIPÀ´½âѹ¡£

ÆäÖаüº¬Á˳ÌÐòʹÓõÄ3¸öJPGÎļþ£¬PhoneApp2.dll¾ÍÊÇÎÒÃdzÌÐò¹¦ÄܵÄDLLÎļþ£¬¶øAppMainfest.xamlºÍWMAppMaingest.xmlÎļþÔòÌṩÁËÓ¦ÓóÌÐòµÄһЩÐÅÏ¢¡£

ÉÏͼÊÇÒ»¸ösilverlightµÄXAP°üµÄ½á¹¹£¬WP»ùÓÚsilverlight¿ª·¢µÄ³ÌÐò½á¹¹ÊÇÏàËÆµÄ£¬²»¹ý¶àÒ»¸öWMAppMaingest.xmlÎļþ£¬ÓÃÀ´ÅäÖÃÊÖ»úÏà¹ØµÄһЩÐÅÏ¢£¬Õâ¸öÔÚÉÏһƪÓнéÉܹý¡£Ê×ÏÈÀ´¿´¿´AppManifest.xaml Îļþ£¬Ëü±êʶ´ò°üµÄ³ÌÐò¼¯ºÍÓ¦ÓóÌÐòÈë¿Úµã¡£

[xhtml:nogutter:collapse] + expand sourceview plaincopyprint?
<Deploymentxmlns="http://schemas.microsoft.com/client/2007/deployment" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"EntryPointAssembly= "PhoneApp2"EntryPointType="PhoneApp2.App"RuntimeVersion="4.7.50308.0">
<Deployment.Parts>
<AssemblyPartx:Name="PhoneApp2"Source="PhoneApp2.dll"/>
</Deployment.Parts>
</Deployment>

Õâ¸öºÍÉÏһƪÎÄÕÂÏà±È£¬ÒѾ­×Ô¶¯Éú³ÉÁËһЩÄÚÈÝ¡£ÎÒÃÇÀ´¼òµ¥¿´Ò»Ï£º

1.EntryPointAssembly £º ¶¨ÒåÁ˳ÌÐòµÄÈë¿Ú³ÌÐò¼¯µÄÃû×Ö£¬Ò²¾ÍÊÇ¿ªÊ¼ÔËÐÐʱ¼ÓÔØµÄ³ÌÐò¼¯£¬ÕâÀï¾ÍÊÇÎÒÃǵÄPhoneApp2.dll

2.EntryPointType £º ±íʾÁ˳ÌÐòµÄÈë¿Úµã£¬ÕâÀïÖ¸¶¨ÁËÏîÄ¿ÖеÄApp¶ÔÏó

3.RuntimeVersion £º ±íʾµ±Ç°silverlightÔËÐеİ汾£¬ÕâÀï¿ÉÒÔ¿´µ½£¬WP7.1ÊÇ»ùÓÚSL4¡£

4.Deployment.Parts £º ´Ë½ÚµãÖаüº¬ÁËxap°üÖеijÌÐò¼¯ÁÐ±í¡£

¹ØÓÚxap°ü½á¹¹ºÍ´ËÎļþ½á¹¹¾ßÌåÐÅÏ¢£¬Ïêϸ¿ÉÒԲο¼silverlightµÄÓ¦ÓóÌÐò½á¹¹¡£¶ÔÓÚWMAppMaingest.xmlÎļþûºÍ±àÒëǰûÓб仯£¬Ïêϸ½á¹¹ÉÏһƪÎÄÕÂÖÐÓÐÁ´½Ó½éÉÜ¡£

2 App.xamlºÍApp.xaml.csÎļþ

AppMaingest.axmlÖж¨ÒåÁ˳ÌÐòµÄÈë¿Úµã£¬ÆäÖÐÖ¸¶¨ÁËApp¶ÔÏó¡£Í¨¹ý²é¿´Õâ2¸öÎļþ£¬ÎÒÃÇ·¢ÏÖApp.xaml.csÎļþÖж¨ÒåÁËAppÀ࣬´ËÀà¼Ì³ÐÓëApplicationÀ࣬¶øApp.xamlÎļþµÄ¸ù½ÚµãApplicationÖ¸¶¨ÁËx:Class="PhoneApp2.App"£¬Õâ¸ö±íʾ°ÑxamlÎļþÖеÄÄÚÈÝͬxaml.csÀàÖÐÄÚÈݺϲ¢¡£ÕâÀïËùÓÐÄÚÈݱàÒëºó»áºÏ²¢µ½AppÀàÖС£

µ±Ê¹Óà Silverlight µÄÍÐ¹Ü API ´´½¨Ó¦ÓóÌÐòʱ£¬±ØÐë´´½¨Ò»¸ö´Ó Application ÅÉÉúµÄÀà¡£Application ÀàÌṩӦÓóÌÐòͨ³£ÒªÇóµÄÈô¸É·þÎñ¡£ËüÖ÷Òª±íʾӦÓóÌÐò´úÂëÔÚ Silverlight ²å¼þÉúÃüÖÜÆÚÖеÄÈë¿Úµã¡£ApplicationÀàµÄÒÔϹ¦ÄÜ£º

1.Ó¦ÓóÌÐòÉú´æÆÚ¹ÜÀí

2.Ó¦ÓóÌÐò×ÊÔ´Îļþ¼ÓÔØ

3.δ¾­´¦ÀíµÄÒì³£´¦Àí

4.À©Õ¹ÐÔ

[xhtml:nogutter:collapse] + expand sourceview plaincopyprint?
<Application
x:Class="PhoneApp2.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone">

<!--Application Resources-->
<Application.Resources>
</Application.Resources>

<Application.ApplicationLifetimeObjects>
<!--Required object that handles lifetime events for the application-->
<shell:PhoneApplicationService
Launching="Application_Launching"Closing="Application_Closing"
Activated="Application_Activated"Deactivated="Application_Deactivated"/>
</Application.ApplicationLifetimeObjects>

</Application>

ÎÒÃÇ¿´µ½App.xamlÎļþÖж¨ÒåÁË<Application.Resources>½Úµç£¬Õâ¸ö¿ÉÒÔÓÃÀ´¶¨ÒåһЩȫ¾ÖµÄ×ÊÔ´±ðÈçstring£¬style£¬±ÊË¢µÈ£»<Application.ApplicationLifetimeObjects>ÔòÊÇÌṩÁ˶ÔApplicationµÄÀ©Õ¹ÐÔ£¬ÕâÀïÌṩÁËPhoneApplivationServiceµÄÀ©Õ¹·þÎñ£¬´ÓÃû×ÖÎÒÃǾÍÄÜÖªµÀÕâ¸öÊÇÓйØPhoneµÄÀ©Õ¹£¬ÒòΪĬÈϵÄSilverlightÊÇûÓеġ£Õâ¸öÊÇλÓÚMicresoft.Phone.dllÖУ¬Õâ¶ù·þÎñÌṩÁË4¸öÓëÊÖ»úÓйصķ½·¨¡£¹ØÓÚÀ©Õ¹ÐÔ¿ÉÒԲμûsilvrlightµÄÀ©Õ¹·þÎñ

[c-sharp] view plaincopyprint?
public PhoneApplicationFrame RootFrame {get; privateset; }

public App()
{
UnhandledException += Application_UnhandledException;
InitializeComponent();
InitializePhoneApplication();
PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Disabled;
}

ÒÔÉÏÊÇApp.xaml.csÎļþÖеĴúÂ룬Ê×Ïȶ¨ÒåÁËÒ»¸öPhoneApplicationFrameÊôÐÔRootFrame£¬ÔÚ¹¹Ô캯ÊýÖж¨ÒåÁËUnhandledExceptionÀ´´¦Àíδ´¦ÀíÒì³££¬ÕâÊÇApplicationµÄÒ»¸ö¹¦ÄÜ£»InitializeComponentÊdzõʼ»¯·½·¨£¬µã»÷F12µ¼º½µ½App.g.i.csÎļþ£¬Õâ¸öÊÇϵͳ×Ô¶¯¸ù¾ÝxamlÉú³ÉµÄ¡£

[c-sharp] view plaincopyprint?
public void InitializeComponent()
{
if (_contentLoaded)
{
return;
}
_contentLoaded = true;
System.Windows.Application.LoadComponent (this,new System.Uri("/PhoneApp2;component/App.xaml", System.UriKind.Relative));
}

ÕâÀïµ÷ÓÃÁËApplication.LoadComponent·½·¨¡£Õâ¸ö·½·¨µÄ×÷ÓÃÊÇ ¼ÓÔØÎ»ÓÚÖ¸¶¨Í³Ò»×ÊÔ´±êʶ·û (URI) ´¦µÄ XAML Îļþ£¬²¢½«Æäת»»ÎªÓɸà XAML ÎļþµÄ¸ùÔªËØÖ¸¶¨µÄ¶ÔÏóµÄʵÀý¡£ÕâÀï¾ÍÊÇÉú³ÉAppÀàµÄʵÀý¶ÔÏó¡£ÓÃReflector¿´Ã»ÓдúÂ룬ÎÒÃÇ¿ÉÒÔ¿´¿´SilverlightÖеÄʵÏÖ£º

[c-sharp:nogutter:collapse] + expand sourceview plaincopyprint?
//²¿·Ö´úÂë
public staticvoid LoadComponent(object component, Uri resourceLocator)
{
XcpImports.CheckThread();
Type componentType = null;
uint hr = 0;

if (IsComponentUri(resourceLocator))
{
string partName = null;
string assemblyName =null;
string assemblyVersion = null;
string assemblyKey =null;
if (!QuirksMode.ShouldUseSL3Parser())
{
ResourceManagerWrapper.GetAssemblyNameAndPart(resourceLocator, out partName, out assemblyName,out assemblyVersion, out assemblyKey);
}
if (componentType == null)
{
componentType = component.GetType();
}
UnmanagedMemoryStream resourceForUri = ResourceManagerWrapper. GetResourceForUri(resourceLocator, componentType)as UnmanagedMemoryStream;
if (resourceForUri !=null)
{
uint length = (uint) resourceForUri.Length;
hr = XcpImports.Application_LoadComponent(ManagedObjectReference. ConditionalWrap(component), resourceLocator.OriginalString, resourceForUri, length, assemblyName);
resourceForUri.Close();
}
}
else
{
hr = XcpImports.Application_LoadComponent(ManagedObjectReference. ConditionalWrap(component), resourceLocator.OriginalString,null, 0, string.Empty);
}
}

Ê×ÏÈ»ñµÃÁ˳ÌÐò¼¯Ïà¹ØµÄÐÅÏ¢£¬È»ºó»ñµÃUriµÄ×ÊÔ´£¬×îºóXcpImportsÊÇ.NET²¿·Öµ÷ÓÃcore²¿·ÖµÄ½Ó¿Ú£¬core²¿·ÖÊÇÓÃC++±àдµÄCore presentation framework£¬Ö÷Òª¹¦ÄÜÊÇXAML parser, UI Core, Inputs, DRM(digital rights management), Media, Deep ZoomµÈ£¬¶àÊýÊÇÐèÖ±½ÓÓë¾ßÌåµÄ²Ù×÷ϵͳAPI´ò½»µÀµÄ¹¦ÄÜ£¨¿ÉÒԲο¼£ºSilverlight CoreCLR½á¹¹Ç³Îö£©¡£×îÖÕ¼ÓÔØµÄÊÇÒ»¸öApplication_LoadComponentNativeµÄNative·½·¨¡£

[c-sharp:nogutter:collapse] + expand sourceview plaincopyprint?
nternal staticunsafe uint Application_LoadComponent(IManagedPeerBase componentAsDO, string resourceLocator, UnmanagedMemoryStream stream,uint numBytesToRead, string assemblyString)
{
if (assemblyString ==null)
{
assemblyString = string.Empty;
}
CheckThread();
byte* pXamlStr = (stream != null) ? stream.PositionPointer : null;
uint num = Application_LoadComponentNative(JoltHelper.Context, componentAsDO.NativeObject, (uint) resourceLocator.Length, resourceLocator, numBytesToRead, pXamlStr, (uint) assemblyString.Length, assemblyString);
GC.KeepAlive(componentAsDO);
return num;
}

[SecurityCritical, DllImport("agcore", EntryPoint="Application_LoadComponent")]
private staticextern unsafeuint Application_LoadComponentNative(IntPtr pContext, IntPtr pComponent,uint cUriStringLength, [MarshalAs(UnmanagedType.LPWStr)]string uriString, uint cXamlStrLength,byte* pXamlStr, uint cAssemblyStrLength, [MarshalAs(UnmanagedType.LPWStr)]string assemblyStr);

Õâ¸öʵÀý¿ÉÒÔͨ¹ýApplication.CurrentÊôÐÔ»ñµÃ¡£´ÓÏÂÃæµÄ¹¹Ô캯Êý¿ÉÒÔ¿´³ö£¬_current±»ÉèÖÃΪthis£¬zeroÖ¸ÕëÖ¸ÏòÁËCreateObjectByTypeIndex·½·¨¸ù¾ÝnativeTypeIndex´´½¨µÄApp native¶ÔÏó¡£¶øÔÚCurrentÖлñµÃ¶ÔÏóʵÀýʱ£¬ÏÈ»ñµÃÕâ¸öÖ¸Õ룬ȻºóEnsureManagedPeer·½·¨Ê¹ÓÃActivator.CreateInstance(type) ´´½¨ÁËApplicationµÄʵÀý¡£

[c-sharp:nogutter:collapse] + expand sourceview plaincopyprint?
internal Application(uint nativeTypeIndex)
{
_current = this;
IntPtr zero = IntPtr.Zero;
zero = XcpImports.CreateObjectByTypeIndex(nativeTypeIndex);
this.m_nativePtr = new NativeObjectSafeHandle();
this.m_nativePtr.NativeObject = zero;
ManagedPeerTable.Add(zero, this);
this._coreTypeEventHelper =new CoreTypeEventHelper();
Type type = base.GetType();
uint isCustomType = 0;
if (!TypeProxy.IsCoreType(type))
{
isCustomType = 1;
}
XcpImports.NotifyHasManagedPeer(zero, 11, isCustomType);
this._hasElevatedPermissions = XcpImports.Application_GetHasElevatedPermissions();
Deployment current = Deployment.Current;
this.Starting += new StartupEventHandler(this.Application_Starting);
this.Started += new EventHandler(this.Application_Started);
this.Exiting += new EventHandler(this.Application_Exiting);
this.Exited += new EventHandler(this.Application_Exited);
}

public static Application Current
{
[SecuritySafeCritical]
get
{
IntPtr ptr;
if (_current != null)
{
return _current;
}
XcpImports.Application_GetCurrent(out ptr);
if (ptr != IntPtr.Zero)
{
Application application = (Application) ManagedPeerTable.EnsureManagedPeer(ptr, 0,typeof(Application));
XcpImports.ReleaseNativeObject(ref ptr);
return application;
}
return null;
}
}

private staticobject EnsureManagedPeer(IntPtr unmanagedPointer,int typeIndex, Type type, bool preserveManagedObjectReference)
{
if (unmanagedPointer == IntPtr.Zero)
{
return null;
}
object managedPeer = null;
if (!TryGetManagedPeer(unmanagedPointer, preserveManagedObjectReference,out managedPeer))
{
XcpImports.CheckThread();
if ((typeIndex == 0) && (type ==null))
{
typeIndex = XcpImports.GetNativeTypeIndex(unmanagedPointer);
}
FrameworkCallbacks.Initialize();
DependencyObject.StaticNativePointer = unmanagedPointer;
managedPeer = (typeIndex > 0) ? CoreTypes.GetCoreWrapper(typeIndex) : (Activator.CreateInstance(type)as IManagedPeerBase);
DependencyObject.StaticNativePointer = IntPtr.Zero;
}
return managedPeer;
}

ÒÔÉÏÊÇSilverlightºÍWindows Phone¶¼ÓеÄÏÂÃæ¿´¿´Windows PhoneÖвÅÓеIJ¿·Ö¡£ÔÚ¹¹Ô캯ÊýÖÐPhoneApplicationService.Current.UserIdleDetectionModeͨ¹ýÀ©Õ¹·þÎñÉ趨ÁËÊÇ·ñ×Ô¶¯¼ì²â¿ÕÏУ¬ÁíÍâÎļþÖаüº¬ÁËLaunching£¬Activated£¬Deactivated£¬ClosingËĸö·½·¨£¬Õâ4¸ö·½·¨ÊǺÍWindows PhoneÖ´ÐÐÄ£ÐÍÓйصģ¬ºóÃæ»á½éÉÜ¡£ÔÚ¹¹Ô캯ÊýÖл¹ÓÐÒ»¸öInitializePhoneApplication()·½·¨£¬´Ë·½·¨ÊµÏÖÈçÏ¡£

[c-sharp:nogutter:collapse] + expand sourceview plaincopyprint?
private void InitializePhoneApplication()
{
if (phoneApplicationInitialized)
return;

RootFrame = new PhoneApplicationFrame();
RootFrame.Navigated += CompleteInitializePhoneApplication;

RootFrame.NavigationFailed += RootFrame_NavigationFailed;

phoneApplicationInitialized = true;
}

private void CompleteInitializePhoneApplication(object sender, NavigationEventArgs e)
{
if (RootVisual != RootFrame)
RootVisual = RootFrame;

RootFrame.Navigated -= CompleteInitializePhoneApplication;
}

´Ë·½·¨È·±£Ö»»á±»Ö´ÐÐÒ»´Î£¬Ê×ÏÈÉú³ÉÁËÒ»¸öPhoneApplicationFrame¶ÔÏ󣬱£´æµ½RootFrameÖУ¬È»ºó°ó¶¨ÁËNavigatedʼþ¡£Ò²¾ÍÊÇÔÚFrameµ¼º½Ö®ºóÖ´ÐÐCompleteInitializePhoneApplication¡£´Ë·½·¨ÖаÑRootFrameÉèÖõ½RootVisualÖС£RootVisualÓÃÀ´»ñÈ¡»òÉèÖÃÖ÷ÒªÓ¦ÓóÌÐòÓû§½çÃæ¡£Ö»ÄÜ´Ó´úÂëÉèÖÃRootVisual ÊôÐÔµÄÖµÒ»´Î¡£

[c-sharp:nogutter:collapse] + expand sourceview plaincopyprint?
public UIElement RootVisual
{
get
{
return (XcpImports.Application_GetVisualRoot()as UIElement);
}
[SecuritySafeCritical]
set
{
XcpImports.CheckThread();
if ((value == null) || !XcpImports.DependencyObject_IsPointerValid(value))
{
throw new InvalidOperationException(Resx.GetString("Application_InvalidRootVisual"));
}
XcpImports.Application_SetVisualRoot(value);
this._rootVisual = value;
}
}

´úÂë¿ÉÒÔ¿´µ½XcpImports.Application_SetVisualRoot·½·¨£¬ËµÃ÷×îÖÕÒ²»¹Êǽ»¸øÁËCore presentation frameworkÈ¥´¦Àí£¬¿ªÊ¼ÏÔʾÎÒÃdzÌÐòµÄ½çÃæ¡£

3 ÓëSilverlightÇø±ð

[c-sharp] view plaincopyprint?
public App()
{
this.Startup += this.Application_Startup;
this.Exit += this.Application_Exit;
this.UnhandledException +=this.Application_UnhandledException;

InitializeComponent();
}

private void Application_Startup(object sender, StartupEventArgs e)
{
this.RootVisual = new MainPage();
}

ÒÔÉÏÊÇSilverlight4³ÌÐòAppÀàµÄ·½·¨¡£ÔÚStartupÖÐÉèÖÃÁËRootVisualΪMainPage£¬ÄÇôÔÚÆô¶¯Ê±¾Í»áÏÔʾMainPage.xamlÒ³Ãæ¡£ÎÒÃÇÖªµÀFrameºÍPageÊÇSilverlightÖÐÓÃÀ´µ¼º½µÄÀà¡£¶øÔÚWindows PhoneÖÐÔòÊÇʹÓÃPhoneApplicationFrameºÍPhoneApplicationPage£¬ÆäÖÐFrameÊÇÈÝÆ÷¿ØÖƵ¼º½£¬¶øPageÊÇÔÚFrameÖУ¬ÓÃÀ´ÏÔʾÓû§½çÃæ¡£¶ÔÓÚsilverlightÎÒÃÇ¿ÉÒÔ°Ñ´úÂëÐÞ¸ÄΪÀàËÆWindows PhoneµÄ´úÂ룺

[c-sharp:nogutter:collapse] + expand sourceview plaincopyprint?
public Frame RootFrame {get; privateset; }


private void Application_Startup(object sender, StartupEventArgs e)
{
RootFrame = new Frame();
this.RootVisual = RootFrame;
RootFrame.Navigate(new Uri("/MainPage.xaml", UriKind.Relative));
//this.RootVisual = new MainPage();
}

ÎÒÃÇͬÑù¶¨ÒåÒ»¸öRootFrame£¬Éú³ÉÒ»¸öFrame¶ÔÏó£¬ÉèÖõ½RootVisualÉÏ£¬È»ºóͨ¹ýFrameµ¼º½µ½MainPage.xaml¡£½á¹û¿ÉÒÔÕý³£ÏÔʾ£¬µ«ÊÇÈç¹ûÎÒ°ÉNavigate·½·¨×¢Ïúµô£¬½á¹û¿Õ°×£¬Ã»ÓÐÈκÎÏÔʾ¡£µ«ÊÇÎÒÃÇ¿´ÉÏÃæWindows PhoneÖв¢Ã»Óмûµ½Navigate·½·¨£¬µ«ÊÇ»¹ÊÇÏÔʾÁËMainPage.xaml½çÃæ¡£

4 ÏÔʾµÚÒ»¸ö½çÃæ

ΪʲôûÓе÷ÓÃNavigation»¹ÊÇÏÔʾÁËMainPageÄØ¡£²»ÒªÍü¼ÇÎÒÃÇ»¹ÓÐÒ»¸öÅäÖÃÎļþWMAppMaingest.xml¡£

[xhtml:nogutter:collapse] + expand sourceview plaincopyprint?
<Tasks>
<DefaultTask Name ="_default"NavigationPage="MainPage.xaml"/>
</Tasks>

ÆäÖÐTask½ÚµãÊÇApplicationϵÄ×ӽڵ㣬ÆäÖÐÓÐÒ»¸öÊôÐÔÊÇNavigationPage£¬MSDN½âÊÍÊÇÕâÀïÊÇÖ¸¶¨Æô¶¯Ê±Òªµ¼º½µ½µÄPageÒ³Ãæ¡£ÎÒÃÇÊÔÊÔ°ÑÕâ¸öÐÞ¸ÄΪPage1.xaml¡£ÔËÐкó·¢ÏÖ£¬³ÌÐòµÚÒ»¸ö½çÃæÏÔʾΪPage1.xaml¡£

[c-sharp] view plaincopyprint?
private void CompleteInitializePhoneApplication(object sender, NavigationEventArgs e)
{
if (RootVisual != RootFrame)
//RootVisual = RootFrame;
RootVisual = new MainPage();

RootFrame.Navigated -= CompleteInitializePhoneApplication;
}

È»ºóÎÒÃǼÌÐø×ö¸öÐ޸ģ¬Ö±½Ó°ÑRootVisualÉèÖÃΪMainPage¡£ÔËÐС£¡£½á¹ûÏÔʾµÄÊÇMainPage¡£ËùÒÔ¶ÔÓÚRootVisualÀ´ËµÊÇÉèÖõÚÒ»¸öÏÔʾµÄÔªËØ¡£µ±ÎÒÃÇ´«µÝ¸øËûµÄÊÇÒ»¸öPage»òUserControlʱ£¬ËûÖ±½ÓÏÔʾ´ËÒ³ÃæµÄÄÚÈÝ£»Èç¹û´«µÝÒ»¸öFrameʱ£¬Èç¹ûÉèÖÃÁËSource»òÔòµ÷ÓÃÁËNavigation£¬¾Í»áµ¼º½µ½Ö¸¶¨µÄPageÏÔʾ£¬Èç¹û²»Ö¸¶¨£¬FrameÊÇÒ»¸öÈÝÆ÷£¬Ã»ÓÐÉèÖÃPage¾Í²»»áÏÔʾÈκζ«Î÷£¬ËùÒÔ»á³öÏÖÉÏÃæ¿Õ°×µÄ½á¹û¡£¶ÔÓÚWP7À´Ëµ£¬³ÌÐò´ÓWMAppMaingest.xmlÖÐÅäÖõõ½Ê×Ò³²¢ÉèÖõ½ÁËSourceÖС£

5 Æô¶¯½çÃæ

ÔÚ³ÌÐòÆô¶¯¹ý³ÌÖУ¬»áÖ´ÐÐStartupºÍApplication_Launching·½·¨¡£ÕâÀï¿ÉÄÜÊÇһЩºÄʱ²Ù×÷£¬Èç¹ûʱ¼ä³¬¹ý1S£¬¾ÍÍÆ¼öʹÓÃÆô¶¯½çÃæ£¬¸ÄÉÆÓû§ÌåÑé¡£½¨ÒéÊDz»ÔÚÔÚÆô¶¯¹ý³ÌÖÐ×ö¹ý¶à²Ù×÷£¬ÒòΪÆô¶¯Ê±¼ä³¬¹ý10S³ÌÐò»á±»Ö±½ÓÖÕÖ¹µô¡£

Æô¶¯»­ÃæÍ¼Æ¬ÃûΪSplashScreenImage.jpg£¬ÎÒÃÇÔÚÆô¶¯µÄStartup»òÕßApplication_LaunchingÖÐThread.sleep(2000), À´Ä£ÄâÆô¶¯Ê±µÄºÄʱ²Ù×÷¡£ÕâÑùÆô¶¯½çÃæ¾Í¿ÉÒÔÏÔʾ¡£µ«ÊÇºÜÆæ¹Ö£¬ÎÒÔÚÄ£ÄâÆ÷Éϸù±¾²»»áÏÔʾ£¬È»ºóÏÂÔØÁË΢ÈíµÄÀý×ÓSplash Screen Sample£¬ÔËÐкóҲûÓÐÏÔʾ³öÀ´¡£²»ÖªµÀʲôԭÒò¡£

ÔÚInitializePhoneApplication·½·¨Öв¢Ã»ÓÐÉèÖÃRootVisual£¬ÕâÊÇΪÁËÈÃÆô¶¯»­ÃæÔÚÖ÷½çÃæ×¼±¸³ÊÏÖʱÈÔ¾ÉÓÐЧ¡£ÎÒÃǰÑRootVisual·Åµ½´Ë·½·¨×îºóÒ²ÊÇ¿ÉÐеģ¨ºÍsilverlightÒ»Ñù£©¡£²»¹ýÕâÀïÓе㲻Ã÷°×£¬ÎªÊ²Ã´ÓÃNavigatedʼþ£¬ÊDz»ÊÇÆô¶¯»­ÃæÍê³Éºó»áÒý·¢Õâ¸öʼþ£¿

[c-sharp] view plaincopyprint?
private void Application_Startup(object sender, StartupEventArgs e)
{
//this.RootVisual = new Page1();
RootFrame = new Frame();
RootFrame.Navigated += new System.Windows.Navigation.NavigatedEventHandler(RootFrame_Navigated);
bool ret = RootFrame.Navigate(new Uri("/Page1.xaml", UriKind.Relative));
//RootFrame.Source = new Uri("/Page1.xaml", UriKind.Relative);
}

void RootFrame_Navigated(object sender, System.Windows.Navigation.NavigationEventArgs e)
{
RootFrame.Navigated -= RootFrame_Navigated;
this.RootVisual = RootFrame;
}

±ÈÈçÎÒÃǰÉÒ»¸ösilverlightÐ޸ijɺÍWP7ÀàËÆµÄ£¬ÔÚNavigatedÖвÅÉèÖÃVisualRoot£¬ËäÈ»Navigate·½·¨·µ»ØÁËTrue£¬µ«ÊDz¢Ã»Óд¥·¢´Ëʼþ£¬¶ø³ÌÐòÒòΪûÓÐÉèÖÃVisualRootÒ»Ö±Ôڵȴø×´Ì¬Ã»ÓÐÈκÎÏÔʾ¡£ËùÒÔ¶ÔÓÚWindows PhoneÀ´ËµÒ»¶¨ÊÇ´¥·¢ÁË´Îʼþ£¬µ«ÊÇÈçºÎ´¥·¢µÄĿǰ²»Çå³þ¡£

ÁíÍâÆô¶¯Ê±·½·¨Ö´ÐеÄ˳ÐòÊÇApp()-->Startup()-->Application_Launching();

ËÄ ×ܽá

ÕâһƪÎÄÕ´ó¸Å½éÉÜÁËWindows PhoneµÄ¿ò¼Ü½á¹¹ºÍ7.1°æ±¾µÄһЩ¸üС£È»ºóÉÔ΢ÉîÈëµÄÁ˽âÁËÕû¸ö³ÌÐòµÄÆô¶¯¹ý³ÌÉæ¼°µÄһЩÄÚÈÝÒÔ¼°ºÍSilverligthÖ®¼äµÄÇø±ð¡£×ܵÄÀ´Ëµ¾ÍÊÇËÞÖ÷³ÌÐòͨ¹ýAppMainfest.xamlÀ´»ñÈ¡³ÌÐòµÄÈë¿Úµã£¬È»ºó³õʼ»¯µ÷ÓÃApplication.LoadComponent·½·¨À´Éú³ÉApp¶ÔÏóµÄʵÀý£¬½ÓÏÂÀ´³õʼ»¯ÊÖ»ú£¬¶¨ÒåÒ»¸öFrame£¬£¬Í¨¹ýWMAppMaingest.xmlÎļþ»ñÈ¡Æô¶¯Ê±µÄPageÒ³ÃæÉèÖõ½Frame£¬È»ºóÉèÖõ½RootVisualÀ´ÏÔʾ´ËPage¡£

±¾ÎÄÉæ¼°´úÂë½ÏÉÙ£¬ÔÚÉÏһƪÎÄÕµĴúÂëÉÏÐ޸ļȿɡ£

   
3040 ´Îä¯ÀÀ       27
 
Ïà¹ØÎÄÕÂ

ÊÖ»úÈí¼þ²âÊÔÓÃÀýÉè¼ÆÊµ¼ù
ÊÖ»ú¿Í»§¶ËUI²âÊÔ·ÖÎö
iPhoneÏûÏ¢ÍÆËÍ»úÖÆÊµÏÖÓë̽ÌÖ
AndroidÊÖ»ú¿ª·¢£¨Ò»£©
 
Ïà¹ØÎĵµ

Android_UI¹Ù·½Éè¼Æ½Ì³Ì
ÊÖ»ú¿ª·¢Æ½Ì¨½éÉÜ
androidÅÄÕÕ¼°ÉÏ´«¹¦ÄÜ
Android½²ÒåÖÇÄÜÊÖ»ú¿ª·¢
Ïà¹Ø¿Î³Ì

Android¸ß¼¶Òƶ¯Ó¦ÓóÌÐò
Androidϵͳ¿ª·¢
AndroidÓ¦Óÿª·¢
ÊÖ»úÈí¼þ²âÊÔ
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

androidÈË»ú½çÃæÖ¸ÄÏ
AndroidÊÖ»ú¿ª·¢£¨Ò»£©
AndroidÊÖ»ú¿ª·¢£¨¶þ£©
AndroidÊÖ»ú¿ª·¢£¨Èý£©
AndroidÊÖ»ú¿ª·¢£¨ËÄ£©
iPhoneÏûÏ¢ÍÆËÍ»úÖÆÊµÏÖ̽ÌÖ
ÊÖ»úÈí¼þ²âÊÔÓÃÀýÉè¼ÆÊµ¼ù
ÊÖ»ú¿Í»§¶ËUI²âÊÔ·ÖÎö
ÊÖ»úÈí¼þ×Ô¶¯»¯²âÊÔÑо¿±¨¸æ


Android¸ß¼¶Òƶ¯Ó¦ÓóÌÐò
AndroidÓ¦Óÿª·¢
Androidϵͳ¿ª·¢
ÊÖ»úÈí¼þ²âÊÔ
ǶÈëʽÈí¼þ²âÊÔ
AndroidÈí¡¢Ó²¡¢ÔÆÕûºÏ


ÁìÏÈIT¹«Ë¾ android¿ª·¢Æ½Ì¨×î¼Ñʵ¼ù
±±¾© Android¿ª·¢¼¼Êõ½ø½×
ijÐÂÄÜÔ´ÁìÓòÆóÒµ Android¿ª·¢¼¼Êõ
ijº½Ì칫˾ Android¡¢IOSÓ¦ÓÃÈí¼þ¿ª·¢
°¢¶û¿¨ÌØ LinuxÄÚºËÇý¶¯
°¬Ä¬Éú ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ
Î÷ÃÅ×Ó Ç¶Èëʽ¼Ü¹¹Éè¼Æ