Tuesday, October 15, 2013

Extract all images from a toolbar image list

Ever have to change a toolbar image but the loaded image files no longer exist?
Here is a solution to run on the aplication and save the image files.

Receives an image list as parameter:

private string SaveAllToolbarImages(ImageList imgList)
        {
            if (toolBar == null)
            {
                return "No images";
            }

            try
            {
                string imgsPath = Path.GetDirectoryName(Application.ExecutablePath) + "\\ImagesFromToolbar";
                Directory.CreateDirectory(imgsPath);

                for (int x = 0; x < imgList.Images.Count; ++x)
                {
                    Image temp = imgList.Images[x];
                    temp.Save(imgsPath + "\\" + imgList.Images.Keys[x]);
                }
            }
            catch (System.Exception ex)
            {
                 return "Exception: " + ex.Message;
            }

            return "";
        }

Usage:

SaveAllToolbarImages(this.imageListToolbar);

Monday, July 29, 2013

WPF - C# Setting a Button Style by Style name

To set a style given a resource name, implement a setter like the following:

In the resources file should be the referenced name:
Style x:Key="BtnMenuStyle" TargetType="Button"
And the setter as follows:
public string SetStyle        {
            set
            {
                Style st = (Style)FindResource(value);
                if (st != null)
                {
                    Btn.Style = st;
                }
            }
            get
            {
                return Btn.Style.ToString();
            }
        }

Friday, May 03, 2013

C# - Carregar WSDL para solution

Pré-requisitos são o WSDL e o SDK para Windows V7 ou acima.

Pode parecer demasiado óbvio mas só agora deparei-me com esta necessidade, visto na maior parte dos casos ter-me sido sempre dada a dita classe correspondente.

Os passos são os seguintes:

Utilizar a aplicação SvcUtil.exe localizada em C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin, em linha de comandos

Colocar simplesmente o WSDL como parametro e executar.

Mais simples era impossível, gera automaticamente o ficheiro .CS com o nome definido no WSDL na tag "name".

Basta apenas copiar/mover a classe para o projecto e utilizar os objectos/métodos directamente.