微軟推出Common XAML UI

jopen 10年前發布 | 9K 次閱讀 XAML UI

  在 .NET 開發人員中間,一直有人抱怨基于 XAML 的不同用戶界面種類太多。該問題開始于 Silverlight,它有一套與 WPF 類似但不同的控件。Silverlight for Windows Phone 增加了第三套,而 XAML for WinRT 則增加了第四套。

  在 4 月 2 日的 Build 主題演講中,我們聽說微軟最終已經開始了整合過程,推出了 Common XAML UI。該 UI 框架基于 XAML for WinRT,允許同樣的 UI 代碼在手機、平板電腦、臺式電腦、最終在 Xbox One 上共享。

  Common UI 的基礎是一個稱為“共享項目”的新項目類型。這是 Visual Studio 的一個新概念,其工作方式與可移植類庫有很大的不同。一個共享項目不能單獨編譯成 DLL 或 EXE。相反,它會在構建時合并到一個或多個傳統的項目類型中。傳統項目的非正式名稱為“項目頭(project heads)”。

  面板、按鈕、文本框/按鈕等核心基元在 Windows 和 Windows Phone 上將會有相同的行為。Hub、AppBar/CommandBar、日期/時間選擇器、ListView、浮出控件和媒體等高級基元在兩個平臺上將會有相 同的 API,但行為不同。Ads SDK 在兩個平臺上也有共用的 API 簽名,但也是行為不同。

  需要注意的是,部分功能會悄無聲息地失效。例如,如果在 CommandBar 中有太多的按鈕,那么 Windows Phone 將只渲染前面的幾個。

  雖然許多控件可以根據屏幕尺寸的不同伸縮,但有時候,開發人員需要針對某些設備定制控件的行為。一種實現方式是使用特定于平臺的自定義控件。共享控件可以引用這些特定于平臺的自定義控件,只要控件在每個項目頭里有正確的名稱。

  提高代碼重用的另一種選擇是在后臺代碼中使用條件編譯和#if def。從這個意義上講,它就像在項目之間使用軟鏈接共享源代碼文件的經典方式。

  資源文件提供了定制用戶體驗的第三種方式,用法與本地使用相同。以命令欄按鈕為例,它們如何能按照預期在手機上小寫,在臺式電腦上首字母大寫。

  雖然大部分 API 現在可以共享,但有些特性并不是在所有平臺都可用。最值得注意的有:

  僅與于 Windows 平臺的 API

  • SearchBox
  • Settings Flyout
  • </ul>

      僅用于 Windows Phone 平臺的 API

    • Pivot
    • AutoSuggestBox
    • ContentDialog
    • Maps
    • System Chrome
    • Progress area, in-call UI
    • </ul>

        Windows 和 Windows Phone 的后退按鈕行為不同,因此可能需要圍繞它們做些自定義工作。另外,有必要針對文件選擇器、共享和設置編寫特定于平臺的代碼。

        Visual Studio 2013 Update 2 的所有版本都提供了 Common XAML 和 Universal Apps。

      來自: InfoQ
                          <span id="shareA4" class="fl">                          </span>
       本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
       轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
       本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!