簡體   English   中英

ScrollViewer無法與UWP App中的ListView中的多個GridView組合正常使用

[英]ScrollViewer is not working properly with the combination of several GridViews within a ListView in an UWP App

我正在使用GridViews表示不同文件夾的文件。 這些GridViews一個行和水平方向的一個垂直內orderd ListView

在這里,您可以從代碼中獲得靈感:

<ListView ItemSource={Binding CollectionOfFolders}>

    <ListView.ItemTemplate>

        <GridView>

            <GridView.ItemsPanel>
                <ItemsPanelTemplate>
                    <ItemsWrapGrid Loaded="WrapGridLoaded"
                           MaximumRowsOrColumns="1"
                           Orientation="Vertical" />
                </ItemsPanelTemplate>
            </GridView.ItemsPanel>

            <GridView.ItemTemplate>
                ...
            </GridView.ItemTemplate>

        </GridView>

    </ListView.ItemTemplate>

</ListView>

和視覺印象在這里:

屏幕截圖

問題是垂直和水平滾動的處理。

隨着TOCH輸入萬物工作根據需要 :當您移動你的手指,上下,您可以通過列表視圖(文件夾)滾動。 如果水平移動手指,則滾動瀏覽GridView(文件)。

問題就來 ,使用鼠標滾輪或觸控板與兩個手指的手勢sroll時:當指針上的任何物品或文件respectivley,它不會影響到ListView控件。 所有手勢僅會影響gridview。

我嘗試禁用和啟用垂直和水平滾動模式,IsVertical / Horizo​​ntalModeChanningEnabled屬性以及滾動條和滾動條可見性的效果。

我找到了與該問題有關的這些問題,但是可以找到我剛剛描述的這個特定問題的解決方案:

如果有人有想法甚至解決方案,那就太好了。

當使用兩指滾動手勢使用鼠標滾輪或觸摸板時,就會出現問題:當指針位於任何項目或文件上時,它不會影響ListView。 所有手勢僅會影響gridview。

問題在於, GridView項目在聚焦時會捕獲鼠標滾輪和雙點滾動手勢。 根據您的要求,您可以手動禁用此功能。

您可以使用內部GridViewPointerEnteredViewChanged事件來實現此效果。 當內部GridView項滾動到頂部或底部時,將其ScrollMode禁用,同時,當指針進入內部GridView項時,使內部GridViewScrollMode啟用。

而且我在msdn中發現了類似的問題 ,它具有您可以參考的完整答復。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM