// Once image loading is complete this method is called and the visibility of the
        // two GUIImages is swapped.
        private void imageResource_ImageLoadingComplete(AsyncImageResource image)
        {
            lock (loadingLock)
            {
                if (_guiImageOne == null)
                {
                    return;
                }

                if (_filename == null)
                {
                    if (_guiImageOne != null)
                    {
                        _guiImageOne.Visible = false;
                    }
                    if (_guiImageTwo != null)
                    {
                        _guiImageTwo.Visible = false;
                    }
                    return;
                }

                _guiImageOne.ResetAnimations();
                if (_guiImageTwo != null)
                {
                    _guiImageTwo.ResetAnimations();
                }

                // if we have a second backdrop image object, alternate between the two
                if (_guiImageTwo != null)
                {
                    if (_imageResource.Property.Equals(_propertyOne))
                    {
                        _guiImageOne.Visible = _active;
                        _guiImageTwo.Visible = false;
                    }
                    else
                    {
                        _guiImageOne.Visible = false;
                        _guiImageTwo.Visible = _active;
                    }

                    imagesNeedSwapping = true;
                }


                // if no 2nd backdrop control, just update normally
                else
                {
                    _guiImageOne.Visible = _active;
                }

                if (_loadingImage != null)
                {
                    _loadingImage.Visible = false;
                }
            }
        }
 public ImageSwapper()
 {
     _imageResource = new AsyncImageResource();
     _imageResource.Property = _propertyOne;
     _imageResource.ImageLoadingComplete += new AsyncImageLoadComplete(imageResource_ImageLoadingComplete);
 }
        // Once image loading is complete this method is called and the visibility of the
        // two GUIImages is swapped.
        private void imageResource_ImageLoadingComplete(AsyncImageResource image)
        {
            lock (loadingLock)
            {
                if (_guiImageOne == null)
                    return;

                if (_filename == null)
                {
                    if (_guiImageOne != null) _guiImageOne.Visible = false;
                    if (_guiImageTwo != null) _guiImageTwo.Visible = false;
                    return;
                }

                _guiImageOne.ResetAnimations();
                if (_guiImageTwo != null) _guiImageTwo.ResetAnimations();

                // if we have a second backdrop image object, alternate between the two
                if (_guiImageTwo != null)
                {
                    if (_imageResource.Property.Equals(_propertyOne))
                    {
                        _guiImageOne.Visible = _active;
                        _guiImageTwo.Visible = false;
                    }
                    else
                    {
                        _guiImageOne.Visible = false;
                        _guiImageTwo.Visible = _active;
                    }

                    imagesNeedSwapping = true;
                }

                // if no 2nd backdrop control, just update normally
                else _guiImageOne.Visible = _active;

                if (_loadingImage != null) _loadingImage.Visible = false;
            }
        }
 public ImageSwapper()
 {
     _imageResource                       = new AsyncImageResource();
     _imageResource.Property              = _propertyOne;
     _imageResource.ImageLoadingComplete += new AsyncImageLoadComplete(imageResource_ImageLoadingComplete);
 }