共用方式為


Application.FindResource(Object) 方法

定義

使用指定的索引鍵搜尋使用者介面 (UI) 資源,例如 StyleBrush,如果找不到要求的資源, (請參閱 XAML 資源) ,則會擲回例外狀況。

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 則接下來會搜尋系統資源。 系統資源是由使用者定義的殼層資源,包括色彩、字型和殼層組態。 這些會分別從 SystemColorsSystemFontsSystemParameters 類型公開為靜態屬性。 為了用來 FindResource 取得它們,這些類型也會公開設計為傳遞至 FindResource的資源索引鍵屬性,例如 IconWidthKey

因為 FindResource 會傳回 物件,所以如果找到資源,您必須將傳回的值轉換成適當的類型。

重要

如果您針對找不到的索引鍵呼叫這個方法,則會擲回例外狀況。 如果您不想要處理呼叫 所產生的例外狀況,請改為呼叫 FindResourceTryFindResource ;TryFindResource在找不到要求的資源時傳回參考,而且不會擲回null例外狀況。

這個方法是安全線程,可以從任何線程呼叫。

適用於

另請參閱