我创建了简单StateTrigger的绑定到FrameworkElement Width属性。存在三个依赖属性MinValue:MaxValue和Element。它们的类型是double,double并且FrameworkElement相应地。
而且我注意到,根据绑定顺序,它可能会或可能不会起作用。
这工作正常。
<local:ElementWidthTrigger MaxValue="1000"
MinValue="800"
Element="{Binding ElementName=LayoutRoot}" />
这不是。
<local:ElementWidthTrigger Element="{Binding ElementName=LayoutRoot}"
MaxValue="1000"
MinValue="800" />
请注意,这两个示例的唯一区别是Element属性绑定顺序。
ElementWidthTrigger每个依赖属性都有属性更改回调。当Element在最顶端时,无论如何都不会调用回调。
x:Bind无论使用什么顺序都可以解决这个问题,但仍然存在一个问题。谁能解释为什么Element属性无法根据绑定顺序绑定?
在 Windows 10 1803 版本 17134.320 上运行。
工作示例项目可以在这里找到。