我只是好奇,爲什麼當我通過x:Name
訪問大部分的控制,對於我這樣做是使用x:Key
+我無法從代碼訪問資源(可以使用this.Resources["keyName"]
)爲什麼x設置:名稱上Window.Resources項目不起作用
3
A
回答
3
只要元素包含任何資源,您就可以訪問任何FrameworkElement
上的資源。如果在您的標記中定義,它必須有x:Key
且不能有x:Name
。
如果一個按鈕包含資源,例如,您必須從其集合Resources
訪問它。
var resource = button.Resources["myKey"];
如果你想找到一個對象,其父母或應用程序的資源,使用FindResource()
代替。
var resource = this.FindResource("myKey");
我不明白你的困惑。
4
•x:Key:爲ResourceDictionary中的每個資源(或其他框架中的類似字典概念)設置唯一鍵。 x:Key可能會佔用您在典型的WPF應用程序標記中看到的x:用法的90%。
•x:Name:指定處理對象元素後存在於運行時代碼中的實例的運行時對象名稱。通常,您將經常爲x:Name使用WPF定義的等價屬性。這些屬性專門映射到CLR支持屬性,因此對於應用程序編程更爲方便,其中您經常使用運行時代碼從已初始化的XAML中查找已命名的元素。最常見的這種屬性是FrameworkElement.Name。在特定類型中不支持等效的WPF框架級Name屬性時,您仍然可以使用x:Name。這發生在某些動畫場景中。
出於這個原因,你必須使用關鍵的資源
相關問題
- 1. Java OS X Lion設置應用程序名稱不起作用
- 2. 爲什麼設置expireAfterAccess不起作用?
- 3. 爲什麼設置innerHTML不起作用?
- 4. 爲什麼'tail x:head x'不起作用?
- 5. 爲什麼HangFire重複作業的名稱不起作用?
- 6. 爲什麼設置$ window.location.href在promise中設置時不起作用?
- 7. 嘗試按名稱調用arraylist中的項目。我不知道爲什麼這不起作用 - 家庭作業
- 8. 爲什麼在loadView中設置框架起源不起作用?
- 9. 爲什麼零筆尖名稱不起作用?
- 10. 爲什麼webkit2png不起作用? ImportError:無法導入名稱init_qtgui
- 11. OS X示例項目不起作用
- 12. Java的mac os x dock應用程序名稱設置不起作用?
- 13. 補丁 - 爲什麼相對補丁目標名稱不起作用?
- 14. 爲什麼處置不起作用?
- 15. 爲什麼jQuery.animate位置不起作用?
- 16. 爲什麼我不能設置一個靜態資源的X:名稱在XAML
- 17. 爲什麼if(++ x = ++ y)有效,if(x ++ = ++ y)不起作用?
- 18. (scilab)x = [-6,6] y = 1 /(1 +%e^-x)爲什麼它不起作用?
- 19. 爲什麼使用Autofac設置此webapi 2不起作用?
- 20. 爲什麼Django將2命名爲項目名稱?
- 21. 爲什麼aspx/cs項目在本地複製不起作用?
- 22. 爲什麼我的Django項目不起作用?
- 23. 爲什麼調試在反應項目中不起作用?
- 24. 歐拉項目:素數求和...爲什麼這不起作用?
- 25. 爲什麼我的PayPal按鈕不會顯示項目名稱
- 26. :不起作用,爲什麼?
- 27. 爲什麼設置MasterType時,this.Page.Master不起作用?
- 28. 爲什麼設置true/false值對React狀態不起作用?
- 29. 爲什麼.remove()在我的設置中不起作用?
- 30. 爲什麼這個深度緩存設置不起作用
也許我問這個問題:什麼時候使用X:在第十名:關鍵? – 2010-09-03 08:35:22
對於您定義的任何資源,您都會使用'x:Key'。 'x:Name'用於任何你想在代碼中直接訪問的元素(不是資源)。 – 2010-09-03 09:13:33