導航:首頁 > 源碼編譯 > xaml編譯回baml

xaml編譯回baml

發布時間:2023-10-18 14:47:48

㈠ 什麼是XAML簡單給我說一下吧

簡介也就是說在開發一個應用程序時,我們可以將開發工作分成開發人員和設計人員兩個團體分別進行,各自負責後台程序代碼邏輯和前台程序界面的設計,這樣就使得開發人員和設計人員之間的協作更通暢,也極大地發揮了他們的專長。 提示: XAML的發音為"Zamel"(有些人讀做"zammel"),筆者經常開玩笑地將其讀成"折磨"。雖然XAML包含了許多新規則、元素和語法,但是我並不認為學習它是一個折磨人的過程。只要讀者稍微具備一些HTML基礎知識,就可以快速地掌握XAML中的大部分內容。如今在WPF的官方網站上已經提供了一些很實用的工具,可以將其他格式的圖形文件轉換為XAML文件的形式。例如我們就可以將3DMax製作出的3D動畫轉換為XAML,這樣WPF程序就可以直接通過轉換好的XAML文件產生和3DMax製作出的3D動畫相一致的效果。 編輯本段優點 XAML簡化了.Net Framework 3.0 編程模式上的用戶界面創建過程,使用XAML開發人員可以對WPF程序的所有用戶界面元素(例如文本、按鈕、圖像和列表框等)進行詳細的定置,同時還可以對整個界面進行合理化的布局,這與使用HTML非常相似。但是由於XAML是基於XML的,所以它本身就是一個組織良好的XML文檔,而且相對於HTML,它的語法更嚴謹、更明確。預計以後大部分的XAML都可由相應的軟體自動生成,就如同我們現在製作一個靜態頁面時,幾乎不用編寫任何HTML代碼就可以直接通過Dreamweaver軟體生成一個美觀的頁面。但是最初通過手動編寫XAML代碼將是一次絕佳的學習體驗,雖然實現的過程繁雜了些,但是將加深您對XAML語法和各個元素的理解。 大多數的WPF程序可能同時包含程序代碼和 XAML。我們可以使用XAML定義應用程序的初始界面,而後才編寫相應的功能實現代碼。我們可以將邏輯代碼直接嵌入到一個XAML文件中,也可以將它保留在一個單獨的文件中。實際上,能夠用XAML實現的所有功能我們都可以使用程序代碼來完成。因此,我們根本無需使用任何的XAML就可以創建一個完好的WPF程序。一般來說,程序代碼的優勢在於流程處理和邏輯判斷,而不是界面的構建上。而XAML則是集中關注於界面的編程,我們可以將它和其它的.NET語言配合使用,從而構建出一個功能完善、界面美觀的WPF程序。XAML是一種純正的、用來描述用戶界面構成元件和編排方式的標記語言。盡管有部分的XAML語法具備程序設計語言的特性(例如XAML中的Trigger和TRansform),但是XAML並不是一種用於程序設計的語言,它的功能也不是為了執行應用程序邏輯。 微軟推薦XAML被編譯成BAML(Binary Application Markup Language-二進制語言程序標記語言)。XAML和BAML都可以被WPF解析,並且將以一種和HTML相似的方式進行界面的呈現。但是和HTML不同的是,XAML是強類型化的。也就是說,HTML會忽略那些它不能識別的元素和屬性,而XAML必須在識別所有的元素和屬性的情況下,才對頁面進行呈現。盡管在XAML中各個屬性都是以一個個的字元串(例如Background)表示的,但是這些字元串實際上代表的是WPF中的對象,只有被WPF識別的對象才可以作為元素的屬性,所以我們說XAML是強類型化的。 編輯本段XAML並不是HTML 還有一點是我們反復強調的,XAML並不是HTML。盡管XAML在元素的聲明、程序樣式的設置和指定事件處理程序上都和HTML非常類似,但是XAML是基於XML的,它是WPF的外在表現形式。而HTML主是一種標記語言,僅僅是用來為瀏覽器呈現頁面內容。XAML除了用來呈現信息和請求用戶輸入等基本的功能外,它還包含了一些高級的特性,例如它提供了對動畫和3D眾多方面的支持。 XAML是可擴展的,正如它的名字指明的那樣。開發人員可以創建自定義的控制項、元素和函數來擴展XAML。而且由於XAML各元素在本質上就是WPF類的映射,所以開發人員可以很輕松地使用面向對象的技術對XAML元素進行擴展。也就是說我們可以開發一些自定義控制項和組合元素,並將它公開給用戶界面設計人員和其它的開發人員使用。 XAML、Windows Presentation Foundation 和 Microsoft .NET Framework 3.0 XAML 是 Microsoft® Windows Presentation Foundation (WPF) 的一部分。WPF 是 Microsoft® .NET Framework 3.0 中處理基於 Windows 的應用程序或基於 Web 瀏覽器的客戶端應用程序的可視外觀的一類功能。基於 WPF 的應用程序可以在 Windows Vista? 上運行,也可以在安裝了 Microsoft .NET Framework 3.0(如果是基於 Web 瀏覽器的客戶端應用程序,還需要安裝 Internet Explorer 7.0)的早期版本的 Windows 上運行。 編輯本段應用 WPF 藉助 XAML 來利用標記而不是編程語言(如 C#)來構造精美逼真的用戶界面 (UI)。您可以通過定義控制項、文本、圖像、形狀、動畫等各種元素,完全採用 XAML 來製作詳盡的 UI 文檔。由於 XAML 是聲明性語言(類似於 HTML),因此如果需要向應用程序中添加運行時邏輯,則需要添加代碼。例如,如果應用程序僅使用 XAML,您不僅可以創建並動態顯示 UI 元素,還可以對這些元素加以配置令其以受限方式響應用戶輸入(通過使用事件觸發器)。但是,在不添加代碼的情況下,該應用程序將不能執行和響應計算,也不能自行創建新的 UI 元素。XAML 應用程序的代碼存儲在不同於 XAML 文檔的單獨文件中。這種將 UI 設計與基礎代碼相脫離的方式,使得開發人員和設計人員能夠更加密切地合作完成同一個項目,而不會延誤各自的進度。 編輯本段XAML、代碼和Expression Blend 在 Expression Blend 中,任何給定文檔的 XAML 均存儲在 .xaml 文件中。如果 XAML 文檔有相應的基礎代碼,該代碼將存儲在文件名相同但另行添加 .cs 或 .vb 擴展名的文件中。例如,如果 XAML 文檔名為「Window1.xaml」,則當代碼的編程語言為 C# 時,代碼隱藏文件名為「Window1.xaml.cs」。 在生成項目時,WPF 分析程序將讀取該項目的 .xaml 文件,並報告所產生的任何錯誤。同樣地,在 Expression Blend 中打開現有項目時,分析程序將讀取項目文件夾中包含的 .xaml 文件,嘗試分析元素並在「設計」視圖中的美工板上顯示文檔。在這兩種情況下,如果分析程序遇到錯誤,將禁用美工板,並且 Expression Blend 將顯示一則錯誤消息,其中包含用於打開「XAML」視圖的鏈接,以便您糾正該錯誤。分析錯誤也會報告在「結果」面板中的「錯誤」選項卡上。 編輯本段XAML在設計應用程序間發揮資源均衡作用 您可以從 Microsoft® Expression® Design 中將美術資源導出為 XAML,然後將該 XAML 作為資源導入到 Expression Blend 中,以便在 Expression Blend 項目中利用這些資源。其他一些設計應用程序也提供了各種將美術資源轉換為 XAML 的工具。您可以在 Internet 上搜索受信任的站點所發布的轉換工具。

㈡ WPF,反編譯工具能看到XAML嗎

1. 首先,手動創建一個WPF工程(WpfApplicationReflectorDemo)
2. 把生成的WpfApplicationReflectorDemo.exe 拖到ILSpy里
3. 點擊 File -> Save Code...: 相應的代碼會生成到指定地方。
4. 打開應用程序,並且編譯它,此時程序會報如下錯誤。主要原因是缺少相應的WPF所必備的DLL--WindowsBase和PresentationCore。添加這兩個dll之後程序會編譯通過。
5. 這時我們還需要把相應的.XAML添加到應用程序中,我們在WpfApplicationReflectorDemo這個目錄下添加與MainWindow.cs相關的MainWindow.xaml並且修改MainWindow.cs -->MainWindow.xaml.cs.與WPF的風格保持一致。這個時候我們需要把第二步看到的mainwindow.baml.中的內容添加到剛剛加入的MainWindow.xaml

6. 這時我們需要到MainWindow.xaml.cs去刪除一些多餘反編譯出來的屬性,欄位和方法。並且在public class MainWindow加訪問修飾符 partial
[GeneratedCode("PresentationBuildTasks", "4.0.0.0")]
internal TextBlock textBlock1;
private bool _contentLoaded;
public void InitializeComponent()
void IComponentConnector.Connect
7.添加App.xaml.去刪除一些多餘反編譯出來的屬性和方法.並且在public class App加訪問修飾符 partial
[GeneratedCode("PresentationBuildTasks", "4.0.0.0")]
public void InitializeComponent()
7. 最後刪掉mainwindow.baml

閱讀全文

與xaml編譯回baml相關的資料

熱點內容
解壓小視頻手速 瀏覽:150
我的世界伺服器卡沒血如何修改 瀏覽:159
vba入門到精通pdf 瀏覽:111
tomcat怎麼一個伺服器部署 瀏覽:793
phphttps介面 瀏覽:893
javabyte數組int 瀏覽:806
公司網路共享的文件夾 瀏覽:998
拍臉搭配衣服是什麼app 瀏覽:916
歐珀手機怎麼更改加密密碼 瀏覽:508
程序員那麼可愛陸漓氣人語錄 瀏覽:904
python中del刪除 瀏覽:457
華為雲耀伺服器和ecs區別 瀏覽:730
ruby語法編譯語言 瀏覽:569
U盤加密以後文件破損 瀏覽:287
改變路由器加密類型 瀏覽:306
java換行空格 瀏覽:834
程序員的等級有哪些 瀏覽:728
小學編程教師試講15分試講視頻 瀏覽:226
wincc編譯在哪 瀏覽:476
華為演算法比賽 瀏覽:553