WPF - программа не работает при использовании триггера ToggleButton на IsMouseOver

Я получаю странный сбой всякий раз, когда пытаюсь изменить заливку пути с помощью триггера на 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
Идентификатор языка: 1033
Дополнительная информация 1: 0a9e
Дополнительная информация 2: 0a9e372d3b4ad19135b953a78882e789 < br /> Дополнительная информация 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>

Большое тебе спасибо!


person Brian Crawford    schedule 13.02.2015    source источник


Ответы (1)


попробуй это --

<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>
person Muds    schedule 13.02.2015
comment
Кажется, ничего не делаю, когда добавляю это. Работает нормально, но изменений не происходит - person Brian Crawford; 13.02.2015
comment
позволь мне проверить, дай мне немного времени - person Muds; 13.02.2015
comment
мой плохой ... измените Path.Fill на Stroke .... ‹Setter Property = Stroke Value = GhostWhite /› и его призрачный белый цвет, так что вам нужно внимательно это увидеть ... - person Muds; 13.02.2015