This documentation is archived and is not being maintained.

Application.FindResource Method

Searches for a user interface (UI) resource, such as a Style or Brush, with the specified key, and throws an exception if the requested resource is not found (see Resources Overview).

Namespace:  System.Windows
Assembly:  PresentationFramework (in PresentationFramework.dll)

public Object FindResource(
	Object resourceKey


Type: System.Object
The name of the resource to find.

Return Value

Type: System.Object
The requested resource object. If the requested resource is not found, a ResourceReferenceKeyNotFoundException is thrown.


The resource cannot be found.

FindResource will first look in application-scope resources for the specified resource. Application-scope resources are managed by Application, and are exposed from the Resources property. If the specified resource is not found in the set of application-scope resources, FindResource then next searches the system resources. System resources are shell resources defined by the user, and include colors, fonts, and shell configurations. These are exposed from the SystemColors, SystemFonts, and SystemParameters types, respectively, as static properties. To use FindResource to acquire them, these types also expose resource key properties that are designed to be passed to FindResource; for example, IconWidthKey.

Because FindResource returns an object, you must cast the returned value to the appropriate type if the resource is found.

Important noteImportant

If you call this method for a key that cannot be found, an exception is thrown. If you do not want to handle exceptions that result from calling FindResource, call TryFindResource instead; TryFindResource returns a null reference when a requested resource cannot be found, and does not throw an exception.

This method is thread safe and can be called from any thread.

The following example shows how to use FindResource to find a resource, and to handle ResourceReferenceKeyNotFoundException if the resource is not found.

void findResourceButton_Click(object sender, RoutedEventArgs e) {
  try {
    object resource = Application.Current.FindResource("UnfindableResource");
  catch (ResourceReferenceKeyNotFoundException ex) {
    MessageBox.Show("Resource not found.");

.NET Framework

Supported in: 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.