6

我在 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”。事件名称无效。

知道为什么,我该如何解决这个问题?

4

1 回答 1

3

RadioButton是一个ToggleButton。设计器确实支持附加ToggleButton属性,但不支持RadioButton那些(RadioButton当然标签除外)。

您需要使用定义属性/事件的类名让设计者接受它(认为在运行时没有区别,因为RadioButton正如ToggleButton我所说的那样,但设计者不是真正的编译器)。

所以在你的情况下,使用<EventTrigger RoutedEvent="ToggleButton.Checked ...";-)

于 2010-03-30T08:51:31.103 回答