Примечание. Это приложение C# SkiaSharp WPF.
Когда я перерисовываю свой SKCanvas
(который является полной шириной моего приложения), я записываю ширину и высоту. Пока не обращайте внимания на высоту. На мониторе 4K ширина записывается правильно 3840 пикселей (при максимальном увеличении).
Когда я нажимаю крайний левый край холста, записанная позиция мыши X почти равна нулю, как и ожидалось.
Однако, когда я нажимаю в крайнем правом углу холста, в качестве позиции X указывается 2552, а не что-то около 3840, как я ожидал?
Это код, который я использую для получения положения мыши при нажатии.
private void MyCanvas_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
var pixelPosition = e.GetPosition(sender as SKElement);
// ...
}
и мой XAML:
<skia:SKElement
Name="MyCanvas"
PaintSurface="MyCanvas_PaintSurface"
MouseLeftButtonDown="MyCanvas_MouseLeftButtonDown"
/>
Я также проверил ширину/высоту в событии SizeChanged
для MyCanvas
, и оно также НЕ сообщает 3840, оно сообщает 2552 как ширину?
Любые идеи, почему сообщаемая ширина составляет 2552, а фактическая ширина составляет 3840?