问题描述
|
我想在样式之外使用触发器。编辑:抱歉,它实际上在MainWindow的样式内,但是我希望触发器适用于Ellipse而不是MainWindow。
<Ellipse Fill=\"White\" StrokeThickness=\"1\" Stroke=\"Black\">
<Ellipse.Triggers>
<Trigger Property=\"IsMouseOver\" Value=\"True\">
<Setter Property=\"Fill\" Value=\"Yellow\"/>
</Trigger>
</Ellipse.Triggers>
</Ellipse>
如何解决编译器错误,即\“ MainWindow \'\类型上找不到静态成员\'FillProperty \'?
解决方法
你必须把它放在风格上
<Ellipse StrokeThickness=\"1\" Width=\"20\" Height=\"20\" Stroke=\"black\">
<Ellipse.Style>
<Style TargetType=\"{x:Type Ellipse}\">
<Setter Property=\"Fill\" Value=\"Red\"/>
<Style.Triggers>
<Trigger Property=\"IsMouseOver\" Value=\"true\">
<Setter Property=\"Fill\" Value=\"green\"/>
</Trigger>
</Style.Triggers>
</Style>
</Ellipse.Style>
,在直接触发器中,您需要像这样的限定类型名称:
<Ellipse Width=\"100\" Height=\"100\">
<Ellipse.Triggers>
<Trigger Property=\"Ellipse.IsMouseOver\" Value=\"True\">
<Setter Property=\"Ellipse.Fill\" Value=\"Yellow\" />
</Trigger>
</Ellipse.Triggers>
</Ellipse>
由于直接触发条件只允许EventTriggers
,因此无法使用,请改用Style。
,您的窗口没有像Ellipse一样具有名为\“ Fill \”的属性。也许您的意思是“背景”。