| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- Public Class MetroMsgbox
- Private MyConverter As MyMsgboxConverter
- Public Sub New(ByVal Converter As MyMsgboxConverter)
- InitializeComponent()
- btn1.Name = btn1.Name & GetUUID()
- btn2.Name = btn2.Name & GetUUID()
- btn3.Name = btn3.Name & GetUUID()
- MyConverter = Converter
- labTitle.Text = Converter.Title
- labCaption.Text = Converter.Caption
- btn1.Text = Converter.Button1
- If Converter.IsWarn Then btn1.ColorType = Button.State.RED
- btn2.Text = Converter.Button2
- btn3.Text = Converter.Button3
- btn2.Visibility = If(Converter.Button2 = "", Visibility.Collapsed, Visibility.Visible)
- btn3.Visibility = If(Converter.Button3 = "", Visibility.Collapsed, Visibility.Visible)
- End Sub
- Private Sub Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Loaded
- Try
- log("[MsgBox] 显示弹窗:" & labTitle.Text)
- log("[MsgBox] 弹窗内容:" & Mid(labCaption.Text, 1, 400) & If(Len(labCaption.Text) > 400, "...", ""))
- If panCaption.ActualWidth = panMain.ActualWidth Then panMain.Width = panMain.ActualWidth + 75
- panMain.UpdateLayout()
- '配色初始化
- If btn2.IsVisible And Not btn1.ColorType = Button.State.RED Then btn1.ColorType = Button.State.HIGHLIGHT
- '延时执行的动画
- Me.Name = "frm" & GetUUID()
- AniStart({
- AaBackGround(Me, New MyColor(20, 0, 0, 0), 500, , New AniEaseStart),
- AaBackGround(panMain, New MyColor(255, 0, 0, 0), 300, , New AniEaseStart),
- AaOpacity(shadow, 0.75, 600, 150),
- AaWidth(line, panMain.ActualWidth - 40, 350, 150, New AniEaseEnd),
- AaOpacity(line, 1, 250, 150),
- AaWidth(labTitle, labTitle.ActualWidth, 250, 200, New AniEaseEnd),
- AaOpacity(labTitle, 1, 200, 200),
- AaOpacity(panCaption, 1, 250, 250),
- AaHeight(btn1, btn1.ActualHeight, 150, 300),
- AaHeight(btn2, btn2.ActualHeight, 150, 350),
- AaHeight(btn3, btn3.ActualHeight, 150, 400)
- }, "MsgboxStart" & Me.Name)
- '动画初始化
- panBtn.Height = panBtn.ActualHeight
- btn1.Height = 0
- btn2.Height = 0
- btn3.Height = 0
- labTitle.Width = 0
- labTitle.Opacity = 0
- labTitle.TextWrapping = TextWrapping.NoWrap
- panCaption.Opacity = 0
- Catch ex As Exception
- ExShow(ex, "弹窗显示失败", ErrorLevel.AllUsers)
- End Try
- End Sub
- Private Sub CloseWindow()
- log("[MsgBox] 关闭弹窗,返回值:" & MyConverter.ReturnCode)
- AniStart({
- AaBackGround(Me, New MyColor(-20, 0, 0, 0), 300, , New AniEaseStart),
- AaBackGround(panMain, New MyColor(-255, 0, 0, 0), 300, 100, New AniEaseStart),
- AaOpacity(shadow, -0.75, 150),
- AaWidth(line, -line.ActualWidth, 250, , New AniEaseStart),
- AaOpacity(line, -1, 150, 100),
- AaWidth(labTitle, -labTitle.ActualWidth, 250),
- AaOpacity(labTitle, -1, 200),
- AaOpacity(panCaption, -1, 200),
- AaHeight(btn1, -btn1.ActualHeight, 150, 60),
- AaHeight(btn2, -btn2.ActualHeight, 150, 30),
- AaHeight(btn3, -btn3.ActualHeight, 150),
- AaCode({"Close", Me}, , True)
- }, "MsgboxClose" & Me.Name)
- End Sub
- Private Sub MetroMsgbox_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Input.KeyEventArgs) Handles Me.KeyDown
- If e.Key = Key.Enter Then btn1_Click()
- End Sub
- Private Sub btn1_Click() Handles btn1.Click
- If MyConverter.IsExited Then Exit Sub
- MyConverter.IsExited = True
- MyConverter.ReturnCode = 1
- CloseWindow()
- End Sub
- Private Sub btn2_Click() Handles btn2.Click
- If MyConverter.IsExited Then Exit Sub
- MyConverter.IsExited = True
- MyConverter.ReturnCode = 2
- CloseWindow()
- End Sub
- Private Sub btn3_Click() Handles btn3.Click
- If MyConverter.IsExited Then Exit Sub
- MyConverter.IsExited = True
- MyConverter.ReturnCode = 3
- CloseWindow()
- End Sub
- End Class
|