如何在觸發器中設置屬性,如果爲空?如何在觸發器中設置屬性,如果爲空?
<Style.Triggers>
<Trigger Property="ContextMenu" Value="{x:Null}">
<Setter Property="ContextMenu" Value="{DynamicResource ContextMenu}"/>
</Trigger>
</Style.Triggers>
如何在觸發器中設置屬性,如果爲空?如何在觸發器中設置屬性,如果爲空?
<Style.Triggers>
<Trigger Property="ContextMenu" Value="{x:Null}">
<Setter Property="ContextMenu" Value="{DynamicResource ContextMenu}"/>
</Trigger>
</Style.Triggers>
你可以簡單地直接設置文本菜單中你的風格像這樣:
<Style ...>
<Setter Property="ContextMenu" Value="{DynamicResource ContextMenu}"/>
</Style>
如果用戶設置的ContextMenu明確,那麼將優先於樣式的制定者。有關順序或優先順序,請參閱此MSDN article。你的風格設置者在#8以下,而用戶設置在#3。
你試過了嗎?
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=Self}, Path=ContextMenu}" Value="{x:Null}">
<Setter Property="ContextMenu" Value="{DynamicResource ContextMenu}"/>
</DataTrigger>
</Style.Triggers>
但在現實中,你應該設置在控件的樣式上下文菜單,然後控制的任何用戶都可以在派生的風格還是在控制屬性將其覆蓋。
我試圖做到這一點。看到這個問題:[鏈接](http://stackoverflow.com/questions/5294094/how-to-override-contextmenu-in-global-style-wpf) – 2011-03-14 08:29:34
對不起,能否詳細說明一下。在這個例子中,你鏈接到的問題是關於基礎風格的風格。這是爲你工作嗎?在這個問題中,我認爲它更像是一個風格觸發器的問題。我讚賞最後的投票,但我想知道解決方案是有用的。 – jjrdk 2011-03-14 09:31:46
此解決方案生成StackOverflow異常。 – 2011-03-15 02:58:40
你是否試圖設置ContextMenu,只有當用戶沒有設置它時? – CodeNaked 2011-03-17 01:49:44
是的,我試圖設置ContextMenu,只有當用戶沒有設置。 – 2011-03-17 12:37:41