ScrollViewer内部的WPF DataGrid

问题描述 投票:0回答:2

我有一个带有标题控件的StackPanel和一个DataGrid内部的Scrollviewer;像这样:

<ScrollViewer>
    <StackPanel Orientation="Vertical">
        <Canvas x:Name="header" 
                Height="300" />
        <DataGrid x:Name="dataGrid">
        </DataGrid>
    </StackPanel>
</ScrollViewer>

scoll行为应满足以下要求:

  • [将鼠标悬停在DataGrid上时滚动,应滚动外部的ScrollViewer
  • 标题控件(由Canvas表示)由ScollViewer滚动。

  • DataGrid底部的水平滚动条应随时保留在屏幕上。

  • 水平滚动条不应滚动标题控件,只能滚动DataGrid

我尝试了DataGrid.ScrollViewer的各种设置,但没有达到预期的效果,将StackPanel更改为WrapPanel或什至Grid也无济于事。

这可能吗?感谢您提供的任何帮助和资源。

c# wpf datagrid scrollviewer
2个回答
1
投票
我也一直在为您的第一个问题而苦苦挣扎-使用内部ScrollViewer(在这种情况下为DataGrid)滚动外部ScrollViewer。但是我认为我有一个非常优雅的解决方案。您必须向DataGrid的PreviewMouseWheel事件添加一个事件处理程序(以及ScrollViewer的名称):

<ScrollViewer x:Name="scroll_viewer"> <StackPanel Orientation="Vertical"> <Canvas x:Name="header" Height="300" /> <DataGrid x:Name="dataGrid" PreviewMouseWheel="mousewheel"> </DataGrid> </StackPanel> </ScrollViewer>


0
投票
这是一个非常复杂的问题,可能需要一个人周才能完成!但是,这是一个可以解决您一半问题的开始:
© www.soinside.com 2019 - 2024. All rights reserved.