WPF покажет положение мыши - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть XAML:

<Grid MouseMove="onMouseMove" >
  <ItemsControl Name="btnTableImageList">
    <ItemsControl.ItemTemplate>
      <DataTemplate>
        <Button Content="{Binding Content}" 
                Height="{Binding Height}" 
                Width="{Binding Width}" 
                Tag="{Binding Tag}" 
                Margin="{Binding Margin}" 
                Background="{Binding Background}" 
                HorizontalAlignment="Center"  
                MouseDown="tblButton_MouseDown" 
                MouseUp="tblButton_MouseUp" 
                Click="ClickHandlerTableBtn" 
                TextBlock.TextAlignment="Center" />
      </DataTemplate>
    </ItemsControl.ItemTemplate>
  </ItemsControl>
</Grid>

и код позади:

private void onMouseMove(object sender, MouseEventArgs e)
{
    lblCoord.Content = Mouse.GetPosition(Application.Current.MainWindow);
}

На форме есть метка с именем lblCoord, и есть две кнопки, которые создаются после загрузки формы.

Я хочу отобразить координату мыши в lblCoord относительно сетки, но координаты отображаются только тогда, когда я наведу курсор мыши на любую из кнопок, которые находятся внутри этой сетки.

Я предполагаю, что я помещаю MouseMove = "onMouseMove" в неправильном месте.

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 21 ноября 2018

Это будет работать, когда вы установите Background Grid на что угодно, кроме прозрачного По умолчанию фон сетки является прозрачным.Когда он прозрачен , события мыши работают, когда вы также задаете Background="Transparent".

События мыши обрабатывают ближайший родительский элемент с фоном IMHO

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...