我在WPF中使用以下标记:
<StackPanel.Triggers>
<EventTrigger RoutedEvent="RadioButton.Checked" SourceName="xmlRadioButton">
<EventTrigger.Actions>
<BeginStoryboard Storyboard="{StaticResource ShowXmlPanel}"/>
</EventTrigger.Actions>
</EventTrigger>
<EventTrigger RoutedEvent="RadioButton.Checked" SourceName="adiRadioButton">
<EventTrigger.Actions>
<BeginStoryboard Storyboard="{StaticResource ShowAdiPanel}"/>
</EventTrigger.Actions>
</EventTrigger>
</StackPanel.Triggers>
虽然这在我运行代码时工作正常,但我在VS 2008的设计器窗口中收到以下错误:
值'RadioButton.Checked'不能 分配给属性'RoutedEvent'。 事件名称无效。
知道为什么,以及如何解决这个问题?
答案 0 :(得分:3)
RadioButton
是ToggleButton
。设计人员确实支持附加的ToggleButton
属性,但不支持RadioButton
属性(当然,RadioButton
标记除外)。
你需要使用为设计者定义属性/事件的类名来接受它(认为在运行时没有区别,因为RadioButton
是ToggleButton
,正如我所说,但是设计师不是真正的编译器。)
因此,在您的情况下,请使用<EventTrigger RoutedEvent="ToggleButton.Checked ..."
; - )