我不知道如何在代码中使用已定义的应用程序样式资源。 我已定义:
<Application.Resources> <Style x:Key="OrangeButton" TargetType="{x:Type Button}">
我在我的应用程序的XAML部分中使用此资源,如:
<Button Name="Button_Start" style="{StaticResource OrangeButton}" Margin="0">
它工作正常,我也可以通过代码
更改按钮样式Button_Start.Style = CType(FindResource("RedButton"), Style)
但仅限于我创建新项目时自动创建的VB文件。如果我添加一个新的类文件并尝试执行相同的操作,则说:
Name 'FindResource' is not declared
因此,我的问题是,如何在我的应用程序中的所有不同类文件中使用Application资源。
彼得
答案 0 :(得分:3)
FindResource
方法由FrameworkElement
类定义,因此只有在您的类扩展了它或者您有一个FrameworkElement
实例才能从中开始资源查找时它才可用
但是,如果您知道自己的资源位于Application
级别,则可以使用TryFindResource
或Resources
,如下所示(C#,但应该很容易推断出VB):
object resource;
if (Application.Current.TryFindResource("RedButton", out resource))
{
Style indirectStyle = (Style)resource;
}
//or use this
Style directStyle = Applications.Current.Resources["RedButton"] as Style;
答案 1 :(得分:0)
感谢您的回答,我不确定我是否理解您所写的内容,但我现在可以使用代码
MyButton.Style = CType(Application.Current.Resources("GreenButton"), Style)
非常好。 彼得