gpt4 book ai didi

wpf - Theme ResourceDictionary 中的 EventSetter

转载 作者:行者123 更新时间:2023-12-03 20:58:14 26 4
gpt4 key购买 nike

MSDN says on event setters:

Event setters cannot be used in a style that is contained in a theme resource dictionary. This is because a theme resource dictionary at run time is often loose binary XAML (BAML) files, and does not have any scope defined where accompanying code-behind that defines the handlers can exist.



这是由 the first answer to this SO question 确认的,其中指出:

a resource xaml can't have a code behind file, they are usually called "loose xaml". You can read about that in the msdn about EventSetter.



但是,我还不了解事件 setter 的限制。我曾尝试将代码隐藏文件用于资源字典。我已经为包含在所述资源字典中的样式中定义的模板中的控件的事件分配了一个事件处理程序 - 并且它起作用了。

另一方面,将事件 setter 添加到同一资源字典中的样式会导致异常。

我是否遇到了碰巧起作用的特殊情况?

或者在模板中设置事件处理程序总是有效,但如果是这样,那么为什么我不能在同一资源字典中的样式中使用事件 setter ?

我的问题归结为:

MSDN 关于主题资源字典通常是松散的二进制 XAML 的声明究竟是什么意思 - 多久一次,究竟在什么情况下?

最佳答案

这意味着它是自己编译的,而不是在命名空间后面或内部使用代码。

或者换句话说,松散的 xaml 文件没有代码部分,例如,它可以作为文本从数据库中读入,或者作为文本动态生成并在没有任何编码关联的情况下加载。

至于天气是不是有正当理由。这取决于每个开发人员,但这就是松散 xaml 的含义。

编辑:

为了回应您的评论,我想他们是专门指的是资源和样式,因为这些是最常见的“松散文件”,通常大多数人不会用代码文件支持它们。我个人认为这是一种应对方式。他们可以很容易地添加一个 Loose=True 属性并解决这个问题。

实际上,问题不在于松散文件的数量或使用它们的频率,而与制定规则以补偿缺失功能的事实有关。如果他们只是说你不能做 x,y,z 会容易得多,因为我们没有建立对它的支持,而不是说这是因为一些任意数量的松散 xaml 文件。

关于wpf - Theme ResourceDictionary 中的 EventSetter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13902026/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com