gpt4 book ai didi

c# - 'MouseEventArgs' 不包含 'GetPosition' 的定义

转载 作者:太空宇宙 更新时间:2023-11-03 12:33:55 31 4
gpt4 key购买 nike

我确信这是一个 super 简单的过程,但我正在开发 C# UWP 应用程序并试图制作可拖动的用户控件,但在我的鼠标事件中我收到以下错误:

CS1061“MouseEventArgs”不包含“GetPosition”的定义,并且找不到接受“MouseEventArgs”类型的第一个参数的扩展方法“GetPosition”(是否缺少 using 指令或程序集引用?)

我发现这个例子是我在堆栈上使用的 ( Dragging a WPF user control ) 并且之前使用鼠标按下事件在 winforms 中的列表框之间拖动项目但是没有这个问题。

这是我的代码:

<UserControl
x:Class="HopHaus.TimerControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:HopHaus"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="300"
d:DesignWidth="400" Width="120" Height="60">

<Grid Margin="0,0,0,167" Width="120">
<Rectangle Fill="#FF404040" HorizontalAlignment="Left" Height="60" Margin="1,0,-1,-133" Stroke="Black" VerticalAlignment="Top" Width="120"/>
<TextBox x:Name="timersetBox" Margin="-1,-2,1,-59" TextWrapping="Wrap" Text="00" VerticalAlignment="Top" Height="60" BorderBrush="Transparent" FontFamily="Fonts/DIGITAL.TTF#Digital" Foreground="#FF72FB00" FontSize="50" Background="Transparent" TextAlignment="Right" AcceptsReturn="True" SelectionHighlightColor="#000078D7" Width="120"/>
<Border x:Name="dragBrdr" BorderBrush="Black" BorderThickness="1" HorizontalAlignment="Left" Height="59" Margin="2,0,0,-59" VerticalAlignment="Top" Width="118"/>
</Grid>
</UserControl>

和:

 public sealed partial class TimerControl : UserControl
{
Point currentPoint;
Point anchorPoint;
bool isInDrag;
public TimerControl()
{
this.InitializeComponent();
}

private TranslateTransform transform = new TranslateTransform();
private void root_MouseMove(object sender, MouseEventArgs e)
{
if (isInDrag)
{
var element = sender as FrameworkElement;
currentPoint = e.GetPosition(null);

transform.X += currentPoint.X - anchorPoint.X;
transform.Y += (currentPoint.Y - anchorPoint.Y);
this.RenderTransform = transform;
anchorPoint = currentPoint;
}
}
}

我同时使用 System.Windows.Inputusing Windows.Devices.Input

非常感谢您提供的任何帮助。

最佳答案

为了更好地支持触摸和墨迹书写,对鼠标事件进行了抽象。这称为指针。所以你有一个 PointerMoved 事件

在 xaml 中:

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
PointerMoved="Grid_PointerMoved">

</Grid>

在代码中

    private void Grid_PointerMoved(object sender, PointerRoutedEventArgs e)
{
var point = e.GetCurrentPoint(null);
}

关于c# - 'MouseEventArgs' 不包含 'GetPosition' 的定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41716160/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com