を使用してアニメーション化形サイズの変更にVB.NET
質問
い形の位置を少し上回のタスクバー/システムトレイの右下隅のデスクトップウインドウです。このようなポップアップ通知する通知そのものを感があるボタンでリサイズ、形状、使用してアニメーション化のサイジング単位で5pxを抑えながらの相対位置の右下隅にチェックを入れます。
の問題をこなうやって見させていただくとスムーズです。調整 ました。幅 サイズ左からだを動かすのが残 ました。左 を賠償する一ました。SetBoundsだけるようラッパーのための設定この特性。
ってどうにかなるものなんですい形で円滑に(少なくとも表示されるサイズの変更から外側に向かのものです。
解決
ETA: でき、実際には、この利用 SetBounds
, として SetBounds
を委任する SetBoundsCore
るのが呼び出すメソッド SetWindowPos
.なので SetBounds
ま内部でおすすべての境界が一気にウィンドウマネージャは再描画を画面のみ 後 すべての特性の設定を行います。
別のオプションをインポートするには MoveWindow
機能 その代わりにで滑らかなアニメのことで設定でき位置とサイズを同時に 前 せっかくウィンドウマネージャを再描画します。
私の試験コードのように見えるこの換算からはC#によIL VBからの支援もありリフレクタ):
Private button1 As Button
Private components As IContainer = Nothing
Private tm As Timer = New Timer
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs)
MyBase.Left = (Screen.PrimaryScreen.WorkingArea.Width - MyBase.Width)
MyBase.Top = (Screen.PrimaryScreen.WorkingArea.Height - MyBase.Height)
Me.tm.Enabled = False
Me.tm.Interval = 20
AddHandler Me.tm.Tick, Function
If (MyBase.Width < 500) Then
Form1.MoveWindow(MyBase.Handle, (MyBase.Left - 5), (MyBase.Top - 5), (MyBase.Width + 5), (MyBase.Height + 5), True)
Else
Me.tm.Enabled = False
End If
End Function
End Sub
<DllImport("user32.dll", SetLastError:=True)> _
Friend Shared Function MoveWindow(ByVal hWnd As IntPtr, ByVal X As Integer, ByVal Y As Integer, ByVal nWidth As Integer, ByVal nHeight As Integer, ByVal bRepaint As Boolean) As Boolean
End Function
他のヒント
私はこれを試したことがない、しかし、あなたはTrueに、フォームののDoubleBufferプロパティを設定しようとしましたか?これは、図面を滑らかにする必要があります。
あなたはそれが同様に1-2までインクリメントのピクセル手順を減らしてみてください、5pxのサイズを調整することが多いように思える、私はこれが途切れ途切れに表示される可能性がどのように見ることができます。