@s8288485 (shu kawa)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

【WPF】ScrollViewerに内包したDataGridのタッチスクロールについて

Q&A

Closed

実現したいこと

ScrollViewerにDatagridを内包し、タッチスクロールを行いたい。

開発環境

WPF(.NetFramework)
Frameworkバージョン:4.8
C#バージョン8.0

困っていること

下記XAMLのように、ScrollViwer内にDatagridを内包した形で、ScrollViwer内のDatagrid以外のエリアのタッチ操作でスクロールはできるが、Datagrid上のタッチ操作でScrollViewerがスクロールしない。

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="*"/>
        <RowDefinition Height="*"/>
        <RowDefinition Height="*"/>
        <RowDefinition Height="*"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>
    <ScrollViewer  Grid.RowSpan="5" Grid.ColumnSpan="5" PanningMode="Both">
        <DataGrid Name="grdTest" Margin="10,10,100,10">
            <DataGrid.Columns>
                <DataGridTextColumn>
                    <DataGridTextColumn.Header>
                        <TextBlock Text="test"></TextBlock>
                    </DataGridTextColumn.Header>
                </DataGridTextColumn>
            </DataGrid.Columns>
        </DataGrid>
    </ScrollViewer>
</Grid>

試したこと

マウスホイールによるスクロールについては、下記記事を参考にDatagridの「PreviewMouseWheel」イベントを補足し、ScrollViwerにイベントを透過させることでスクロールを実現できましたが、タッチスクロールについては、それらしいイベント「PreviewStylusMove、PreviewTouchMove、PreviewMouseMove、PreviewMouseMove」等で同じように透過させてもうまくいきません。
https://qiita.com/tor4kichi/items/38ef73d98e9d65ca7ac9

質問

Manipulation系イベントも探ってみましたが、Manipulation系イベントにはPreview~が存在しません。そもそも私の基本的な考え方に問題があるかもしれません。
本質問内容について、解決方法ありましたら、教えていただけると助かります。

0 likes

1Answer

Your answer might help someone💌