FrameworkElement.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
請求資源的金鑰識別碼。
傳回
被要求的資源。 若未找到使用該金鑰的資源,則會拋出例外。 UnsetValue例外情況下也可能回傳一個值。
例外狀況
resourceKey 找不到,且該事件不存在事件 UnhandledException 處理程序。
-或-
resourceKey 但未被發現,該 Handled 房產也在 false 事件 UnhandledException 中。
resourceKey 是 null。
範例
以下範例取得一個命名資源,並將其鑄造成適當的類型以填補屬性。
void SetBGByResource(object sender, RoutedEventArgs e)
{
Button b = sender as Button;
b.Background = (Brush)this.FindResource("RainbowBrush");
}
Private Sub SetBGByResource(ByVal sender As Object, ByVal e As RoutedEventArgs)
Dim b As Button = TryCast(sender, Button)
b.Background = CType(Me.FindResource("RainbowBrush"), Brush)
End Sub
備註
Important
如果你呼叫這個方法來處理找不到的金鑰,就會拋出例外。 如果你不想處理呼叫 FindResource時產生的例外,請直接呼叫 TryFindResource 。
TryFindResource 當找不到請求的資源時會回傳 null ,且不會拋出例外。
如果呼叫元素找不到該資源,接著搜尋邏輯樹中的父元素,接著是應用程式、主題,最後是系統資源。 此查找方法與動態資源參考標記時的搜尋方式相同。 欲了解更多資源查詢資訊,請參閱 XAML 資源。
通常你會立即將一個回傳值投射 FindResource 到你設定的屬性類型,並搭配回傳的資源值。
資源鍵不一定是字串。 例如,主題層級的控制項樣式會刻意與控制項的 相符 Type ,而控制項的應用程式或頁面樣式通常也使用相同的按鍵慣例。 詳情請參閱 樣式與模板 或 XAML 資源。