Q:

WPF / C#: Is it considered bad practice to put resources in Application and casting Application. Current to access them? 

I have a type MyApplication that derives from Application.  The whole program has only 1 Application object running the entire time.  If some shared resources such as strings, ints and some configuration values are placed in MyApplication, what do you think are acceptable ways to access them from other classes with no reference to the application object?  Is it ok to access a public string in MyApplication by calling ((MyApplicationType)Application. Current).SomeString?  Or should I explicitly add a way to reference the Application object?  
How about methods?  Can I also access the application's method by calling ((MyApplicationType)Application. Current).SomeMethod()?  It definitely works but I'm not clear about the implications and whether this is considered bad practice. 

A:

According to remark of MSDN, I think it is OK to do that. 
But I think defining resources in the ResourceDictionary is better way and you could use it in XAML / C#, and easier to do localisation. 
You could refer to links:
http://msdn.microsoft.com/en-us/library/ms750613.aspx
http://msdn.microsoft.com/en-us/library/bb613547.aspx
Remarks
Application is a per-AppDomain singleton type that implements the static Current property to provide shared access to the Application instance for the current AppDomain.  This design guarantees that state managed by Application, including shared resources and state, is available from a single, shared location. 
This property is thread safe and is available from any thread. 
For the method, I think that depends on what your method does.  
If your method just returns temporary file path, why don't you make it static?