2011-11-20 40 views

回答

2

不是具有相同的意義。 StaticResources是「靜態」的,因爲它們的值在Xaml解析期間被解析。該XamlParser將在必要時檢查資源字典祖先FrameworkElementResource性質也都在同一XAML,然後Application.Resources解決資源。

如果你碰巧知道在哪裏可以找到你想要使用C#代碼來分配資源,那麼它在克勞斯的回答一樣簡單。但是,如果您只知道資源的名稱,但不知道它在哪個字典中找到了哪個字典,那麼它就更易於使用。

可以編寫一個例程(您可以在SO或其他地方找到一個例程),您可以使用VisualTreeHelper查看所有Resource屬性來查找可視樹。你或許可以逃避這一點,但請注意,這可能會搜索比原來的Xaml版本更多的字典,並且它可能會讓你獲得一些意想不到的價值。

3

A StaticResource是一個靜態定義的資源,通常在<X.Resources>元素中爲任何元素或頁面定義。

在C#中,你只需用X.Resources["MyResource"]訪問它像你應該做的{StaticResource MyResource}

相關問題