WPF - 在IsMouseOver上使用ToggleButton触发器时程序失败

时间:2015-02-13 16:08:25

标签: wpf crash togglebutton eventtrigger

每当我尝试使用ToggleButton上的触发器更改路径填充时,我都会遇到奇怪的崩溃。在做了一些消除过程后,似乎实际的触发器属性导致程序崩溃。

当它崩溃时我得到了这个:

  

问题签名:

    问题事件名称:CLR20r3
    问题签名01:briantestwpf.exe
    问题签名02:1.0.0.0
    问题签名03:54de1f87
    问题签名04:PresentationFramework
    问题签名05:4.0.30319.18408
    问题签名06:52312f13
    问题签名07:65f2
    问题签名08:5e
    问题签名09:System.Windows.Markup.XamlParse
    操作系统版本:6.1.7601.2.1.0.256.4
    地区ID:1033
    附加信息1:0a9e
    附加信息2:0a9e372d3b4ad19135b953a78882e789
    附加信息3:0a9e
    附加信息4:0a9e372d3b4ad19135b953a78882e789

这是有问题的代码,因为我试图弄乱这个概念,所以没什么特别的。我的项目主管也对此感到困惑。

<ToggleButton Background="Transparent" BorderThickness="1" BorderBrush="Transparent" Canvas.Left="410" Canvas.Top="384" Height="41" Width="81">
            <Canvas>

                <Path x:Name="Arrow"
        Width="32"
        Data="M0,0 L0,2 L4,6 L8,2 L0,2  "
        Fill="#FF827F96" Canvas.Left="0" Canvas.Top="-15" Stretch="Fill" Height="29" />
            </Canvas>
            <ToggleButton.Triggers>
                <Trigger Property="UIElement.IsMouseOver" Value="True">
                    <Setter TargetName="Arrow" Property="Path.Fill" Value="GhostWhite"/>
                </Trigger>
            </ToggleButton.Triggers>
        </ToggleButton>

非常感谢!

1 个答案:

答案 0 :(得分:0)

试试这个 -

<ToggleButton Background="Transparent" BorderThickness="1" BorderBrush="Transparent" Canvas.Left="410" Canvas.Top="384" Height="41" Width="81">
        <Canvas>
            <Path x:Name="Arrow" Width="32" Data="M0,0 L0,2 L4,6 L8,2 L0,2  " Fill="#FF827F96" Canvas.Left="0" Canvas.Top="-15" Stretch="Fill" Height="29" >
                <Path.Style>
                    <Style TargetType="Path">
                        <Style.Triggers>
                            <DataTrigger Binding="{Binding Path=IsMouseOver, RelativeSource={RelativeSource AncestorType={x:Type ToggleButton}}}" Value="True">
                                <Setter Property="Stroke" Value="GhostWhite"/>
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
                </Path.Style>
            </Path>
        </Canvas>
    </ToggleButton>