C# 如何访问代码隐藏文件(xaml.cs)之外的样式?
在代码隐藏(C# 如何访问代码隐藏文件(xaml.cs)之外的样式?,c#,wpf,xaml,C#,Wpf,Xaml,在代码隐藏(filename.xaml.csfile)中,我可以像这样成功地访问静态资源: TextBlock elm = new TextBlock(); elm.Style = (Style)this.Resources["myStyle"]; 其中style.xaml添加到filename.xaml中,如下所示: <Page.Resources> <ResourceDictionary Source="resources/Styles.xaml" /> &
filename.xaml.cs
file)中,我可以像这样成功地访问静态资源:
TextBlock elm = new TextBlock();
elm.Style = (Style)this.Resources["myStyle"];
其中style.xaml
添加到filename.xaml
中,如下所示:
<Page.Resources>
<ResourceDictionary Source="resources/Styles.xaml" />
</Page.Resources>
但是,this.Resources[“myStyle”]
在与任何.xaml
文件不关联的.cs
文件中不起作用。在这种情况下如何访问Style.xaml?您应该使用
使用此
作为框架元素
:
elm.Style = (Style)this.FindResource("myStyle");
或在:
“this.FindResource()”也不起作用。它在codebehind中起作用(其中,
this.Resources[]
也起作用),但我想将它用作一个与任何.xaml文件都不关联的.cs文件。@格林:在应用程序上如何?你的意思是,将
添加到App.xaml中吗?注:我更新了问题以进行澄清。但是,this.FindResource()
无法从当前上下文中访问。否,请调用Application.FindResource
。但是,资源应该在应用程序范围内可用。从MSDN:application.Current.FindResource(“UnfindableResource”)代码>
elm.Style = (Style)Application.Current.FindResource("myStyle");