在WPF中,是否可以将代码设置在资源字典中用于事件处理?

14 浏览
0 Comments

在WPF中,是否可以将代码设置在资源字典中用于事件处理?

在WPF中,可以将代码设置在资源字典的代码后面吗?例如,在用户控件中,您在XAML中声明一个按钮。按钮点击的事件处理代码在该控件后面的代码文件中完成。如果我要创建一个包含按钮的数据模板,如何在资源字典中编写它的按钮点击事件处理程序。

admin 更改状态以发布 2023年5月20日
0
0 Comments

我不赞同“ageektrapped”的做法... 使用部分类并不是一种好的做法。那么将字典从页面中分离出来的目的是什么呢?

从代码后台,您可以使用以下方式访问x:Name元素:

Button myButton = this.GetTemplateChild("ButtonName") as Button;
if(myButton != null){
   ...
}

如果您想在自定义控件加载时连接到控件,可以在OnApplyTemplate方法中执行此操作。必须重写OnApplyTemplate才能执行此操作。这是一种常见的做法,可以使您的样式与控件分离。(样式不应该依赖于控件,但控件应该依赖于具有样式的控件)。

0
0 Comments

我觉得你想问的是,你想要为一个ResourceDictionary创建一个代码后台文件。你完全可以这样做!事实上,你可以像为Window创建代码后台一样来做:

假设你有一个名为MyResourceDictionary的ResourceDictionary。在你的MyResourceDictionary.xaml文件中,在根元素中添加x:Class属性,像这样:


然后,创建一个名为MyResourceDictionary.xaml.cs的代码后台文件,其中包含以下声明:

namespace MyCompany.MyProject
{
    partial class MyResourceDictionary : ResourceDictionary
    { 
       public MyResourceDictionary()
       {
          InitializeComponent();
       }     
       ... // event handlers ahead..
    }
}

然后就完成了。你可以在代码后台中放置任何你想要的东西:方法、属性和事件处理程序。

== 更新 Windows 10应用 ==

如果你正在使用UWP,还需要注意一件事:



    
        
            
                
                
                
                
            
        
    

0