【发布时间】:2016-09-07 04:12:09
【问题描述】:
我创建了一个带有列和行标题的自定义网格。网格中的单元格是空的。我想要做的是为它创建一个类似于 excel 的滚动行为。我需要添加一个水平和垂直滚动条。当您垂直滚动时,我需要列标题保持原位并滚动行标题。当您水平滚动时,我需要将行列保持在原位并滚动列标题。这是我目前拥有的网格代码:
<Canvas x:Name="canvas_blueprint" ClipToBounds="True" Width="{Binding ActualWidth, ElementName=canvas}" Height="{Binding ActualHeight, ElementName=canvas}">
<DockPanel>
<Grid x:Name="grid_column_header" DockPanel.Dock="Top" Height="25" Width="{Binding ActualWidth, ElementName=canvas}"></Grid>
<Grid x:Name="grid_row_header" DockPanel.Dock="Left" Width="25" Height="{Binding ActualHeight, ElementName=canvas}" Margin="0,-25,0,0"></Grid>
<Grid x:Name="grid_blueprint" DockPanel.Dock="Right" Height="{Binding ActualHeight, ElementName=image_blueprint}" Width="{Binding ActualWidth, ElementName=image_blueprint}">
<Grid.Background>
<ImageBrush x:Name="imagebrush_blueprint"/>
</Grid.Background>
</Grid>
</DockPanel>
</Canvas>
基本上它是一个带有包含 3 个网格的停靠面板的画布。标题为 2 个网格,内部单元格为 1 个网格。单元格是动态创建的。
我正在制作自定义网格,因为我需要在网格上叠加背景图像。我尝试使用免费的电子表格控件,但没有找到可以有背景图像的控件。我的网格需要具备的唯一其他行为是选择一个单元格或一系列单元格的能力。
我尝试过使用网格的滚动条和滚动查看器,但这会使线条不稳定且不均匀。我对 WPF 编程并不陌生,但我离专家还很远。任何帮助将不胜感激。
【问题讨论】:
-
我们的答案可以涉及摆脱画布,还是您将其用于您提供的代码中没有的特定内容?
-
当然你可以摆脱画布。