我想使用樣式外的觸發器。 編輯:哎呀,對不起,它實際上是在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