资源的WPF代码隐藏?

资源的WPF代码隐藏?,wpf,resources,Wpf,Resources,我正在开发一个wpf应用程序,直到最近,我在xaml的主窗口的资源部分中有一个ResourceDictionary。资源字典包含一个DataTemplate,用于设置窗口中多个列表框的样式。此datatemplate的xaml包含指向事件处理程序的指针,例如: <Button n:Name="btnClickMe" Content="Click Me!" LeftMouseButtonUp="btnClickMe_Click" /> 我最近决定将窗口的内容拆分为单独的用户控件,

我正在开发一个wpf应用程序,直到最近,我在xaml的主窗口的资源部分中有一个ResourceDictionary。资源字典包含一个DataTemplate,用于设置窗口中多个列表框的样式。此datatemplate的xaml包含指向事件处理程序的指针,例如:

<Button n:Name="btnClickMe" Content="Click Me!" LeftMouseButtonUp="btnClickMe_Click" />

我最近决定将窗口的内容拆分为单独的用户控件,并将我的ResourceDictionary移动到它自己的文件中。但是,当然,资源字典文件没有代码隐藏文件。我怎样才能把它连接起来,就像我描述的那样把事情分开


提前谢谢

您可以将代码添加到ResourceDictionary中;只需确保正确引用了类名。例如,在ResourceDictionary中,如果使用AppStyles.xaml,则xaml文件将具有以下类:

x:Class="Client.App.Shell.themes.AppStyles"
在代码隐藏AppStyles.xaml.cs中,您将确保类:

namespace Client.App.Shell.themes
{
    public partial class AppStyles
    ...
我想你应该考虑使用。 网上有很多资源,这里有一些可能对你有所帮助


您可以添加一个新类,并将其命名为与资源字典相同的名称加上
.cs
扩展名,Visual Studio将自动进行设置,使其成为代码隐藏文件


例如,如果您有一个名为
Buttons.xaml
的资源字典,请添加一个名为
Buttons.xaml.cs

的文件,并且不要忘记从代码隐藏类的构造函数调用InitializeComponent——据我所知,没有内置的方法让VS为您这样做!实际上,在我当前应用程序中的实现中,出于某种原因,它不需要InitializeComponent()。我猜这是因为它实际上并没有编译任何视觉效果,只是充当字典,但我不是100%确定。可能是因为我们使用这种技术进行友好的字典合并,即能够书写而不是任何咒语。如果您使用后一种语法,那么我相信您是对的,InitializeComponent可能不是必需的。对不起,给您添了点麻烦!