画布操作事件直到第一次尝试后才触发
本文关键字:第一次 布操作 操作 事件 | 更新日期: 2023-09-27 18:03:56
我试图通过使用' ManipulationDelta '滑动来动画画布。问题很简单。当我运行应用程序时,唯一没有触发操作事件的时间是在第一次尝试时。如果我点击(或滑动)画布上的任何地方一次,那么第二次它会工作,直到应用程序重新启动。
这是我的XAML代码:<Canvas Name="rootCanvas" Style="{StaticResource rootCanvas}" Hold="rootCanvas_Hold" ManipulationDelta="rootCanvas_ManipulationDelta" ManipulationCompleted="rootCanvas_ManipulationCompleted">
<Canvas.Resources>
<Storyboard x:Name="menuAnimation">
<DoubleAnimation Duration="0:0:0.2" To="0" Storyboard.TargetProperty="(Canvas.Left)" Storyboard.TargetName="rootAnimation" d:IsOptimized="True" />
</Storyboard>
</Canvas.Resources>
<Canvas Name="rootAnimation">
<Grid x:Name="rootContainer" DataContext="{Binding}" Style="{StaticResource rootContainer}">
...
</grid>
</Canvas>
</Canvas>
这是我的c#代码
private void rootCanvas_ManipulationDelta(object sender, System.Windows.Input.ManipulationDeltaEventArgs e)
{
if (e.DeltaManipulation.Translation.X > 25 && !menu.IsMenuOpen())
{
MoveViewWindow(150);
hintActive = false;
menu.SetMenuOpen();
return;
}
else if (e.DeltaManipulation.Translation.X < (-25) && menu.IsMenuOpen())
{
MoveViewWindow(0);
hintActive = false;
menu.SetMenuClosed();
return;
}
}
private void rootCanvas_Hold(object sender, System.Windows.Input.GestureEventArgs e)
{
if (!menu.IsMenuOpen())
{
hintActive = true;
MoveViewWindow(25);
}
return;
}
我有一个rootCanvas_ManipulationCompleted
,断点被击中,即使操纵delta和保持断点没有。
任何想法?
试试命令:
rootCanvas.Focus();
这将把焦点设置在你正在点击的画布上,只需在页面的load方法中弹出此事件