是否可以在 WPF 中的资源字典后面设置代码。例如,在按钮的用户控件中,您可以在 XAML 中声明它。按钮单击的事件处理代码是在控件后面的代码文件中完成的。如果我要创建一个带有按钮的数据模板,如何在资源字典中为其按钮单击编写事件处理程序代码。
最佳答案
我认为您要问的是您想要 ResourceDictionary 的代码隐藏文件。你完全可以做到这一点!事实上,您可以按照与窗口相同的方式进行操作:
假设您有一个名为 MyResourceDictionary 的 ResourceDictionary。在 MyResourceDictionary.xaml 文件中,将 x:Class 属性放入根元素中,如下所示:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="MyCompany.MyProject.MyResourceDictionary"
x:ClassModifier="public">
然后,使用以下声明创建一个名为 MyResourceDictionary.xaml.cs 的代码隐藏文件:
namespace MyCompany.MyProject
{
partial class MyResourceDictionary : ResourceDictionary
{
public MyResourceDictionary()
{
InitializeComponent();
}
... // event handlers ahead..
}
}
你就完成了。您可以将任何您想要的内容放在后面的代码中:方法、属性和事件处理程序。
== Windows 10 应用程序更新 ==
以防万一您正在使用 UWP,还有一件事需要注意:
<Application x:Class="SampleProject.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:rd="using:MyCompany.MyProject">
<!-- no need in x:ClassModifier="public" in the header above -->
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<!-- This will NOT work -->
<!-- <ResourceDictionary Source="/MyResourceDictionary.xaml" />-->
<!-- Create instance of your custom dictionary instead of the above source reference -->
<rd:MyResourceDictionary />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
关于wpf - 是否可以在 WPF 中的资源字典后面设置代码以进行事件处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/92100/