Quick tip: Convert images from any format to XAML 8/3/10
Hey there!
For today’s quick tip I’ll show how to convert images from any 2D vector format (and I really mean ANY) to XAML. It’s pretty simple!
Note: if your image is in a bitmap format (e.g. JPEG, PNG, GIF, PSD, etc), you should simply convert it to PNG or JPEG using any image editor and use it directly as a bitmap image in your app. This method is only necessary for vector file formats.
Note 2: There are specialized converters for many formats that might yield better results. I’d recommend searching the web to see if there isn’t a converter for your format before trying this method.
Requirements:
- Expression Design (tip: Students can get it for free with Dreamspark)
- PDFCreator
Steps:
- Open your image in your favorite image viewer. In this example, I’ll open an SVG from Wikipedia with Firefox.

- Print the image to PDF with PDFCreator.

- Rename the PDF file to AI using Windows Explorer. (e.g. “image.pdf” becomes “image.ai”)


- Open the AI file with Expression Design. You might now want to delete some parts of the image that you don’t want to be exported.

- Save it to XAML as usual using File > Export… in Expression Design.

Yes, it’s THAT simple! Enjoy!
See you next time,
Roberto
Categories: Dicas, Expression, Silverlight, WPF
Quick WPF/Silverlight tip: Generic Converter MarkupExtension 4/3/10
Hey there!
It’s been quite a while since the last English post – XAMLCast has been taking much of my blogging time
Today’s tip is an expansion of a method originally developed by Dr. WPF in this post: http://www.drwpf.com/blog/Home/tabid/36/EntryID/48/Default.aspx .
Usually, when working with Converters in WPF/SL, we always follow the same steps:
- Create a class that derives from IValueConverter:
public MyConverter : IValueConverter {} - Implement Convert (and sometimes ConvertBack)
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { // convert and return something } - Instantiate the converter as a resource and use it:
<ResourceDictionary ...> <local:MyConverter x:Key="TheConverter" /> </ResourceDictionary> ... {Binding Converter={StaticResource TheConverter} ...}
Well, it works but it’s not a compact syntax. Following Dr. WPF’s idea, we can use a MarkupExtension to replace the StaticResource by a static instance of the Converter:
public class MyConverter: MarkupExtension, IValueConverter
{
private static MyConverter _converter;
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
// convert and return something
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
// convert and return something (if needed)
}
public override object ProvideValue(IServiceProvider serviceProvider)
{
if (_converter == null)
_converter = new MyConverter();
return _converter;
}
}
Usage:
xmlns:conv="[Path to namespace that contains the converter]"
...
{Binding Converter={conv:MyConverter}}
Now that’s pretty!
The only problem is that with this method, you’d have to repeat the implementation of the ProvideValue for each converter you create, and we programmers hate repeating ourselves
One solution I found is to create a generic abstract class that will contain that implementation, and derive each converter from that class. It’s cleaner and works the same:
using System;
using System.Windows.Data;
using System.Windows.Markup;
namespace VirtualDreams.Converters
{
[MarkupExtensionReturnType(typeof(IValueConverter))]
public abstract class ConverterMarkupExtension<T> : MarkupExtension where T : class, IValueConverter, new()
{
private static T _converter;
public override object ProvideValue(IServiceProvider serviceProvider)
{
if (_converter == null)
{
_converter = new T();
}
return _converter;
}
}
}
Let’s apply it to MyConverter:
public class MyConverter: ConverterMarkupExtension<MyConverter>, IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
// convert and return something
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
// convert and return something (if needed)
}
}
Usage:
xmlns:conv="[Path to namespace that contains the converter]"
...
{Binding Converter={conv:MyConverter}}
Simpler, less repetitive – that’s the way I like it!
Happy converting!
Roberto
Comment this postCategories: .net, Dicas, Silverlight, WPF
XAMLCast – 2a Temporada – Episódio 8 – MVPs do ano Silverlight, Windows Phone 7, MIX 10K e Silverlight 3D 24/2/10
Olá olá pessoal!

