我想使用样式外的触发器。 编辑:哎呀,对不起,它实际上是在MainWindow中的一种样式中,但我希望触发器适用于Ellipse而不是MainWindow。XAML:为什么这个触发器不起作用?
<Ellipse Fill="White" StrokeThickness="1" Stroke="Black">
<Ellipse.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Fill" Value="Yellow"/>
</Trigger>
</Ellipse.Triggers>
</Ellipse>
如何解决编译器错误,这是“无法找到静态成员‘FillProperty’的类型‘主窗口’”?
这工作。有谁知道为什么触发器不能在Style之外工作? (Ellipse有一个Triggers集合是无法使用的误导,如果它只支持EventTriggers,它应该被命名为EventTriggers,或者错误消息应该这样说)。并且,请注意,此代码不会分配填充为Ellipse的一个属性,而是使用Setter标签来做同样的事情。如果Ellipse具有Fill属性,则触发器停止工作!有人知道为什么 – Qwertie 2011-05-26 17:30:13
现在我有另一个问题。如果在椭圆的顶部有其他东西,那么当鼠标位于内部物体的顶部时,椭圆的颜色会改变。任何想法如何保持颜色的变化? – Qwertie 2011-05-26 17:35:52
@Qwertie,如果您将Fill属性设置为一行(直接在Ellipse上),则不会看到触发器的值,而这是设计。填充(以及UI元素的大多数其他XAML属性)是一个DependencyProperty,当有多个事物尝试设置属性(样式设置器,触发器设置器等)时,会有一个非常特定的顺序来确定“实际”值。有关更多信息,请参阅** Dependency Property Value Precedence **部分下的http://msdn.microsoft.com/en-us/library/ms752914.aspx。 – Adrian 2011-05-26 19:01:46