Vb.net 从特定位置在picturebox中显示图像

Vb.net 从特定位置在picturebox中显示图像,vb.net,Vb.net,我有一个图片盒,可以作为按钮“工作”。我已将图像贴图加载为背景图像,以用于按钮条件(单击、悬停等) 默认情况下,背景图像显示其位于左上方的第一个图标。比如说,我如何将(x)移动到32px,将(y)移动到64?类似css样式的东西背景位置:32px 64px。如果需要重新定位图像,则我不会使用图片盒,而只使用面板,或在表单表面绘制图像 尽管有以下代码,但这是可能的。请注意,它会删除PictureBox的图像,因此您将失去PictureBox的功能 Public Class Form1 Pr

我有一个图片盒,可以作为按钮“工作”。我已将图像贴图加载为背景图像,以用于按钮条件(单击、悬停等)


默认情况下,背景图像显示其位于左上方的第一个图标。比如说,我如何将(x)移动到32px,将(y)移动到64?类似css样式的东西背景位置:32px 64px

如果需要重新定位图像,则我不会使用
图片盒,而只使用
面板,或在表单表面绘制图像

尽管有以下代码,但这是可能的。请注意,它会删除PictureBox的图像,因此您将失去PictureBox的功能

Public Class Form1
    Private _moveIt As Boolean = False
    Private _coyote As Image

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        _coyote = PictureBox1.Image
    End Sub
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        _moveIt = True
        PictureBox1.Invalidate()
    End Sub

    Private Sub PictureBox1_Paint(sender As Object, e As PaintEventArgs) Handles PictureBox1.Paint
        If _moveIt = True Then
            PictureBox1.Image = Nothing
            e.Graphics.DrawImage(_coyote, New Rectangle(New Point(32, 64), _
                                                        New Size(_coyote.Width, _coyote.Height)))
        End If
    End Sub
End Class
要保留PcitureBox的功能(使用其图像属性),必须创建一个新图像,该图像是原始图像的转换版本


如果您需要重新定位图像,那么我不会使用
图片盒,只使用
面板或在表单表面绘制图像

尽管有以下代码,但这是可能的。请注意,它会删除PictureBox的图像,因此您将失去PictureBox的功能

Public Class Form1
    Private _moveIt As Boolean = False
    Private _coyote As Image

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        _coyote = PictureBox1.Image
    End Sub
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        _moveIt = True
        PictureBox1.Invalidate()
    End Sub

    Private Sub PictureBox1_Paint(sender As Object, e As PaintEventArgs) Handles PictureBox1.Paint
        If _moveIt = True Then
            PictureBox1.Image = Nothing
            e.Graphics.DrawImage(_coyote, New Rectangle(New Point(32, 64), _
                                                        New Size(_coyote.Width, _coyote.Height)))
        End If
    End Sub
End Class
要保留PcitureBox的功能(使用其图像属性),必须创建一个新图像,该图像是原始图像的转换版本