Application.FindResource(Object) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
public:
System::Object ^ FindResource(System::Object ^ resourceKey);
public object FindResource (object resourceKey);
member this.FindResource : obj -> obj
Public Function FindResource (resourceKey As Object) As Object
參數
- resourceKey
- Object
要尋找之資源的名稱。
傳回
要求的資源物件。 如果找不到要求的資源,則會擲回 ResourceReferenceKeyNotFoundException。
例外狀況
範例
下列範例示範如何使用 FindResource 來尋找資源,以及在找不到資源時處理 ResourceReferenceKeyNotFoundException 。
void findResourceButton_Click(object sender, RoutedEventArgs e) {
try {
object resource = Application.Current.FindResource("UnfindableResource");
}
catch (ResourceReferenceKeyNotFoundException ex) {
MessageBox.Show("Resource not found.");
}
}
Private Sub findResourceButton_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
Try
Dim resource As Object = Application.Current.FindResource("UnfindableResource")
Catch ex As ResourceReferenceKeyNotFoundException
MessageBox.Show("Resource not found.")
End Try
End Sub
備註
FindResource 會先查看指定資源的應用程式範圍資源。 應用程式範圍資源是由 Application管理,而且會從 Resources 屬性公開。 如果在一組應用程式範圍資源中找不到指定的資源, FindResource 則接下來會搜尋系統資源。 系統資源是由使用者定義的殼層資源,包括色彩、字型和殼層組態。 這些會分別從 SystemColors、 SystemFonts和 SystemParameters 類型公開為靜態屬性。 為了用來 FindResource 取得它們,這些類型也會公開設計為傳遞至 FindResource的資源索引鍵屬性,例如 IconWidthKey。
因為 FindResource 會傳回 物件,所以如果找到資源,您必須將傳回的值轉換成適當的類型。
重要
如果您針對找不到的索引鍵呼叫這個方法,則會擲回例外狀況。 如果您不想要處理呼叫 所產生的例外狀況,請改為呼叫 FindResourceTryFindResource ;TryFindResource在找不到要求的資源時傳回參考,而且不會擲回null
例外狀況。
這個方法是安全線程,可以從任何線程呼叫。