Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何实现Win10新Outlook应用程序中的滑动手势?_C#_Windows_Windows Runtime_Winrt Xaml_Win Universal App - Fatal编程技术网

C# 如何实现Win10新Outlook应用程序中的滑动手势?

C# 如何实现Win10新Outlook应用程序中的滑动手势?,c#,windows,windows-runtime,winrt-xaml,win-universal-app,C#,Windows,Windows Runtime,Winrt Xaml,Win Universal App,适用于Windows 10的新Outlook应用程序实现了滑动手势以删除或编辑项目。我想使用C#和XAML为我的通用应用程序中的Listview项目实现此功能 到目前为止,我正在尝试以下方法: XAML C# private void TestList\u操作已完成(对象发送方,操作已完成RoutedEventTargets e) { Grid dataGrid=findElementInItemsControlItemAtIndex(TransactionList,Transacti

适用于Windows 10的新Outlook应用程序实现了滑动手势以删除或编辑项目。我想使用C#和XAML为我的通用应用程序中的Listview项目实现此功能

到目前为止,我正在尝试以下方法:

XAML


C#

private void TestList\u操作已完成(对象发送方,操作已完成RoutedEventTargets e)
{
Grid dataGrid=findElementInItemsControlItemAtIndex(TransactionList,TransactionList.SelectedIndex,“dataGrid”)作为网格;
if(dataGrid!=null)
{
TranslateTransform myTranslate=新的TranslateTransform();
双距离=e.累积翻译.X;
如果(距离<-80)
{
myTranslate.X=-100;
dataGrid.RenderTransform=myTranslate;
}
如果(距离>40)
{
myTranslate.X=0;
dataGrid.RenderTransform=myTranslate;
}
}
}
私有void TestList_操纵delta(对象发送方,操纵deltaroutedventargs e)
{
Grid dataGrid=findElementInItemsControlItemAtIndex(TransactionList,TransactionList.SelectedIndex,“dataGrid”)作为网格;
if(dataGrid!=null)
{
TranslateTransform myTranslate=新的TranslateTransform();
双距离=e.累积翻译.X;
var操纵=e.Delta;
myTranslate.X+=操纵.translate.X;
dataGrid.RenderTransform=myTranslate;
如果(距离<-40)
{
myTranslate.X=-100;
dataGrid.RenderTransform=myTranslate;
}
如果(距离>70)
{
myTranslate.X=0;
dataGrid.RenderTransform=myTranslate;
}
}
}

只有当用户在listview中选择一个项,然后向左或向右滑动时,此方法才有效。findElementInItemsControlItemAtIndex()方法仅返回所选控件,而不返回正在进行操作的控件

那么,有什么方法可以在一个项目上开始操作后立即选择一个项目呢?是否有任何库用于在listview中实现滑动编辑或删除?

使用UIElement

更多关于

指针事件适用于您对多个指针及其关系感兴趣的场景,或者您正在检查每个指针的细节(例如精确的坐标位置)的场景

使用后,您可以协调用户指向的位置以及屏幕上该位置的内容。为此,您可以在VisualTreeHelper中使用

好吧,我想你已经找到了解决问题的所有方法

祝你好运

使用UIElement

更多关于

指针事件适用于您对多个指针及其关系感兴趣的场景,或者您正在检查每个指针的细节(例如精确的坐标位置)的场景

使用后,您可以协调用户指向的位置以及屏幕上该位置的内容。为此,您可以在VisualTreeHelper中使用

好吧,我想你已经找到了解决问题的所有方法

祝你好运

                <Grid Name="EditTestGrid" Height="50" Width="100" HorizontalAlignment="Right">
                    <Grid Name="EditGrid" Background="Black" Height="50" >
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="*"/>
                            <ColumnDefinition Width="*"/>
                        </Grid.ColumnDefinitions>

                    </Grid>
                </Grid>

            </Grid>

            <Grid Name="DataGrid" Visibility="Visible" Background="GhostWhite">
                <Grid.RenderTransform>
                    <TranslateTransform x:Name="TranslateGrid"
                                        X="0"/>
                </Grid.RenderTransform>
                <Grid>
                    <Path Data="{Binding Art}" 
                          Stretch="Uniform" Fill="{Binding Colour}" 
                          Width="26" Height="26" 
                          HorizontalAlignment="Center"
                          Opacity="0.5"/>
                    <Rectangle Height="30" 
                               Width="3"
                               HorizontalAlignment="Right"
                               Fill="Teal"/>
                </Grid>
            </Grid>


        </Grid>
    </DataTemplate>
</ListView.ItemTemplate>
private void TestList_ManipulationCompleted(object sender,ManipulationCompletedRoutedEventArgs e)
{
  Grid dataGrid = findElementInItemsControlItemAtIndex(TransactionList, TransactionList.SelectedIndex, "DataGrid") as Grid;

  if (dataGrid != null)
  {
    TranslateTransform myTranslate = new TranslateTransform();
    double dist = e.Cumulative.Translation.X;
    if (dist < -80)
    {
        myTranslate.X = -100;
        dataGrid.RenderTransform = myTranslate;
    }

    if (dist > 40)
    {
        myTranslate.X = 0;
        dataGrid.RenderTransform = myTranslate;
    }

  }
}

private void TestList_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
{
  Grid dataGrid = findElementInItemsControlItemAtIndex(TransactionList, TransactionList.SelectedIndex, "DataGrid") as Grid;

if (dataGrid != null)
{
    TranslateTransform myTranslate = new TranslateTransform();
    double dist = e.Cumulative.Translation.X;
    var manipulation = e.Delta;
    myTranslate.X += manipulation.Translation.X;
    dataGrid.RenderTransform = myTranslate;
    if (dist < -40)
    {
        myTranslate.X = -100;
        dataGrid.RenderTransform = myTranslate;
    }

    if (dist > 70)
    {
        myTranslate.X = 0;
        dataGrid.RenderTransform = myTranslate;

    }
}
private void Target_PointerMoved(object sender, PointerRoutedEventArgs e)
{
    var ptr = e.Pointer;
    if (ptr.PointerDeviceType == Windows.Devices.Input.PointerDeviceType.Mouse)
    {
        var ptrPt = e.GetCurrentPoint(Target);
    }
    e.Handled = true;
}