Já estamos na edição 8 e as novidades não param.
Já tem gente pedindo o XAMLCast duas vezes por semana (caramba).
No podcast desta semana falamos dos MVPs de Silverlight que foram destaque em 2009, falamos do Windows Phone e também discutimos um pouco sobre os projetos de 3D no Silverlight.
Ouça e mande sua opinião e comentário!
Seguem os links relacionados ao podcast:
- MVPs do ano de Silverlight
- Post do Tim Heuer com a divulgação
- Laurent Bugnion
- Dave Campbell
- Windows Phone 7
- Conheça:
- Especulações do Silverlight no Windows Phone
- Entrevista de Ballmer para o TechCrunch
- Competições de Silverlight
- MIX 10K
- SilverlightShow EcoContest
- Silverlight 3D
- Projeto Balder (2D e 3D para Silverlight, XNA e OpenGL)
- Kit3D (3D no Silverlight 2)
- Google investindo na Web 3D
- Livro que explica como fazer jogos 3D com Balder e Farseer
- Artigo: como desenvolver em 3D com WPF
Para assinar:
- Feed RSS: http://www.xamlcast.net
- iTunes/iPod: pcast://www.xamlcast.net
- Zune: zune://subscribe/?XAMLCast=http://www.xamlcast.net
O XAMLCast também está no Twitter!
- Twitter oficial: @xamlcast (e hashtag #xamlcast)
- Siga os XAMLCasters:
- Adicione o Twibbon do XAMLCast ao seu avatar!
Até o próximo!
Abraços,
Kelps, Roberto Sonnino e Rodrigo Kono
Comment this postCategories: Microsoft, Novidades, Silverlight, WPF, XAMLCast
XAMLCast – 2a Temporada – Episódio 7 – Silverlight Viewport, Visual Studio 2010 RC, MVVM 17/2/10
Caros ouvintes!

Continuando o papo técnico, este espisódio do XAMLCast traz o tema MVVM salpicado com novidades e boas dicas e referências para você estudar.
Ouça e tire suas conclusões:
Seguem os links relacionados ao podcast:
- Visual Studio 2010 RC
- Jason Zander
- Blog: http://blogs.msdn.com/jasonz
- Channel9 (video): http://tinyurl.com/ycdur6g
- Silverlight Viewport
- SilverArcade (videocast)
- MVC x MVP x MVVM
- Josh Smith
- Karl Shifflett
- Sasha Barber
- Marlon Grech
- MVVM Made Easy / Jeremiah Morrill (screencast)
- MVVM Frameworks
- MVVM Light
- Cinch
- Jesse Liberty
- Dicas em português para começar com MVVM
- Grupo MVVM na comunidade Silverlight Brasil
Discutam, comentem e retwittem!
Para assinar:
- Feed RSS: http://www.xamlcast.net
- iTunes/iPod: pcast://www.xamlcast.net
- Zune: zune://subscribe/?XAMLCast=http://www.xamlcast.net
O XAMLCast também está no Twitter!
- Twitter oficial: @xamlcast (e hashtag #xamlcast)
- Siga os XAMLCasters:
- Adicione o Twibbon do XAMLCast ao seu avatar!
Aguardamos seu feedback!
Abraços,
Kelps, Roberto Sonnino e Rodrigo Kono
2 commentsCategories: Dicas, Microsoft, Novidades, Silverlight, WPF, XAMLCast, XNA
XAMLCast – 2a Temporada – Episódio 6 – MEF, Seesmic Look, Moonlight 3 3/2/10
Saudações!

O XAMLCast dessa semana está mais técnico. Falamos de MEF (Managed Extensibility Framework) e também de algumas boas novidades.
Se você sabe, não sabe ou quer saber o que é MEF, ouça, tire suas conclusões, mande dúvidas e participe enviando suas sugestões e complementos para o @xamlcast no twitter.
Ouça:
Como de tradição, seguem abaixo os links para completar o seu entendimento e ajudar nos seus estudos:
- XAMLCast no RedeRIA
- Seesmic Look
- Moonlight 3.0 Preview
- Melhorando o perceived start-up time em WPF com MEF e SplashScreen
- MEF
- Download do MEF
- SilverlightTV
- Palestra do Glenn Block no PDC09
- Post do Kelps
Para fechar, parabéns ao ganhador do Expression Studio!
O ganhador foi Marcelo Paiva (@marcelo_paiva). Ele foi o primeiro a retwittar as 3 palavras na sequência certa pedida pelo @xamlcast! (link: http://twitter.com/marcelo_paiva/status/8288165428).
Obrigado pela participação Marcelo, o Expression irá chegar em sua casa!
Boa sorte e espero que gostem do podcast da semana!
Para assinar:
- Feed RSS: http://www.xamlcast.net
- iTunes/iPod: pcast://www.xamlcast.net
- Zune: zune://subscribe/?XAMLCast=http://www.xamlcast.net
O XAMLCast também está no Twitter!
- Twitter oficial: @xamlcast (e hashtag #xamlcast)
- Siga os XAMLCasters:
- Adicione o Twibbon do XAMLCast ao seu avatar!
Aguardamos seu feedback!
Abraços,
Kelps, Roberto Sonnino e Rodrigo Kono
1 commentCategories: Dicas, Novidades, Open Source, Silverlight, WPF, XAMLCast
XAMLCast – 2a Temporada – Episódio 5 – Notícias, retrospectiva 2009, concursos e final da promoção 27/1/10
Palmas para o XAMLCast!

Após um impreviso técnico que causou um atraso de uma semana, o seu informativo semanal sobre XAML, Silverlight e WPF está no ar, com muitas notícias!
Ouça:
Essa semana o XAMLCast traz as seguintes informações:
- Curso GRÁTIS de Silverlight com Jeff Prosise (e WPF em Julho-Agosto)
- Blog do Justin Angel (refeito 100% com Silverlight)
- Flashback: TOP10 2009
- Thumba
- Silverlight TV
- ECOContest Silverlight Show
- Imagine Cup 2010
PROMOÇÃO!
Não esqueça que este episódio contém as palavras premiadas para você ganhar o Expression Studio novinho novinho!
Ouça, anote as palavras premiadas deste episódio e as palavras do episódio passado, siga o @xamlcast e fique atento no twitter!
Quando o @xamlcast perguntar as palavras premiadas informe todas as palavras na sequência correta!
O mais rápido irá levar!
Boa sorte e espero que gostem do podcast da semana!
Para assinar:
- Feed RSS: http://www.xamlcast.net
- iTunes/iPod: pcast://www.xamlcast.net
- Zune: zune://subscribe/?XAMLCast=http://www.xamlcast.net
O XAMLCast também está no Twitter!
- Twitter oficial: @xamlcast (e hashtag #xamlcast)
- Siga os XAMLCasters:
- Adicione o Twibbon do XAMLCast ao seu avatar!
Aguardamos seu feedback!
Abraços,
Kelps, Roberto Sonnino e Rodrigo Kono
Comment this postCategories: Dicas, Microsoft, Novidades, Silverlight, WPF, XAMLCast
XAMLCast – 2a Temporada – Episódio 4 – Motion Detection , SilverX (conversão Flash/Silverlight), Silverlight HVP 13/1/10
Salve salve moçada!

Estamos muito agradecidos pelo ótimo feedback que estamos tendo.
Até tivemos um retweet internacional do Brian Henderson (http://twitter.com/brian_henderson/statuses/7454878672).
Continuem mandando sugestões de temas, comentários e dúvidas. O XAMLCast está gerando e refletindo um conteúdo muito bacana em listas de discussões, blogs e forums. É isso aí pessoal!
No episódio número 04 falamos de Motion Detection em Silverlight 4, SilverX (conversão de arquivos Flash/SWF para Silverlight), falamos do Silverlight Hyper Video Player (HVP) e fechamos com uma boa promoção onde você poderá ganhar um Expression Studio novinho e na caixa!
Ouça:
Seguem os links relacionados:
- Motion Detector em Silverlight 4
- Demo: http://roboblob.com/demos/Silverlight4/MotionDetector
- Demo: Mate as baratas (BugCamSmash): http://adamkinney.com/labs/bugcamsmash
- Blog do Adam Kinney: http://adamkinney.wordpress.com/2009/12/03/bugcamsmash-motion-detection-with-silverlight-4-beta
- SilverX
- http://www.silverx.net
- Link bônus – Tutoriais de migração Flash/Silverlight no Project Rosetta: http://visitmix.com/labs/rosetta/
- Silverlight Hyper Video Player (HVP)
- Blog do Jesse Liberty: http://blogs.silverlight.net/blogs/jesseliberty
- Codeplex: The Silverlight Hyper Video Player: http://silverlighthvp.codeplex.com
PROMOÇÃO!
Ganhe um Expression Studio 2 completo e na caixa! Igual à foto abaixo!
Sua grande chance de ter o melhor software para trabalhar com Silverlight e WPF.
Para participar é simples:
- Seguir o @xamlcast no twitter
- Saber as palavras da sorte que estão no audio do XAMLCast (só ouvir). Uma foi dita no episódio 04 e a(s) outra(s) será(ão) no episódio 05.
- No dia da publicação do episódio 05 do XAMLCast, iremos pedir via twitter através do user @xamlcast as palavras da sorte. Quem postar primeiro leva o prêmio!
Para assinar:
- Feed RSS: http://www.xamlcast.net
- iTunes/iPod: pcast://www.xamlcast.net
- Zune: zune://subscribe/?XAMLCast=http://www.xamlcast.net
O XAMLCast também está no Twitter!
- Twitter oficial: @xamlcast (e hashtag #xamlcast)
- Siga os XAMLCasters:
- Adicione o Twibbon do XAMLCast ao seu avatar!
Aguardamos seu feedback!
Abraços,
Kelps, Roberto Sonnino e Rodrigo Kono
Comment this postCategories: Dicas, Novidades, Silverlight, XAMLCast
XAMLCast – 2a Temporada – Episódio 3 – Office 2010 Web Apps, MIX 10K e Silverlight SEO 6/1/10
Fala pessoal!

O ano passa mas o XAMLCast continua! Feliz 2010!
Neste episódio do XAMLCast falamos um pouco sobre o Microsoft Office 2010 Web Apps, concurso MIX 10K e Silverlight SEO.
Ouçam!
Seguem abaixo as referências:
- Microsoft Office 2010 Beta
- O passo a passo para utilização do Office Web Apps está em
- http://officebeta.microsoft.com/en-us/webapps/start-using-your-office-web-apps-in-windows-live-technical-preview-HA101674925.aspx?CTT=5&origin=HA101632199
- Basta subir um arquivo do Office 2010 para o Sky Drive usando o Office 2010 Beta instalado na sua máquina e depois tentar abrir o aquivo a partir do próprio Sky Drive usando a opção editar. Na primeira vez que você fizer isso será exibido um termo de aceite e então o Office Web Apps estará habilitado para você.
- Concurso MIX 10K
- Silverlight SEO
Para assinar:
- Feed RSS: http://www.xamlcast.net
- iTunes/iPod: pcast://www.xamlcast.net
- Zune: zune://subscribe/?XAMLCast=http://www.xamlcast.net
O XAMLCast também está no Twitter!
- Twitter oficial: @xamlcast (e hashtag #xamlcast)
- Siga os XAMLCasters:
Aguardamos ansiosos pelo seu feedback!
Abraços,
Kelps, Roberto Sonnino e Rodrigo Kono
2 commentsCategories: Dicas, Silverlight, XAMLCast
XAMLCast – 2a Temporada – Episódio 2 – Moonlight, AR com SL4, SL dentro do WPF, VS2010 RC 30/12/09
Fala pessoal!

XAMLCast is on fire!
Este episódio está muito bacana, falamos de Moonlight, AR com Silverlight 4, Silverlight renderizado no WPF e do VS2010 RC.
Ouça!
Seguem abaixo as referências:
- Moonlight 2 (release final em 17/12/2009)
- AR – Realidade Aumentada com Silverlight 4
- Biblioteca NyARToolkit usada junto com o Silverlight 4 para obter os recursos da AR
- Silverlight dentro do WPF
- WPF Disciples
- Silverlight application no WPF
- Vídeo WPF renderizando Silverlight
- Aplicação Silverlight que foi renderizada (apresentada no vídeo acima)
- Anúncio do Visual Studio 2010 RC no blog do Scott Guthrie
Para assinar:
- Feed RSS: http://www.xamlcast.net
- iTunes/iPod: pcast://www.xamlcast.net
- Zune: zune://subscribe/?XAMLCast=http://www.xamlcast.net
O XAMLCast também está no Twitter!
- Twitter oficial: @xamlcast (e hashtag #xamlcast)
- Siga os XAMLCasters:
Obrigado pelo feedback do 1o episódio! Esperamos que o XAMLCast fique cada vez mais do jeito que vocês querem. Aguardamos seus comentários!
Feliz ano novo! Esperamos você em 2010 para o próximo XAMLCast!
Abraços,
Kelps, Roberto Sonnino e Rodrigo Kono
1 commentCategories: Novidades, Silverlight, WPF, XAMLCast
XAMLCast – 2a Temporada – Episódio 1 – O XAMLCast está de volta! 23/12/09
Fala pessoal!

Depois de um longo período em OFF com o XAMLCast estamos de volta!
Agora com um terceiro apresentador: Kelps Leite. Kelps é desenvolvedor Web ha 10 anos e desenvolve com Silverlight há mais de dois anos, sendo hoje um Blend Insider. Ele já participou com a gente de um XAMLCast quando foi entrevistado no TechEd 2007. Bem vindo Kelps!
No primeiro episódio dessa segunda temporada falamos das novidades do PDC 2009, Surface, Bing, SL4 e mais.
Seguem abaixo as referências:
- Surface Toolkit for Windows Touch
- PDC09 – Multi-Touch on Microsoft Surface and Windows 7 for .NET Developers
- Blog do time de Surface
- Facebook SDK (com o core assembly Facebook.Silverlight.dll)
- Bing Explore
- Outras informações no blog do Bing Community
- Bing (Foto da ponte estaiada – SP/Brasil)
- Novidades do Silverlight 4
- Tempo entre releases do Silverlight (em comparação bem-humorada com Flex, Flash e JavaFX)
Para assinar:
- Feed RSS: http://www.xamlcast.net
- iTunes/iPod: pcast://www.xamlcast.net
- Zune: zune://subscribe/?XAMLCast=http://www.xamlcast.net
O XAMLCast também está no Twitter!
- Twitter oficial: @xamlcast (e hashtag #xamlcast)
- Siga os XAMLCasters:
O que você achou da volta do XAMLCast? Aguardamos seus comentários!
A equipe do XAMLCast te deseja um Feliz Natal e um Ótimo Ano Novo com muito XAML! E até a próxima!
Abraços,
Kelps, Roberto Sonnino e Rodrigo Kono
Comment this postCategories: Microsoft, Novidades, Silverlight, WPF, XAMLCast

