Personalization
Image & Colors¶
Brand your AnyBox with an image. The -Image
parameter accepts either:
- The path to an accessible image file (.png, .jpg, etc.)
- The base64 encoded string representing an image.
Additionally, -FontFamily
, -FontColor
, and -BackgroundColor
allow you to
[hashtable]$font = @{ FontFamily = 'Courier New'; FontColor = 'CornflowerBlue'; FontSize=20 }
Show-AnyBox @font -WindowStyle 'None' -Message 'Hello World', 'Are you ready?' -Buttons 'Yes' `
-BackgroundColor 'Black' -Image '.\banner.png'
By using a base64 string representing the image, you can save and reuse the string without worrying about whether or not the image file is accessible. For convenience, the AnyBox module includes a function ConvertTo-Base64
which accepts the path to an image file as input, and returns the base64 representation of it.
Window Style¶
Since AnyBox uses the default Windows modal, all of the System.Window.WindowStyle
options are available:
- None
- Single Border Window
- 3D Border Window
See: stackoverflow.com/a/7482728
- Tool Window
Similarly, all System.Windows.ResizeMode
options are available (detailed here).
A few notes on -ResizeMode
... Maximizing and Minimizing is considered "resizing". Thus:
- "NoResize" will hide the minimize and maximize buttons, and will not allow users to resize the window.
- "CanMinimize" will show the minimize button, but disable the maximize button and will not allow users to resize the window.
- "CanResize" and "CanResizeWithGrip" will show the minimize and maximize buttons, and allow users to resize the window.
Timeout¶
Lastly, the AnyBox has a timeout feature that will close the window after the specified number of seconds. It is configured using the -Timeout
and, when specified, the AnyBox output will include a key named TimedOut
to indicate if the timeout was reached.
The switch parameter -Countdown
will show a countdown in the AnyBox.
Name Value
---- -----
I feel fine False
TimedOut True
Scripting Options¶
Users can provide their own options and more via the use of the -PrepScript
parameter. Pass a script block here, and it will be ran before the window is shown. The advantage is that all of the form variables, stored in the variable $_
, are accessible. The options with -PrepScript
are endless, so I'll just provide this example, which exports all variables to a grid view prior to showing the window:
Show-AnyBox -Message 'Testing' -PrepScript {
Get-Variable | Out-GridView -Title 'AnyBox Vars'
}