【问题标题】:Replace background image by fading通过淡入淡出替换背景图像
【发布时间】:2012-09-08 11:02:39
【问题描述】:

我在 VB.Net 中有一个 WinForm,背景中的一些图像由计时器每 5 秒更改一次。问题是它们会立即改变,这看起来不太好。我想添加一些淡入效果,但我得到了不透明度不是tableLayout.backgroundimage 的属性的错误。我只能淡化表格,但这不是我想要的。

这是我的代码:

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    If imageNum > 3 Then
        imageNum = 1
    End If
    Select Case imageNum
        Case 1
            Me.TableLayoutPanel4.BackgroundImage = Global.posta1.My.Resources.Resources.foto1
            For FadeIn = 0.0 To 1.1 Step 0.1
                Me.Opacity = FadeIn
                Threading.Thread.Sleep(100)
            Next
            rd_btn1.Checked = False
            rd_btn2.Checked = True
        Case 2
            Me.TableLayoutPanel4.BackgroundImage = Global.posta1.My.Resources.Resources.foto3
            rd_btn2.Checked = False
            rd_btn3.Checked = True
            For FadeIn = 0.0 To 1.1 Step 0.1
                Me.Opacity = FadeIn
                Threading.Thread.Sleep(100)
            Next
        Case 3
            Me.TableLayoutPanel4.BackgroundImage = Global.posta1.My.Resources.Resources.foto2
            For FadeIn = 0.0 To 1.1 Step 0.1
                Me.Opacity = FadeIn
                Threading.Thread.Sleep(100)
            Next
            rd_btn3.Checked = False
            rd_btn1.Checked = True
    End Select
    imageNum = imageNum + 1
End Sub

【问题讨论】:

    标签: image vb.net-2010 effects


    【解决方案1】:

    据我所知,不可能设置单个控件的不透明度,也许您可​​以通过自己绘制控件来做到这一点,但您必须对此进行研究,因为我对自己绘制控件一无所知..

    【讨论】:

      【解决方案2】:

      我是一个新手,但我认为可以绘制(使用控件的绘制事件的PaintEventArgs 参数)来做到这一点:

      • 同时绘制旧图和新图。

      • 减少旧图片的 alpha 值,同时增加新图片的 alha 值,直到它们分别为 0.01.0

      希望这会有所帮助。对不起,如果没有。

      ;)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-27
        • 2011-08-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多