ims*_*vko 1 .net c# windows-runtime winrt-xaml windows-store-apps
所以假设我的左边缘有堆叠面板,宽度为200px.现在我想在此面板上从左到右处理水平滑动并显示其他面板.然后处理从右向左滑动以隐藏它.
我试过处理页面ManipulationStarted和ManipulationDelta事件,但它似乎没有任何影响,至少用鼠标.任何想法,可能是一个简单的方法来实现它?
我尝试了什么:处理页面的滑动事件和刷卡检查的开始,如果它是在stackpanel的边界内启动,否则我忽略它.
如果滑动的delta超过正40,看起来像是从左到右滑动.
我的XAML文件:
// standard stuff of page
<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
<StackPanel Orientation="Vertical" Width="200" HorizontalAlignment="Left" Background="White" x:Name="Panel"/>
</Grid>
Run Code Online (Sandbox Code Playgroud)
//继续标准的东西
C#文件:
public MainPage()
{
this.InitializeComponent();
this.ManipulationDelta += MainPage_ManipulationDelta;
this.ManipulationStarted += MainPage_ManipulationStarted;
}
private void MainPage_ManipulationStarted(object sender, ManipulationStartedRoutedEventArgs e)
{
System.Diagnostics.Debug.WriteLine("heh");
if (e.Position.X < 200)
{
initialPoint = e.Position;
isSwiping = true;
}
}
private void MainPage_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
{
if (e.IsInertial && isSwiping)
{
Point currentPoint = e.Position;
if (currentPoint.X - initialPoint.X >= 40)
{
isSwiping = false;
e.Complete();
System.Diagnostics.Debug.WriteLine("finished swipe :)");
}
}
}
private Point initialPoint;
private Boolean isSwiping;
Run Code Online (Sandbox Code Playgroud)
(再次省略默认空页)
您需要在控件上设置ManipulationMode,例如ManipulationMode ="TranslateX",让控件响应命中测试(即如果它没有背景 - 将背景设置为透明)以接收操作事件.
然后再次 - 为什么不使用内置支持滑动的ListView?
| 归档时间: |
|
| 查看次数: |
2981 次 |
| 最近记录: |