Either save to separate powershell script file och copy paste to the script where you want to run it.
Here is the code for Show-MyMsgBox:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 |
function Show-MyMsgBox(){ <# .SYNOPSIS Shows a customizable Message Box. .DESCRIPTION A customizable Message Box. Window title is specified using the 'MsgBoxTitle' parameter. A title is shown above the Message body, this can be customized using the 'MsgTypeDescription' parameter, if left out this will default to window title. Message body can be either a textstring or a Xaml string (flowdocument). Font size can be specified. If used with a textstring for message body, this can be shown with fixed font. Several types can be chosen for the message box, these will default to either a Single 'OK' button or 'YES'/'NO' buttons. If a type defaults to OK this can be overridden by using the 'ShowYesNo' switch. A Info button that opens a link to a blogg post about the Message Box is shown by default, this can be Hidden by using the 'HideInfoButton' switch .PARAMETER MsgBoxTitle Specifies the window title. .PARAMETER MsgTypeDescription Specifies the inbox message title row. .PARAMETER MsgBoxBody Specifies the message body content, either a textstring or a Xaml document string. .PARAMETER XamlSource Switch that if used expects the MsgBoxBody parameter to be a Xaml document string. .PARAMETER MsgBoxType Specifies the message box type, either 'Information','Question','Warning' or 'Error'. If left out defaults to 'Information' .PARAMETER FontSize Specifies the font size, defaults to '12'. .PARAMETER FixedFont Switch that specifies if message should be displayed with fixed fount (Courier New). .PARAMETER DoubleWidth Switch that if used will double the width of the Messagebox. .PARAMETER ShowYesNo Switch that if used overrides the default button configuration for given MsgBoxType. .PARAMETER HideInfoButton Switch that if used hides to Info button. .PARAMETER UseSystemColors If used the message box color wont be adjusted depending of MsgBoxType .INPUTS None. You can't pipe objects to Add-Extension. .OUTPUTS System.String. Returns Yes, No or Ok. .EXAMPLE PS> Show-MyMsgBox -MsgBoxTitle 'My message box windows title' -MsgBoxBody 'Hello world' -MsgBoxType 'Information' -MsgTypeDescription 'This is a title row' -FontSize '14' Will return 'OK' if OK button is clicked or the key 'o' is selected. .LINK Blogg post with information: https://myraspberry.sandblom.it/2024/05/04/custom-message-box-with-xaml-gui/ #> #[CmdletBinding()] param ( [Alias('Title')] [Parameter(Mandatory)] [string] $MsgBoxTitle, [Alias('Body')] [Parameter(Mandatory)] [string] $MsgBoxBody, [Alias('Type')] [Parameter(Mandatory=$false)] [string] $MsgBoxType='Information', [Alias('Description','Desc','Header')] [Parameter(Mandatory=$false)] [string] $MsgTypeDescription, [Alias('fs')] [Parameter(Mandatory=$false)] [string] $FontSize, [Alias('ff')] [Parameter(Mandatory=$false)] [Switch] $FixedFont, [Alias('dblw')] [Parameter(Mandatory=$false)] [Switch] $DoubleWidth, [Alias('Xaml')] [Parameter(Mandatory=$false)] [Switch] $XamlSource, [Parameter(Mandatory=$false)] [Switch] $HTMLSource, [Parameter(Mandatory=$false)] [Alias('HBtn')] [Switch] $HideInfoButton, [Alias('YN')] [Parameter(Mandatory=$false)] [Switch] $ShowYesNo, [Parameter(Mandatory=$false)] [Switch] $UseBlueCircleIcons, [Parameter(Mandatory=$false)] [Switch] $UsePlainCircleIcons, [Parameter(Mandatory=$false)] [Switch] $UseSystemColors, [Parameter(Mandatory=$false)] [string] $BGImage )#> #region Variables # Variables used later on declared here for readability further down [xml]$xaml = @' <Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" Title="Message box Title" Height="400" Width="600" ResizeMode="NoResize"> <Grid x:Name="MsgBoxGrid"> <Grid.ColumnDefinitions> <ColumnDefinition Width="10"/> <ColumnDefinition/> <ColumnDefinition Width="10"/> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="10"/> <RowDefinition Height="40"/> <RowDefinition/> <RowDefinition Height="40"/> <RowDefinition Height="10"/> </Grid.RowDefinitions> <Button x:Name="Ok_Btn" Grid.Column="1" Content="_OK" HorizontalAlignment="Center" Margin="40,4,0,4" Grid.Row="3" Background="Transparent" BorderBrush="#7F707070" Padding="4,1,4,1" Width="50"/> <Button x:Name="Yes_Btn" Grid.Column="1" Content="_YES" HorizontalAlignment="Right" Margin="0,4,58,4" Grid.Row="3" Background="Transparent" BorderBrush="#7F707070" Padding="4,1,4,1" Width="50"/> <Border x:Name="MsgBoxBodyBorder" BorderBrush="#3F000000" BorderThickness="1" Grid.Column="1" Grid.Row="2" Margin="40,0,0,0"/> <RichTextBox x:Name="MsgBoxBody_Rtx" Grid.Column="1" Grid.Row="2" Padding="4,4,4,4" HorizontalScrollBarVisibility="Disabled" BorderBrush="{x:Null}" HorizontalAlignment="Center" Margin="44,4,4,4" IsReadOnly="True" VerticalContentAlignment="Stretch" Background="#99FFFFFF"> <FlowDocument> <Paragraph> <Run Text="MessageBox body text"/> </Paragraph> </FlowDocument> </RichTextBox> <Grid x:Name="Webbrowser_Grd" Grid.Column="1" Grid.Row="2" Margin="44,4,4,4" Visibility="Hidden"> <WebBrowser x:Name="WebBrowser_Wbrw" Opacity="1" OpacityMask="#FFFFFFFF"/> </Grid> <Button x:Name="No_Btn" Grid.Column="1" Content="_NO" HorizontalAlignment="Right" Margin="0,4,4,4" Grid.Row="3" Background="Transparent" BorderBrush="#7F707070" Padding="4,1,4,1" Width="50"/> <Label x:Name="MsgType_Lbl" Grid.Column="1" Content="Information/Question/Error" Grid.Row="1" Padding="4,0,4,0" VerticalAlignment="Center" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" FontSize="18" FontFamily="Segoe UI Semibold" Margin="44,0,4,0"/> <Image x:Name="MsgTypeImage_Img" Grid.Column="1" HorizontalAlignment="Left" Height="32" Grid.RowSpan="1" Grid.Row="1" Width="32" VerticalAlignment="Top" Margin="4,4,0,4" /> <Button x:Name="Info_Btn" Grid.Column="1" Content="Info" HorizontalAlignment="Left" Margin="44,4,0,4" Grid.Row="3" Background="Transparent" BorderBrush="#7F707070" Padding="4,1,4,1" Width="50" ToolTip="Click this button to open webpage describing the script"/> <Button x:Name="CopyMsgToCP_Btn" Content="COPY MESSAGE" HorizontalAlignment="Right" Margin="0,0,4,4" Grid.Row="2" Grid.Column="1" VerticalAlignment="Bottom" Background="{x:Null}" FontFamily="Segoe UI Light" FontSize="7" BorderThickness="1" BorderBrush="#3F707070" Foreground="#BF000000" Padding="3,2,3,2"/> </Grid> </Window> '@ $signature = @' [DllImport("user32.dll")] public static extern bool MoveWindow( IntPtr hWnd, int X, int Y, int nWidth, int nHeight, bool bRepaint); [DllImport("user32.dll")] public static extern IntPtr GetForegroundWindow(); [DllImport("user32.dll")] public static extern bool GetWindowRect( HandleRef hWnd, out RECT lpRect); public struct RECT { public int Left; // x position of upper-left corner public int Top; // y position of upper-left corner public int Right; // x position of lower-right corner public int Bottom; // y position of lower-right corner } '@ Add-Type -AssemblyName System.Windows.Forms $primaryScreen = [System.Windows.Forms.Screen]::PrimaryScreen $ScreenHeight = $primaryScreen.Bounds.Height $ScreenWidth = $primaryScreen.Bounds.Width $InfoImageBase64 = 'iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAABusAAAbrAUwxnkoAAAK9SURBVFhHzZdLaxNRFMfPPGJSR5vaJoKYZlNcKBSELlyJduNjo4hbl+ZjiIhfw00/gCiuxE0RQejKQqFVMVi7kIBpMCXTmGQenv+dmUwSEmfuJVF/8E/u3Jm559x7ztwHpcBkFVhXWA9ZfoLwDJ7FO3hXGZ2FRm6yxhlKI7yLNtDWWLTwf5QTrIus+6xHqBA8ng8LCTw5CguCp6znrD1WFxWDjHPgJOsq67W4AmkNjzLsyC3WO9axuAoZdQDGb7BeiCtVw6PEjtxjvWH1nRh0AMO+zgp6Pi3jEbETGIlNlghH5ACSZJW1La6mbTwiduIya4flRdm5yELCzc44iNuGLdgUPce3usaKs12Ghlejrc43qrnfw5o0wBZsmggBvtMfLJXe+7RhH9K+u0h5zaaK9YssvRjem0wciiJGYCUoK6FRycCE0+NSm/sjO/OtGPxzm3VHOfbLhktl84DWc/OU00RcE7meJXrbQWkLIUAPZpt84wjDMHGOTqTtN2jf2aWWF+SPImoONL06vWrXaeO4TM/sOfri1MI70qg5kNcLdHeuSAtah5r+Kao6HFQ11EOQ087QBTMjyga54l8BdQcQ+08OviKPTut2UCmPugNf3SYd+Rj6HhX0oSVWBnUHGp7FvwbngU1l43xQKQ8cqARFCXp+i7a7WL41Ws04lNFUJ5EKHMCyODg/J1P3DuinGH6fp18nqJQgtrUDB6pBWYKCXuKhR9x9+tDN0ufeR+r6Ej3oU0UWY2fynvVAzM+Yp5MwtCxdytjsxCGdMxACl5Z0i+tz4ROTiXuPndFe8Bnx3MbC6nAtlQMgq1lUMhdo2czTWWMplXEQLELYKb9ktf6bLRlGAft2DItcQqZlZOhZsDk0DyAXsG/H1nm6TsRtoW3Y6B9QBrflEf/0YBLx145mfwLhmfnhNA0zPJ4T/QZX9efs3tiwxwAAAABJRU5ErkJggg==' $QuestionImageBase64 = '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' $WarningImageBase64 = 'iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAATKSURBVFhHxVZLb5RVGH7ON/dbW2empTptbUuhNAWsQVBMtQQojU0qUhsKaoCwwxBduPA3GPeuXBiX/gN1a1y4UOpCqPWCLaBjoZZeZtppmeF5vplpoJ355iup4UmezDfnvO973nPOezl42jCl3+1CekEyav8DlsgVsmD/2waexAEv2UWeIg9qgPiZ/Ib8jVzXwP8Fi+whP/cY/JP0YFXUt8ZKc5JxDU/p1y0ayItegwuvJ9F4vhveV5rhya8hciuL1jywyHmdhq7DFbbjgI/sJ6/2RNF5qRfW2b1AXyMnLJg/5hCazeEZzt8gp0n6UxtuHVCstJDv11s4droT/rf3AB31QMwPROjavRWYyTnUrxbsQPyRXCBrwq0DYfIML/fS0SQS7/XAvNgEBKht0TU5oN+/5uGdziBJD25T/jq5JmUnuHFAQaVo/7DVjwPj3fAMtQNxJWEJXkroJJbXYH69i8j9B4hwWLGg4HRMTTcOJMjLAYPTQ60In+tmDjIUs0y2aYbcHMNNJ1FHBwJM0L+XYU3dR/wB/aHeNTIjI9VQywGaxXGe7pUDdWh5l0ffnwJCXGiGi3/xC1eYLTqUDBVPYZ37ZUD606uIU1d14U+S/lSGU84q8NrI8bgHXcfbYB19trhTTawxxm8yzER9a0xzkpGsdKRbsqHpinByQGV2mEd07KVGBAZppjVWDLZq0JxkJHuYOtLl8DBZLtlbUM0BXY0Cb6w9iCYGnXmB+R5UEa4ByUj2FHWky6ExUrYqXnc1B2gCYyGDvtdS8AywAuiOHTa/AclIVjrSlQ0OyQnZ3IJKDgTIARoaPtiAqFJOQaZUcwvJSke6siFbHB4gZfsxbDarDewmx5u8aD/ZBnOkmReoIrxNSEe6siFbHFJAyvZjB7nZgTpyhM2m/+Vd8J1gMKUYPk6BVw3Ska5syJZscniE1BobeNQBhdghcrQrhLgCb3+ShaBKpTBcgE3Ipr4rQbqyIVuyyaFRUmtshHPZvEywxOBKzMLJNzsQGGOzUUqx128Fx3IsLWEe8172P913jLe7WVT/lYuSm83CmvwPDbmCXZR+ItW6Nxxg3GKECpePJNCoZnNoV/W0k+Ew5zrZDfdw8XouXtFRQlehZqXpm/PwzWTs0j5DTpLrckDX0Et+kPKhjz3e80YHU4nNptrRCuU5LeClFQdR+5oirJKLObtZRRfz9oYnyH/lgB4RF30Go4MpRM/vA7o5UivtaAw/pFGY4XM0EYTRUVeDnFX/ULO6swTP1AISrN56L0xITeXy6v4YnlezYfGwvXXakfprehmFryZhfp+H6U2gwGtwOjBY3JBSU32DzSqQztlBeUMOfFRn4cRbfOWcYeC5STtNU8YwuAq7GQOMBRN0OAFBOsoKBeTdLMz14utpRWqfdoXR/M4+mMMsHLUMlSFjqQgMM8WESkFWC9qYriLDd9JEGt5ZPmbtm9aR6mg0sUTyZVOTkpVOWa+SzGbKdlmv/EyS459FLVwYakGk/zmWqQr5vFPQogurwHd3gK9vYXkpjy+1lprEx36DVxNehP1WxQa1Y8jlkb+3jgwL0vf8+4kc0PNSLXOQZBhu7Vg7DJ4BpshvyWvl01boqTjoNesyDJ8YKsV6sGZL308TwEN4uiRpZZrqVAAAAABJRU5ErkJggg==' $ErrorImageBase64 = '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' $Instrct48Base64 = "iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAADSUlEQVR4nO1ZzWsTQRRfWuvBg9Bkpli/LmKPPakoePDmXxBa9aJ0Zj0IWpCiBCF4aT1qbYkfRw9iRT1oi1BlXjS1ghFpqFLBS9OtgnWjoIWNFkbexg1pTMx+JJsN5gcPlp03s7/f5M3MmxdFaaGFFrwjMtHepcIBwiBKuLhHmXhLmchSJn7+sSzhMI9t6NPFxH4lJtuURqPzeGIH4eISZaBRDtKhLREGIyEmtvtOfMuJZ5RycZ1ykXNBvMREjnCId6uC+EI+rMJRyoXunfh6Iwy+EC7668dcTXVQBjdrTZyWGhPX8Fs15d6tpjZRJqbqTp4XwmoSv1nDmfeTPFghNa1E5jd65u9L2PAKIjjEPZEPs8SxRpGnloiBRJ8r8ltPTYcJg5Vyg1r4tvpLarohFz6uyuTCV3l75pO8cOeDPHQx9VcffIdt6IO+2EfTDXMMCxXWg+5qi83v8+VnxQ6m3qwU/PHZDmjF9SDGHZHH07H4kDoympbLWcORgGJCTv2Xs4bsv5Iu/hVynerznbYFmOlB0QzggF4IufHXdKN0Vxqxxz4m2zBPKRcyfgpArAslBhomjVX5Y1ZZKeYbKoCDDA0k9lUPHwbRoAqgqjhvJ/7vB1UA4XDXhgCYD6wAJtJVBZRLlYMjAFbsCMgFWIDxXwjQmzqESLMvYtL02ygL8EHG4FxVAVh0CqqAMIe9NpM5kfmXALRdp5Ny95mk7B2alXuiL+XB2Csz7T57670ce5yRc4vfC774jO+wDX3QF/v0Ds2aY+BY1b5HmVi0Xc3D1LXqgHU0CyU70LDi9kLTaAGEgRE6+WSbbQHmr8AhXnqhcYL49JLsGUzKnsEZeeOp5ri/VnShIQyuKk6xeeBFyLrU4/UOB/QLmm7IvsvpQsnRdd0Ua5VuQuDw8GuZeJeVq8aa/GGsmc/4zlVIqRBRvABrlX7FPi0xwsWY4hmRiXbC4IHvAhg8UmJiQ+2Ku1xM+ijgYe2KuxbUVEfxzlTXsInVaObLAWuVlUqOHol/9rxgndVNxTgeMJ6JMzBwn8dtW/EbeDrm0471uZM9ExlMDxyfsHVBTLZh0QnrNpiz48Ujf7PDdMQ0nXAxh22YEptZZRD+Zm2hBaX58RuxKnIxzpWEvAAAAABJRU5ErkJggg==" $PlainInformationBase64 = "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" $PlainQuestionBase64 = "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" $PlainWarningBase64 = "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" $PlainErrorBase64 = "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" $BlueInformationBase64 = "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" $BlueQuestionBase64 = "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" $BlueWarningBase64 = "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" $BlueErrorBase64 = "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" $PlainWhiteInstructionBase64 = "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" $PlainWhiteQuestionBase64 = "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" $PlainWhiteWarningBase64 = "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" $PlainWhiteErrorBase64 = "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" #endregion Variables #region Functions function Center-MyWindow { BEGIN { if ( 'WindowsUtils.Wutils' -as [type] ) {} else { Add-Type -MemberDefinition $signature -Name Wutils -Namespace WindowsUtils } } PROCESS { $phandle = [WindowsUtils.Wutils]::GetForegroundWindow() $o = New-Object -TypeName System.Object $href = New-Object -TypeName System.RunTime.InteropServices.HandleRef -ArgumentList $o, $phandle $rct = New-Object WindowsUtils.Wutils+RECT [WindowsUtils.Wutils]::GetWindowRect($href, [ref]$rct) $width = $rct.Right - $rct.Left $height = $rct.Bottom - $rct.Top $newX = ($ScreenWidth - $width)/2 $newY = ($ScreenHeight - $height)/2 [WindowsUtils.Wutils]::MoveWindow($phandle, $newX, $newY, $width, $height, $true) } } function Convert-Base64ImageToBitmap(){ param( [Parameter(Mandatory)] [string] $base64String ) # Convert the base64 string to a byte array $binaryData = [System.Convert]::FromBase64String($base64String) # Create a MemoryStream from the byte array $stream = [System.IO.MemoryStream]::new($binaryData) # Create a BitmapImage and set it as the source for the Image control $bitmapImage = New-Object System.Windows.Media.Imaging.BitmapImage $bitmapImage.BeginInit() # ensure that the image remains available for the lifetime of the BitmapImage $bitmapImage.CacheOption = [System.Windows.Media.Imaging.BitmapCacheOption]::OnLoad $bitmapImage.StreamSource = $stream $bitmapImage.EndInit() # Make sure to close the stream after the image is loaded $stream.Close() return $bitmapImage } #endregion Functions [void][System.Reflection.Assembly]::LoadWithPartialName('presentationframework') #[void][System.Windows.Forms.Application]::EnableVisualStyles() Add-Type -AssemblyName Microsoft.VisualBasic #Add-Type -AssemblyName System.Windows.Forms $reader=(New-Object System.Xml.XmlNodeReader $xaml) try { $Form=[Windows.Markup.XamlReader]::Load( $reader ) } catch { Write-Host "Unable to load Windows.Markup.XamlReader. Some possible causes for this problem include: .NET Framework is missing PowerShell must be launched with PowerShell -sta,invalid XAML code was encountered."t } # Load nodes from XAML source and create variables $xaml.SelectNodes("//*[@*[contains(translate(name(.),'n','N'),'Name')]]") | ForEach { New-Variable -Name $_.Name -Value $Form.FindName($_.Name) -Force } $Ok_Btn.BorderBrush = '#3F00FF00' $Yes_Btn.BorderBrush = '#3F00FF00' $No_Btn.BorderBrush = '#3FFF0000' switch ($MsgBoxType) { 'Information' { if( $MsgTypeDescription ){ $MsgType_Lbl.Content = $MsgTypeDescription } else { $MsgType_Lbl.Content = 'Information' } if ( $UseSystemColors.IsPresent -or $BGImage -ne '' ) {}else{ $MsgType_Lbl.Foreground = 'Green' $MsgBoxBodyBorder.BorderBrush = '#3F00FF00' $form.Background = '#FFF0FFF0' } if ( $UsePlainCircleIcons.IsPresent ) { if ( $BGImage -ne '' ) { $MsgTypeImage_Img.Source = Convert-Base64ImageToBitmap -base64String $PlainWhiteInstructionBase64 $form.Icon = Convert-Base64ImageToBitmap -base64String $PlainWhiteInstructionBase64 } else { $MsgTypeImage_Img.Source = Convert-Base64ImageToBitmap -base64String $PlainInformationBase64 $form.Icon = Convert-Base64ImageToBitmap -base64String $PlainInformationBase64 } } elseif ( $UseBlueCircleIcons.IsPresent ) { $MsgTypeImage_Img.Source = Convert-Base64ImageToBitmap -base64String $BlueInformationBase64 $form.Icon = Convert-Base64ImageToBitmap -base64String $BlueInformationBase64 }else{ $MsgTypeImage_Img.Source = Convert-Base64ImageToBitmap -base64String $InfoImageBase64 $form.Icon = Convert-Base64ImageToBitmap -base64String $InfoImageBase64 } if ( $ShowYesNo.IsPresent ) { $Ok_Btn.Visibility = 'Hidden' }else{ $Yes_Btn.Visibility = 'Hidden' $No_Btn.Visibility = 'Hidden' } } 'Question' { if( $MsgTypeDescription ){ $MsgType_Lbl.Content = $MsgTypeDescription } else { $MsgType_Lbl.Content = 'Question' } if ( $UseSystemColors.IsPresent -or $BGImage -ne '' ) {}else{ $MsgType_Lbl.Foreground = 'Blue' $form.Background = '#FFF0F0FF' $MsgBoxBodyBorder.BorderBrush = '#3F0000FF' } if ( $UsePlainCircleIcons.IsPresent ) { if ( $BGImage -ne '' ) { $MsgTypeImage_Img.Source = Convert-Base64ImageToBitmap -base64String $PlainWhiteQuestionBase64 $form.Icon = Convert-Base64ImageToBitmap -base64String $PlainWhiteQuestionBase64 } else { $MsgTypeImage_Img.Source = Convert-Base64ImageToBitmap -base64String $PlainQuestionBase64 $form.Icon = Convert-Base64ImageToBitmap -base64String $PlainInformationBase64 } } elseif ( $UseBlueCircleIcons.IsPresent ) { $MsgTypeImage_Img.Source = Convert-Base64ImageToBitmap -base64String $BlueQuestionBase64 $form.Icon = Convert-Base64ImageToBitmap -base64String $BlueQuestionBase64 }else{ $MsgTypeImage_Img.Source = Convert-Base64ImageToBitmap -base64String $QuestionImageBase64 $form.Icon = Convert-Base64ImageToBitmap -base64String $QuestionImageBase64 } $Ok_Btn.Visibility = 'Hidden' } 'Warning' { if( $MsgTypeDescription ){ $MsgType_Lbl.Content = $MsgTypeDescription } else { $MsgType_Lbl.Content = 'Warning' } if ( $UseSystemColors.IsPresent -or $BGImage -ne '' ) {}else{ $MsgType_Lbl.Foreground = 'Orange' $MsgBoxBodyBorder.BorderBrush = '#3FFF8000' $form.Background = '#FFFFF7F0' } if ( $UsePlainCircleIcons.IsPresent ) { if ( $BGImage -ne '' ) { $MsgTypeImage_Img.Source = Convert-Base64ImageToBitmap -base64String $PlainWhiteWarningBase64 $form.Icon = Convert-Base64ImageToBitmap -base64String $PlainWhiteWarningBase64 } else { $MsgTypeImage_Img.Source = Convert-Base64ImageToBitmap -base64String $PlainWarningBase64 $form.Icon = Convert-Base64ImageToBitmap -base64String $PlainWarningBase64 } } elseif ( $UseBlueCircleIcons.IsPresent ) { $MsgTypeImage_Img.Source = Convert-Base64ImageToBitmap -base64String $BlueWarningBase64 $form.Icon = Convert-Base64ImageToBitmap -base64String $BlueWarningBase64 }else{ $MsgTypeImage_Img.Source = Convert-Base64ImageToBitmap -base64String $WarningImageBase64 $form.Icon = Convert-Base64ImageToBitmap -base64String $WarningImageBase64 } if ( $ShowYesNo.IsPresent ) { $Ok_Btn.Visibility = 'Hidden' }else{ $Yes_Btn.Visibility = 'Hidden' $No_Btn.Visibility = 'Hidden' } } 'Error' { if( $MsgTypeDescription ){ $MsgType_Lbl.Content = $MsgTypeDescription } else { $MsgType_Lbl.Content = 'Error' } if ( $UseSystemColors.IsPresent -or $BGImage -ne '' ) {}else{ $MsgType_Lbl.Foreground = 'Red' $MsgBoxBodyBorder.BorderBrush = '#3FFF0000' $form.Background = '#FFFFF0F0' } if ( $UsePlainCircleIcons.IsPresent ) { if ( $BGImage -ne '' ) { $MsgTypeImage_Img.Source = Convert-Base64ImageToBitmap -base64String $PlainWhiteErrorBase64 $form.Icon = Convert-Base64ImageToBitmap -base64String $PlainWhiteErrorBase64 } else { $MsgTypeImage_Img.Source = Convert-Base64ImageToBitmap -base64String $PlainErrorBase64 $form.Icon = Convert-Base64ImageToBitmap -base64String $PlainErrorBase64 } } elseif ( $UseBlueCircleIcons.IsPresent ) { $MsgTypeImage_Img.Source = Convert-Base64ImageToBitmap -base64String $BlueErrorBase64 $form.Icon = Convert-Base64ImageToBitmap -base64String $BlueErrorBase64 }else{ $MsgTypeImage_Img.Source = Convert-Base64ImageToBitmap -base64String $ErrorImageBase64 $form.Icon = Convert-Base64ImageToBitmap -base64String $ErrorImageBase64 } if ( $ShowYesNo.IsPresent ) { $Ok_Btn.Visibility = 'Hidden' }else{ $Yes_Btn.Visibility = 'Hidden' $No_Btn.Visibility = 'Hidden' } } 'Instruction' { if( $MsgTypeDescription ){ $MsgType_Lbl.Content = $MsgTypeDescription } else { $MsgType_Lbl.Content = 'Instruction' } if ( $UseSystemColors.IsPresent -or $BGImage -ne '' ) {}else{ $MsgType_Lbl.Foreground = 'Blue' $form.Background = '#FFF0F0FF' $MsgBoxBodyBorder.BorderBrush = '#3F0000FF' } $MsgTypeImage_Img.Source = Convert-Base64ImageToBitmap -base64String $Instrct48Base64 $form.Icon = Convert-Base64ImageToBitmap -base64String $Instrct48Base64 if ( $ShowYesNo.IsPresent ) { $Ok_Btn.Visibility = 'Hidden' }else{ $Yes_Btn.Visibility = 'Hidden' $No_Btn.Visibility = 'Hidden' } }<# Default { $MsgType_Lbl.Content = '🛈 Information' $MsgType_Lbl.Foreground = 'Green' $MsgTypeImage_Img.Source = Convert-Base64ImageToBitmap -base64String $InfoImageBase64 $MsgBoxBodyBorder.BorderBrush = '#3F00FF00' $Yes_Btn.Visibility = 'Hidden' $No_Btn.Visibility = 'Hidden' }#> } $Form.Add_loaded({ if ( -not $HTMLSource.IsPresent ) { $DesiredFormHeight = 160 + $MsgBoxBody_Rtx.ExtentHeight if( $DesiredFormHeight -gt ($ScreenHeight - 200 )){ $DesiredFormHeight = $ScreenHeight - 240 } $Form.Height = $DesiredFormHeight $MsgBoxBody_Rtx.MaxHeight = $MsgBoxGrid.RowDefinitions[2].ActualHeight - 8 } Center-MyWindow }) $Form.Add_Closed({ #return $result }) if( $BGImage -ne '' ) { if ( $BGImage -match '^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=|[A-Za-z0-9+\/]{4})$') { # Detects if BGImage contains Base64Encoded string $imageBrush = New-Object System.Windows.Media.ImageBrush $imageBrush.ImageSource = Convert-Base64ImageToBitmap -base64String $BGImage if ( $imageBrush.ImageSource ) { $Form.Background = $imageBrush $MsgType_Lbl.Background = $MsgBoxBody_Rtx.Background $No_Btn.Background = $MsgBoxBody_Rtx.Background $Ok_Btn.Background = $MsgBoxBody_Rtx.Background $Yes_Btn.Background = $MsgBoxBody_Rtx.Background $Info_Btn.Background = $MsgBoxBody_Rtx.Background } } else { # A filepath is presumed $imageBrush = New-Object System.Windows.Media.ImageBrush if ( $BGImage -match '^[a-zA-Z]:\\(?:[^\\\/:*?\"<>|\r\n]+\\)*[^\\\/:*?\"<>|\r\n]*$' ) { # Absolute path detected $imageBrush.ImageSource = New-Object System.Windows.Media.Imaging.BitmapImage(New-Object System.Uri($BGImage, [System.UriKind]::Absolute)) }elseif ( $BGImage -match '^(?:\.\.\\|\.\\)?(?:[^\\\/:*?\"<>|\r\n]+\\?)*$' ) { # Relative path detected $imageBrush.ImageSource = New-Object System.Windows.Media.Imaging.BitmapImage(New-Object System.Uri($BGImage, [System.UriKind]::Relative)) } if ( $imageBrush.ImageSource ) { $Form.Background = $imageBrush $MsgType_Lbl.Background = $MsgBoxBody_Rtx.Background $No_Btn.Background = $MsgBoxBody_Rtx.Background $Ok_Btn.Background = $MsgBoxBody_Rtx.Background $Yes_Btn.Background = $MsgBoxBody_Rtx.Background $Info_Btn.Background = $MsgBoxBody_Rtx.Background } } } $Form.Title = $MsgBoxTitle #$MsgType_Lbl.Content = $MsgBoxType if ( $XamlSource.IsPresent ) { $MsgBoxBody_Rtx.Document = [System.Windows.Markup.XamlReader]::Parse($MsgBoxBody) }# elseif ( $HTMLSource.IsPresent ) { $Webbrowser_Grd.Visibility = "Visible" $MsgBoxBody_Rtx.Visibility = 'Hidden' if ( $MsgBoxBody -match 'HTML' ) { $WebBrowser_Wbrw.NavigateToString( $MsgBoxBody ) } elseif ( $MsgBoxBody -match '' ) { $WebBrowser_Wbrw.Navigate( $MsgBoxBody ) } }#> else { $MsgBoxBody_Rtx.Document.Blocks.Inlines.Text = $MsgBoxBody } if ( $FixedFont.IsPresent -and -not $XamlSource.IsPresent ) { $MsgBoxBody_Rtx.FontFamily = "Courier New" $MsgBoxBody_Rtx.FontSize = if($FontSize){$FontSize}else{"12"} } else { $MsgBoxBody_Rtx.FontSize = if($FontSize){$FontSize}else{"12"} } if ( $DoubleWidth.IsPresent ) { $Form.Width = "1200" } if ( $HideInfoButton ) { $Info_Btn.Visibility = 'Hidden' } $Ok_Btn.Add_Click({ $global:result = [System.Windows.Forms.DialogResult]::OK ; $form.Close() }) $Yes_Btn.Add_Click({ $global:result = [System.Windows.Forms.DialogResult]::Yes ; $form.Close() }) $No_Btn.Add_Click({ $global:result = [System.Windows.Forms.DialogResult]::No ; $form.Close() }) $Info_Btn.Add_Click({ Start-Process 'https://myraspberry.sandblom.it/2024/05/04/custom-message-box-with-xaml-gui/' }) $CopyMsgToCP_Btn.Add_Click({ # Add necessary types for WPF functionality Add-Type -AssemblyName PresentationFramework $rtbRange = New-Object System.Windows.Documents.TextRange( $MsgBoxBody_Rtx.Document.ContentStart, $MsgBoxBody_Rtx.Document.ContentEnd ) # Save RTF-content in a MemoryStream $memoryStream = New-Object System.IO.MemoryStream $rtbRange.Save($memoryStream, [System.Windows.DataFormats]::Rtf) # Create a DataObject with RTF-content $dataObject = New-Object System.Windows.DataObject $dataObject.SetData([System.Windows.DataFormats]::Rtf, $memoryStream) $dataObject.SetData([System.Windows.DataFormats]::UnicodeText, $rtbRange.Text) # Copy DataObject to clipboard [System.Windows.Clipboard]::SetDataObject($dataObject, $true) }) $form.Add_KeyDown({ param($sender, $e) if (<#$e.Alt -and#> $e.KeyCode -eq 'O') { $Ok_Btn.RaiseEvent([System.Windows.RoutedEventArgs]::new([System.Windows.Controls.Primitives.ButtonBase]::ClickEvent)) } if (<#$e.Alt -and#> $e.KeyCode -eq 'Y') { $Yes_Btn.RaiseEvent([System.Windows.RoutedEventArgs]::new([System.Windows.Controls.Primitives.ButtonBase]::ClickEvent)) } if (<#$e.Alt -and#> $e.KeyCode -eq 'N') { $No_Btn.RaiseEvent([System.Windows.RoutedEventArgs]::new([System.Windows.Controls.Primitives.ButtonBase]::ClickEvent)) } }) $async = $form.Dispatcher.InvokeAsync({ $form.ShowDialog() | Out-Null }) $async.Wait() | Out-Null return $global:result } |
Pingback: Simple Flowdox / Xaml Editor | My Raspberry Wordpress