MouseEnter MouseLeave в c #

1

У меня проблема при написании программы для рисования фигур из текстового файла. В настоящее время моя программа считывает данные из текстового файла и рисует их на холсте, но у меня проблема с событиями MouseEnter и MouseLeave.

Я бы хотел, чтобы многоугольник менял цвет, если над ним есть мышь. Как я могу это сделать?

Приложение написано в WPF, используя элемент Canvas.

  • 0
    Добро пожаловать на ТАК! Пожалуйста, предоставьте более подробную информацию о проблеме, с которой вы столкнулись. Что у тебя до сих пор?
  • 0
    Какие у вас проблемы с событиями? У вас проблемы с рисованием или обработкой событий?
Показать ещё 2 комментария
Теги:
wpf
mouseevent
wpf-controls

1 ответ

0
Лучший ответ

Для этого можно использовать триггеры событий. Например:

<Canvas>
    <Canvas.Resources>
        <Style TargetType="Polygon">
            <Style.Triggers>
                <EventTrigger RoutedEvent="MouseEnter">
                    <BeginStoryboard>
                        <Storyboard>
                            <ColorAnimation Duration="0:0:0.1" 
                                            Storyboard.TargetProperty="(Polygon.Fill).(SolidColorBrush.Color)"
                                            To="Yellow"
                                            />
                        </Storyboard>
                    </BeginStoryboard>
                </EventTrigger>
                <EventTrigger RoutedEvent="MouseLeave">
                    <BeginStoryboard>
                        <Storyboard>
                            <ColorAnimation Duration="0:0:0.1" 
                                            Storyboard.TargetProperty="(Polygon.Fill).(SolidColorBrush.Color)"
                                            To="Blue"
                                            />
                        </Storyboard>
                    </BeginStoryboard>
                </EventTrigger>
            </Style.Triggers>
        </Style>
    </Canvas.Resources>

    <Polygon Fill="Blue" Canvas.Left="100" Canvas.Top="50">
        <Polygon.Points>
            <Point>0,0</Point>
            <Point>20,0</Point>
            <Point>25,5</Point>
            <Point>20,20</Point>
            <Point>0,20</Point>
            <Point>0,0</Point>
        </Polygon.Points>
    </Polygon>

</Canvas>
  • 0
    McGarnagle Большое спасибо, я хочу, это работает :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню