Всплывающая панель WPF с отслеживанием позиции курсора

У меня есть такой виджет:

<UserControl x:Class="Example.Controls.ControlPanel"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             mc:Ignorable="d" 
             d:DesignHeight="450" d:DesignWidth="800">
    <Grid>
        <StackPanel x:Name="panel" Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
            <Button Margin="0,0,30,0"/>
            <Button Margin="0,0,30,0"/>
            <Button Margin="0,0,0,0"/>
        </StackPanel>
    </Grid>
</UserControl>

Этот виджет располагается в главном окне таким образом:

<controls:ControlPanel x:Name="controlPanel" Margin="0,0,0,45" Height="140" VerticalAlignment="Bottom"/>

Мне нужно реализовать следующий функционал, который должен находиться в классе ControlPanel:

  1. Изначально виджет сдвинут вниз на свою высоту, то есть скрыт за пределами окна.
  2. Если виджет скрыт и курсор находится на нижней границе окна программы или вышел за его пределы вниз, то нужно показать виджет (плавно сдвинуть вверх на его высоту).
  3. Если виджет виден и курсор вышел за пределы виджета вверх, то нужно скрыть виджет (плавно сдвинуть вниз на его высоту).

Как из класса виджета отследить позицию курсора в окне приложения (за пределами виджета), как отследить смещение курсора на нижнюю границу окна и за нее?


Ответы (0 шт):