Wpf 用C语言访问外部资源#

Wpf 用C语言访问外部资源#,wpf,xaml,resourcedictionary,Wpf,Xaml,Resourcedictionary,我有一个wpf应用程序,我想通过创建资源字典来隐藏一些代码复杂性。 我有一个名为“SubFolder\LoginPanel.xaml”的外部文件。 我将其创建为一个资源字典,并将引用添加到App.xaml文件中 在LoginPanel.xaml中,我定义了一些自定义颜色、画笔和两个故事板:sbShowLoginMenu、sbHideLoginMenu。 在我的MainWindow.xaml中,我可以毫无问题地引用定义的笔刷。不过,我也想访问我的故事板,但要从C#代码中输入鼠标 如果我将故事板复制

我有一个wpf应用程序,我想通过创建资源字典来隐藏一些代码复杂性。 我有一个名为“SubFolder\LoginPanel.xaml”的外部文件。 我将其创建为一个资源字典,并将引用添加到App.xaml文件中

在LoginPanel.xaml中,我定义了一些自定义颜色、画笔和两个故事板:sbShowLoginMenu、sbHideLoginMenu。 在我的MainWindow.xaml中,我可以毫无问题地引用定义的笔刷。不过,我也想访问我的故事板,但要从C#代码中输入鼠标

如果我将故事板复制到MainWindow.xaml文件中,故事板将正常工作,如果我将其从MainWindow.xaml中删除,它将看不到资源。它只看到MainWindow.xaml中定义的资源。 我的问题是如何让代码正常工作,以便从资源字典访问情节提要项

我的猜测是,我必须向“Window”标记添加一些内容,例如xmlns:rd=“clr namespace:LoginPanel”。我知道这不是正确的语法,但我找不到任何关于这类问题的文档


编辑:当我尝试var sb=FindResource(“sbShowLoginMenu”)时,调试器返回“未找到资源”

嗯,我终于能够设计出一个搜索条件,给出正确的答案。


故事板基本上是有状态的对象,不能放在资源字典中

您是否尝试过var sb=Application.Current.FindResource(“sbShowLoginMenu”)?这将为您获取app.xaml中指定的资源。您可能需要将外部资源字典添加到主窗口资源的目录中。@adminSoftDK,谢谢您的建议。这也不起作用,我仍然没有找到资源。@Clemens我不确定你在问什么。当我尝试将ResourceDictionary重新定位到MainWindow.xaml时,我得到一个错误,指出“资源只能设置一次”。