如何在Winforms中按百分比移动滚动条值?

时间:2017-02-18 11:47:27

标签: c# winforms

我不确定它是否是重复的问题,但我在StackOverflow上找不到任何答案。

问题陈述:我有第三方图像查看器和PDF查看器控件。它们嵌入到C#WinForms页面中。我想以百分比控制滚动条移动。例如,如果我按下" down"键然后垂直滚动条应向下移动到页面高度的20%。我试过以下逻辑:

_imageViewer.VerticalScrollBar.Value += _imageHeight X ZoomFactor X .20
OR
_imageViewer.VerticalScrollBar.Value += pdfViewer1.VerticalScroll.Maximum X .20

这两种方法都没有给我确切的结果。我想我也应该考虑滚动条的拇指大小,但我不知道如何才能获得该值。

请建议我以图像高度或宽度的百分比移动滚动条的任何好方法。

1 个答案:

答案 0 :(得分:1)

您可以将ScrollBar Value属性指定为合适的值。如文档中所述,当用户按下其中一个箭头键或单击其中一个滚动条按钮时,SmallChange属性会根据vScrollBar1.SmallChange = ((vScrollBar1.Maximum - vScrollBar1.Minimum) * 20 / 100); 属性中设置的值更改。

示例:

def display_image_in_actual_size(im_path):

    dpi = 80
    im_data = plt.imread(im_path)
    height, width, depth = im_data.shape

    # What size does the figure need to be in inches to fit the image?
    figsize = width / float(dpi), height / float(dpi)

    # Create a figure of the right size with one axes that takes up the full figure
    fig = plt.figure(figsize=figsize)
    ax = fig.add_axes([0, 0, 1, 1])

    # Hide spines, ticks, etc.
    ax.axis('off')

    # Display the image.
    ax.imshow(im_data, cmap='gray')

    plt.show()

display_image_in_actual_size("./your_image.jpg")