首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >是否可以在WPF中的资源字典后面设置代码以进行事件处理?

是否可以在WPF中的资源字典后面设置代码以进行事件处理?
EN

Stack Overflow用户
提问于 2008-09-18 12:31:44
回答 4查看 68.9K关注 0票数 154

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

EN

回答 4

Stack Overflow用户

发布于 2008-09-25 23:17:30

我不同意“另类陷阱”的说法。使用分部类的方法不是一种好的做法。那么,将字典与页面分开的目的是什么呢?

从代码隐藏中,您可以使用以下命令访问x:Name元素:

代码语言:javascript
复制
Button myButton = this.GetTemplateChild("ButtonName") as Button;
if(myButton != null){
   ...
}

如果要在加载自定义控件时挂钩到控件,则可以在OnApplyTemplate方法中执行this。要做到这一点,需要重写OnApplyTemplate。这是一种常见的做法,允许您的样式与控件保持断开连接。(样式不应该依赖于控件,但控件应该依赖于具有样式)。

票数 9
EN

Stack Overflow用户

发布于 2009-11-27 20:33:38

Gishu -虽然这似乎是一个“通常不鼓励的做法”,但这里是你可能想要这样做的一个原因:

文本框获得焦点时的标准行为是将插入符号放置在控件失去焦点时的相同位置。如果您希望在整个应用程序中,当用户跳转到任何文本框时,文本框的整个内容都被突出显示,那么在资源字典中添加一个简单的处理程序就可以做到这一点。

您希望默认用户交互行为与开箱即用行为不同的任何其他原因似乎都是资源字典中隐藏代码的很好候选者。

完全同意,任何特定于应用程序功能的东西都不应该出现在资源字典后面的代码中。

票数 6
EN

Stack Overflow用户

发布于 2021-02-26 06:26:02

添加绑定的日子,随着{x: on....these ...}的出现,如果你想把你的DataTemplate放到一个共享的ResourceDictionary文件中,你需要给那个文件一个代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/92100

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档