我想以編程方式獲取更靜態的資源,我會在XAML:編程方式訪問Silverlight的靜態資源
<TextBlock Text="{Binding Source={StaticResource My.Text.Key}}" />
這工作我的靜態資源是否在TextBlock的定義,一些父元素(如用戶控件)甚至應用程序。看起來,StaticResource綁定表達式知道如何遍歷元素樹,或者元素本身。我希望做同樣的事情編程:
<UserControl x:Class="MyCustomControl" ...>
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Resources.xaml"/> <!-- Sets 'My.Text.Key' to System.String 'Hello, World!' -->
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>
</UserControl>
public partial class MyCustomControl
{
public MyCustomControl()
{
InitializeComponent();
string myCustomValue = this.Resources[MyCustomValue] as string; // myCustomValue becomes null!
}
}
即使在這個簡單的測試,我的資源似乎無法通過程序訪問。這是我嘗試真正做到的簡化版本:通過一個附有自定義動態屬性的元素(例如uiElement.Resources [key])來查找靜態資源。
當我從密鑰中取出「點」(例如「MyTestKey」而不是「My.Test.Key」)時,我可以開始以編程方式查看資源。是否有關於XAML或代碼中資源命名的規則 - – Trinition 2009-11-25 16:33:19