【发布时间】:2012-02-28 12:54:25
【问题描述】:
我有一个 Scrollviewer,它包含一个带有 WindowsFormsHost 的框架。 WindowsFormsHost 包含一个 DataGridView(请不要问我为什么不使用 WPF DataGrid 控件执行此操作)。
因为 DataGridView 在使用 scrollviewer 滚动时会导致显示错误,所以我禁用了 scrollviewer 并在我的 DataGridView 上启用了滚动。
<Grid x:Name="LayoutRoot">
<WindowsFormsHost HorizontalAlignment="Stretch" Name="_windowsFormsHostGrid" VerticalAlignment="Stretch">
<Win.Grid:DataGridView x:Name="_buchungGrid" ScrollBars="Both" BorderStyle="None" BackgroundColor="#F7F8FA" CellFormatting="_gridBuchungen_CellFormatting" SelectionChanged="GridSelectionChanged" DoubleClick="_buchungInovaGrid_DoubleClick" AutoSize="True" AutoColumnWidthMode="Window" ZebraColor="LightGray" Anchor="Left" Dock="Fill" />
</WindowsFormsHost>
</Grid>
这似乎有效。只要我不调整窗口大小。当我调整窗口大小时(这将导致所有子元素调整大小,包括滚动查看器、框架和 WindowsFormsHost),我的 DataGridView 的滚动条消失了,我不再能够滚动我的网格。我可以调整到旧的窗口大小,但滚动条仍然隐藏。
知道为什么会发生这种情况以及如何解决吗?我也不确定它们为什么会消失,因为我只调整了一个像素的大小并且会发生这种情况。
【问题讨论】:
-
什么是 Win.Grid:DataGridView?它是您正在使用的某种自定义控件吗?
-
不。 Win.Grid 是我的 WinForms 程序集参考,DataGridView 是 WinForms DataGridView 控件。
标签: wpf winforms datagridview windowsformshost