檔案屬性可以用來訓示項目系統對應檔案執行的操作。具體的操作見下文。visual basic和visual c#的檔案都具有4個屬性:“filename”、“buildacition”、“customtool”、”customtoolnamespace“。

此屬性指定将標明的源檔案複制到輸出目錄所依據的條件。如果從不将檔案複制到輸出目錄,請選擇“不複制”;如果總是将檔案複制到輸出目錄,請選擇“始終複制”;如果僅當檔案比輸出目錄中同名的現有檔案新時才複制此檔案,請選擇“更新則複制”。
none:不在項目輸出組中包含該檔案,并且在生成程序中不會對其進行編譯。例如包含文檔的文本檔案,如自述檔案。
compile:将該檔案編譯到生成輸出中。此設定用于代碼檔案。
content:不編譯該檔案,但将其包含在“内容”(content)輸出組中。例如,此設定是 .htm或其他類型 web檔案的預設值。
embedded resource:将該檔案作為 dll或可執行檔案嵌入主項目生成輸出中。此設定通常用于資源檔案。
applicationdefinition:和page類似,但隻用于silverlight的啟動頁面(預設是app.xaml)。
page:silverlight中所有的usercontrol/page/childwindowxaml都屬于”page”build,其他的buildaction不能将build action不能将codebehind檔案和xaml檔案連接配接起來。
codeanalysisdictionary:自定義的codeanalysis字典。
resource:embedsthe file in a shared (by all files in the assembly with similar setting)assembly manifest resource named appname.g.resources
splashscreen:silverlight的歡迎界面。
designdata:sampledata types will be created as faux types. use this build action when the sampledata types are not creatable or have read-only properties that you want todefined sample data values for.
designdatawithdesigntimecreatabletypes:sampledata types will be created using the types defined in the sample data file. usethis build aciton when the sample data types are creatable using their defaultempty constructor.
entitydeploy:适用于entity架構。
注意:當在資源編輯器中添加了圖像時,它會将”生成操作”設定為“無”,這是因為.resx檔案會引用該圖像檔案。在生成時,該圖像會被拖入到從.resx檔案建立的.resources檔案中。然後可以通過為.resx檔案自動生成的強類型類輕松的通路該圖像。是以,不應該将此設定更改為”嵌入的資源”,因為這樣做的話會在程式集中包含圖像兩次。
關于資源檔案的使用,下文有介紹。
通過在“屬性”視窗中單擊“filename”屬性,然後鍵入新名稱,可以重命名檔案。請注意,如果更改檔案的名稱,則visual studio 将自動重命名與之關聯的任何 .vb或 .resx檔案。
自定義工具是可用于在設計時将檔案從一種類型轉換為另一種類型的元件。例如,自定義工具可以是一個資料集代碼生成器,它在一個 xml 架構 (.xsd)檔案中讀取,在以程式設計方式公開其表和列的代碼檔案中生成類。産品中有一個預定義的可用自定義工具清單;此屬性使您能夠了解哪一個自定義工具适用于某一檔案。在極少的情況下,可能需要更改此屬性的值。此屬性的值必須為空白或内置自定義工具之一。
若要設定或更改自定義工具,請單擊“屬性”視窗中的“customtool”屬性,然後鍵入自定義工具的名稱。
如果已經将某自定義工具配置設定到項目,則“customtoolnamespace”屬性将允許您指定一個命名空間,用于配置設定給自定義工具生成的代碼。當為 customtoolnamespace 屬性指定一個值時,自定義工具生成的代碼将被放入指定的命名空間中。如果此屬性為空,則生成的代碼将被放入轉換後的檔案所在檔案夾的預設命名空間中;對于 visual basic,它是項目的根命名空間,對于 visual c#,它對應于該檔案夾的“defaultnamespace”屬性的設定。
資源檔案通常是應用程式使用的任意非可執行的資料檔案,如圖像、音頻和視訊檔案。資源檔案在某些上下文中還可能具有特定的含義。例如,在應用程式本地化的上下文中,資源檔案指代 .resx檔案,您可以在本地化的附屬程式集中部署這些檔案。
一般通過統一資源辨別符(uri)在代碼或 xaml中引用資源檔案。所需的 uri格式取決于部署檔案的方式。您還可以選擇指定相對或絕對 uri。
補充:什麼是相對和絕對uri?
a)相對uri指定相對于應用程式根或引用xaml的資源檔案位置。例如,”http://www.example.com/resources/picture.png“表示指定域中資源檔案夾中的一個檔案。如果資源檔案所在的域不是應用程式包的宿主域,必須指定絕對 uri。
b)絕對uri是指定資源檔案的确切位置,繞過回退機制。
補充:什麼是相對于應用程式根、相對于引用xaml和指向其他程式集的uri?
a. 具有前導斜杠的相對 uri表示相對于應用程式根的位置, 例如”/resources/image.png”。
應用程式根是應用程式包的根檔案夾或伺服器上應用程式包的位置。 相對 uri回退機制首先搜尋應用程式包,然後搜尋伺服器。 如果在前導斜杠後包括路徑,則在這兩個位置中搜尋相同的檔案夾層次結構。
a. 不具有前導斜杠的相對 uri表示相對于引用 xaml的位置。 如果在代碼中使用相對uri,則引用 xaml 是您的代碼操作的 xaml。
如果引用 xaml位于檔案夾中,可以引用相對于該位置的其他檔案夾中的檔案。 但是,不能在應用程式根上進行搜尋,例如”../resources/image.png”。 此 uri搜尋包含 xaml的檔案夾所在級别上的資源檔案夾,假定該檔案夾不是應用程式根。
如果從應用程式包加載引用 xaml但是未找到引用的資源檔案,則使用預設回退機制。 應用程式包中引用 xaml的路徑用于在伺服器上搜尋。 例如,考慮應用程式包中以下位置的 xaml檔案:/pages/xaml/mypage.xaml。 在這種情況下,回退機制将在伺服器上的以下位置搜尋”../resources/image.png”:/pages/resources/image.png。
如果将引用 xaml編譯為程式集,則必須在該同一程式集中嵌入資源檔案。 在這種情況下,uri回退機制由resourcemanager類提供。 此回退機制使用語言和區域性設定來查找附屬程式集中的資源檔案。
c)還可以引用嵌入某程式集的資源檔案,該程式集不是包含引用 xaml 的程式集。 在這種情況下,uri使用以下格式:”/assemblyshortname;component/resourcelocation, 例如”/silverlightlibraryassembly;component/image.png”。 請注意,需要使用前導斜杠和component關鍵字(後跟一個斜杠)。
對于其他嵌入的資源,此 uri格式使用resourcemanager類提供的回退機制。
system.resources命名空間支援3種資源檔案:
.txt檔案,隻能有字元串資源。因為不能被嵌入到 assembly中,是以很容易暴露,被客戶修改。最大缺點是僅支援字元串資源,是以不推薦使用。
.resx檔案,由 xml組成,可以加入任何資源,包括二進制。同樣不能被嵌入到 assembly 中。在 system.resources名字空間中有專用讀寫的類。vs.net建立這種檔案然後将其轉成 .resources檔案并根據設定将其嵌入到 assembly中。
.resources檔案,pe格式,可以加入任何資源。唯一可以被嵌入到 assembly 的檔案,在 system.resources名字空間中有專用讀寫的類。
在 visual studio中,可以将資源檔案添加到 silverlight項目并通過設定其”生成操作”值來為部署配置這些資源檔案。 可以為 silverlight項目中的資源檔案使用以下生成操作:
• 資源: 此生成操作會将檔案嵌入項目程式集。 您可以将此選項用于應用程式和庫項目,并且在應用程式包的内部或外部部署這些程式集。
• 内容: 此生成操作會将檔案包含到應用程式包中,而不嵌入項目程式集。 将此選項用于包中多個程式集共享的資源檔案。
• 無: 此生成操作不會将檔案包含到應用程式包或程式集中。 将此選項用于要按需檢索的資源檔案。 通常在與應用程式包所在伺服器位置相同的地方部署按需檔案。
注意:在visual studio中的“屬性”視窗提供了“生成操作”下拉清單的其它幾個值。但是當要應用到silverlight項目時, 隻能選擇前3項。silverlight嵌入資源比如始終使用“資源”生成操作,而非“嵌入的資源”生成操作,這是因為後者使用了silverlight無法識别的格式。
在xaml中給button空間添加背景圖檔想必都是知道的,下面我們來看看如何在背景給button添加背景圖檔。我們建立一個wpf工程,在xaml中添加好button空間後,輕按兩下來處理click事件。
注意要将該圖檔設定成content(内容)。
但如果将最後編譯得到的exe檔案複制到其他位置後打開,便不再加載出圖檔,這時我們需要将圖檔添加到資源檔案中。
輕按兩下添加的資源檔案,選擇要添加的檔案類型,另外有”添加現有檔案“等選擇。
添加完成後會出現以下式樣。
回到背景代碼中。由于資源檔案中是bitmap類型,需要對其進行轉換。
轉換之後直接添加到button的background屬性即可。
ok,本篇部落格到此為止了,非常感謝aran的指導。
感謝通路,希望對您有所幫助。 歡迎關注或收藏、評論或點贊。
為使本文得到斧正和提問,轉載請注明出處:
http://blog.csdn.net/nomasp