Skip to content

Personalization

Image & Colors

Brand your AnyBox with an image. The -Image parameter accepts either:

  1. The path to an accessible image file (.png, .jpg, etc.)
  2. 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'
}