/// <summary>
        /// Called when [balloon type changed].
        /// </summary>
        /// <param name="d">The d.</param>
        /// <param name="e">The <see cref="DependencyPropertyChangedEventArgs"/> instance containing the event data.</param>
        private static void OnBalloonTypeChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            HelpBalloon helpBalloon = (HelpBalloon)d;

            if (helpBalloon.BalloonType == BalloonType.Help)
            {
                helpBalloon.imageControl.Source = Properties.Resources.help20.ToBitmapImage();
            }
            else
            {
                helpBalloon.imageControl.Source = Properties.Resources.information20.ToBitmapImage();
            }
        }
        /// <summary>
        /// Called when [balloon type changed].
        /// </summary>
        /// <param name="d">The d.</param>
        /// <param name="e">The <see cref="DependencyPropertyChangedEventArgs"/> instance containing the event data.</param>
        private static void OnBalloonTypeChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            HelpBalloon helpBalloon = (HelpBalloon)d;

            switch (helpBalloon.BalloonType)
            {
            case BalloonType.Help:
                helpBalloon.imageControl.Source = Properties.Resources.help20.ToBitmapImage();
                break;

            case BalloonType.Information:
                helpBalloon.imageControl.Source = Properties.Resources.information20.ToBitmapImage();
                break;

            case BalloonType.Warning:
                helpBalloon.imageControl.Source = Properties.Resources.warning20.ToBitmapImage();
                break;

            default:
                throw new InvalidOperationException("unsupported BalloonType");
            }
        }