Инструкция по Созданию Эффекта Выделения с Помощью Событий
В этом примере демонстрируется изменение цвета элемента, как только указатель мыши входит и покидает область, занимаемую элементом.
Этот пример состоит из файла Extensible Application Markup Language (XAML) и файла с выделенным кодом.
Примечание |
---|
Этот пример демонстрирует, как использовать события, но рекомендуемым способом добиться этого же эффекта является использование Trigger в стиле.Дополнительные сведения см. в разделе Стилизация и использование шаблонов. |
Пример
Следующий XAML создает интерфейс пользователя, который состоит из Border окружающего TextBlock, и присоединяет обработчики событий MouseEnter и MouseLeave к Border.
<StackPanel>
<Border MouseEnter="OnMouseEnterHandler"
MouseLeave="OnMouseLeaveHandler"
Name="border1" Margin="10"
BorderThickness="1"
BorderBrush="Black"
VerticalAlignment="Center"
Width="300" Height="100">
<Label Margin="10" FontSize="14"
HorizontalAlignment="Center">Move Cursor Over Me</Label>
</Border>
</StackPanel>
Следующий код создает обработчики событий MouseEnter и MouseLeave. Когда указатель мыши входит в Border, фон Border изменяется на красный. Когда указатель мыши покидает Border, фон Border изменяется обратно на белый.
Partial Public Class Window1
Inherits Window
Public Sub New()
InitializeComponent()
End Sub
' raised when mouse cursor enters the are occupied by the element
Private Sub OnMouseEnterHandler(ByVal sender As Object, ByVal e As MouseEventArgs)
border1.Background = Brushes.Red
End Sub
' raised when mouse cursor leaves the are occupied by the element
Private Sub OnMouseLeaveHandler(ByVal sender As Object, ByVal e As MouseEventArgs)
border1.Background = Brushes.White
End Sub
End Class
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}
// raised when mouse cursor enters the area occupied by the element
void OnMouseEnterHandler(object sender, MouseEventArgs e)
{
border1.Background = Brushes.Red;
}
// raised when mouse cursor leaves the area occupied by the element
void OnMouseLeaveHandler(object sender, MouseEventArgs e)
{
border1.Background = Brushes.White;
}
}