TL; DR Xaml对我来说感觉不透明,为什么在一个案例中从动画中删除TargetName会失败并在另一个案例中使用另一个完全相同(复制和粘贴)的触发器声明?
在This question中,我的问题通过将触发器移动到样式并将样式应用于文本框来解决。从示例中,您可以看到故事板的TargetName属性设置为其中一个文本框的名称。
在尝试完成这项工作时,我还将触发器放在Grid.Triggers部分并删除了TargetName属性。这导致抛出异常。
解决方案涉及将其置于样式中,然后删除TargetName属性setter。样式未命名,但应用于文本框。在这种情况下,如果未设置TargetName,则无效。
所以这就是问题所在。我花了一些时间来让它工作,重命名TargetName似乎是明智的,因为我希望它适用于几个文本框,但是当我把它放在Grid.Triggers部分时我试过了。为什么没有那个工作,为什么它以一种风格工作?更重要的是,我如何利用这些知识在以后解决类似的问题?我认为这是一个棘手的问题,Xaml目前对我来说似乎很不透明。