日本好好热aⅴ|国产99视频精品免费观看|日本成人aV在线|久热香蕉国产在线

  • <cite id="ikgdy"><table id="ikgdy"></table></cite>
    1. 西西軟件下載最安全的下載網(wǎng)站、值得信賴的軟件下載站!

      首頁編程開發(fā)其它知識(shí) → 讓你的應(yīng)用在WP7.8系統(tǒng)下支持大磁貼代碼演示

      讓你的應(yīng)用在WP7.8系統(tǒng)下支持大磁貼代碼演示

      相關(guān)軟件相關(guān)文章發(fā)表評(píng)論 來源:西西整理時(shí)間:2013/3/30 9:03:35字體大。A-A+

      作者:西西點(diǎn)擊:9次評(píng)論:0次標(biāo)簽: 大磁貼

      • 類型:源碼相關(guān)大。23.6M語言:中文 評(píng)分:9.1
      • 標(biāo)簽:
      立即下載

      wp7.8 和wp8 Live Tile的區(qū)別在于wp7.8的第三方應(yīng)用僅支持兩種大小的Tile 而wp8支持三種 應(yīng)為wp8開放了三種模板供開發(fā)者使用,而wp7.8僅有一種模板那就是TileTemplate5,這也是默認(rèn)的。Tile展示方式。TileTemplate5 只能夠使用一種大小,它與 Windows Phone 8 中等大小相對(duì)應(yīng)。

      既然wp7.8支持大磁貼的話 那么 wp8 引用 Microsoft.Phone.Shell 下的三種模板如果通過反射的方式 ,wp7.8肯定也能支持,(WP8三種模板了解 給出鏈接http://www.silverlightchina.net/html/zhuantixilie/winphone7/2012/1229/21142.html)

      這里通過反編譯wp8下的Filp模板。當(dāng)然也可以反射Cycle和 Icon 只要屬性和方法和反射中的一一對(duì)應(yīng)就OK

      好了用過代碼演示:

      1:如果想讓你的應(yīng)用支持大磁貼的話(WP8除外) 就必須判斷你手機(jī)版本是 7.5還是7.8

      新建一個(gè) CheckOSVersion類  // wp7.8的最低版本是8858所以就用8858最低版本來判斷

      public class CheckOSVersion

      {

         private static Version TargetedVersion;

              public static bool IsTargetedVersion        

          {        

           get             {   return Environment.OSVersion.Version >= CheckOSVersion.TargetedVersion;             }    

             }

              static CheckOSVersion()         {             CheckOSVersion.TargetedVersion = new Version(7, 10, 8858);         }

      }

      2: 創(chuàng)建反射shell.dll的方法

       private static void SetProperty(object instance, string name, object value)
              {
                  Methodinfo setMethod = instance.GetType().GetProperty(name).GetSetMethod();
                  object[] objArray = new object[1];
                  objArray[0] = value;
                  setMethod.Invoke(instance, objArray);
              }

      //屬性必須和Filp下的對(duì)應(yīng)的屬性一致
              public static void UpdateFlipTile(string title, string backTitle, string backContent, string wideBackContent, int count, Uri tileId, Uri smallBackgroundImage, Uri backgroundImage, Uri backBackgroundImage, Uri wideBackgroundImage, Uri wideBackBackgroundImage)
              {
                  if (CheckOSVersion.IsTargetedVersion)
                  {
                      Type type = Type.GetType("Microsoft.Phone.Shell.FlipTileData, Microsoft.Phone");
                      Type type1 = Type.GetType("Microsoft.Phone.Shell.ShellTile, Microsoft.Phone");
                      foreach (ShellTile activeTile in ShellTile.ActiveTiles)
                      {
                          if (activeTile.NavigationUri.ToString() != tileId.ToString())
                          {
                              continue;
                          }
                          object obj = type.GetConstructor(new Type[0]).Invoke(null);
                          CheckOSVersion.SetProperty(obj, "Title", title);
                          CheckOSVersion.SetProperty(obj, "Count", count);
                          CheckOSVersion.SetProperty(obj, "BackTitle", backTitle);
                          CheckOSVersion.SetProperty(obj, "BackContent", backContent);
                          CheckOSVersion.SetProperty(obj, "SmallBackgroundImage", smallBackgroundImage);
                          CheckOSVersion.SetProperty(obj, "BackgroundImage", backgroundImage);
                          CheckOSVersion.SetProperty(obj, "BackBackgroundImage", backBackgroundImage);
                          CheckOSVersion.SetProperty(obj, "WideBackgroundImage", wideBackgroundImage);
                          CheckOSVersion.SetProperty(obj, "WideBackBackgroundImage", wideBackBackgroundImage);
                          CheckOSVersion.SetProperty(obj, "WideBackContent", wideBackContent);
                          object[] objArray = new object[1];
                          objArray[0] = obj;
                          type1.GetMethod("Update").Invoke(activeTile, objArray);
                          break;
                      }
                  }
              }

       3:開始在進(jìn)入應(yīng)用程序的時(shí)候初始化一下吧 :)

      ShellTile shellTile = ShellTile.ActiveTiles.First<ShellTile>();
                  if (shellTile != null)
                  {

            //判斷是否是wp7.8系統(tǒng)
                      if (CheckOSVersion.IsTargetedVersion)
                      {
                          CheckOSVersion.UpdateFlipTile("愛壁紙HD", "愛壁紙HD", "", "", 0, new Uri("/", UriKind.Relative), new Uri("Background.png", UriKind.RelativeOrAbsolute), new Uri("http://s.qdcdn.com/cl/10920808,256,256.jpg", UriKind.RelativeOrAbsolute), null, new Uri("bigtile.png", UriKind.RelativeOrAbsolute), null);
                      }
                      return;
                  }
                  else
                  {
                      return;
                  }

       //PS :wp7.8下要想支持大磁貼的話還有一個(gè)要求就是這段代碼必須得經(jīng)過初始化,也就是如果 你第二次進(jìn)入軟件的時(shí)候你的應(yīng)用才會(huì)支持

      附上源碼:http://pan.baidu.com/share/link?shareid=476410&uk=85241834

        相關(guān)評(píng)論

        閱讀本文后您有什么感想? 已有人給出評(píng)價(jià)!

        • 8 喜歡喜歡
        • 3 頂
        • 1 難過難過
        • 5 囧
        • 3 圍觀圍觀
        • 2 無聊無聊

        熱門評(píng)論

        最新評(píng)論

        發(fā)表評(píng)論 查看所有評(píng)論(0)

        昵稱:
        表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
        字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過審核才能顯示)
        推薦文章

        沒有數(shù)據(jù)