quarta-feira, 25 de fevereiro de 2009

Código Fonte como HTML

Uma grande ajuda na hora de usar um tutorial de internet é poder copiar diretamente o código ou pelo menos ver o fonte exatamente como fica na IDE. O grande problema é que se copiarmos diretamente o fonte da IDE para o editor WYSIWYG da web a formatação fica toda perdida, e muitas vezes vemos que o criador coloca uma imagem do código, neste caso impossibilitando uma cópia fácil. Pois bem, foram nas minhas andanças pelos blogs dos grandões da MSDN que me deparei com o CopySourceAsHtml. Este Add-in para Visual Studio adiciona ao menu de contexto a opção de fazer uma cópia do código fonte como Html. Ao colar o código ele estará todo formatado com código html e ficará praticamente igual ao código na IDE. É esta ferramenta que tenho usado nos meus últimos posts e facilita bastante a vida do criador do post e do leitor também. Mais algumas maravilhas do cinto de utilidades de Scott Hanselman's podem ser encontradas aqui.

segunda-feira, 2 de fevereiro de 2009

Silverlight: Interoperabilidade

Mais um exemplo de Silverlight pode ser conferido aqui. E esse quase acertei no
Free Image Hosting at www.ImageShack.us
Design. Neste exemplo mostro como é possível interagir com a página HTML diretamente de dentro do Silverlight. Da mesma forma que podemos fazer com que o Silverlight responda a eventos disparados na página HTML.


    public HtmlElement HtmlDiv { get; set; }

    public HtmlElement HtmlButton { get; set; }

 

    public Page()

    {

      // Required to initialize variables

      InitializeComponent();

      this.HtmlDiv =

        HtmlPage.Document.GetElementById("myDiv");

 

      this.HtmlButton =

        HtmlPage.Document.GetElementById("btnId");

 

      this.HtmlButton.AttachEvent(

        "onclick",

        new EventHandler<HtmlEventArgs>(ToSilverlight_OnClick)); 

    }

Nesse caso, estou apenas escrevendo e lendo dentro do innerHTML de uma div na página através dos métodos da classe ScriptObject GetProperty e SetProperty. De dentro do Silverlight associo um evento de um botão HTML comum e digo que o Silverlight passará a responder a esse evento.

    public string DivInnerHTML

    {

      get

      {

        return this.HtmlDiv.GetProperty("innerHTML").ToString();

      }

      set

      {

        this.HtmlDiv.SetProperty("innerHTML", value);

      }

    }

Como podemos ver a forma como o Silverlight interage com a página através de código gerenciado torna a vida de nós desenvolvedores muito mais fácil.