<feed xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US">
    <title>Rodrigo Díaz Concha</title>
    <link rel="self" type="application/xml" href="http://geekswithblogs.net/rdiazconcha/Atom.aspx" />
    <subtitle type="html">Geek=&gt;ON</subtitle>
    <id>http://geekswithblogs.net/rdiazconcha/Default.aspx</id>
    <author>
        <name>Rodrigo</name>
        <uri>http://geekswithblogs.net/rdiazconcha/Default.aspx</uri>
    </author>
    <generator uri="http://subtextproject.com" version="Subtext Version 0.0.0.0">Subtext</generator>
    <updated>2008-11-21T12:10:46Z</updated>
    <entry>
        <title>Another Mexico map in XAML !</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/rdiazconcha/archive/2008/11/21/another-mexico-map-in-xaml.aspx" />
        <id>http://geekswithblogs.net/rdiazconcha/archive/2008/11/21/another-mexico-map-in-xaml.aspx</id>
        <published>2008-11-21T12:10:46-06:00:00</published>
        <updated>2008-11-21T12:10:46Z</updated>
        <content type="html">&lt;p&gt;My good friend Martín Uresti sent to me a newer and more detailed version of the Mexico Map in XAML so we can use it in &lt;a title="Silverlight Tour Workshop en Español" href="http://www.devworx.com.mx/SilverlightTour.aspx" rel="" target="_blank"&gt;Entrenamiento intensivo de Silverlight en Español&lt;/a&gt; / WPF applications!  At a first glance it looks amazingly detailed and more beautiful than the first one.  Thank you Martín for your cooperation with the &lt;a title="Silverlight Tour Workshop en Español" href="http://www.devworx.com.mx/SilverlightTour.aspx" rel="" target="_blank"&gt;Entrenamiento intensivo de Silverlight en Español&lt;/a&gt; community!  Just as in the first version each state is surrounded by a &amp;lt;Canvas&amp;gt; element so we can develop against each state in its own (maybe changing the color or something).&lt;/p&gt;  &lt;p&gt;&lt;img src="http://farm4.static.flickr.com/3027/3046267003_14296a3052.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;You can download the newer Mexico map in XAML &lt;a target="_blank" href="http://www.ligasilverlight.com/home/LinkClick.aspx?fileticket=HHTul%2fHsHf8%3d&amp;amp;tabid=57&amp;amp;mid=376&amp;amp;forcedownload=true"&gt;right here&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Enjoy!&lt;/p&gt;&lt;img src="http://geekswithblogs.net/rdiazconcha/aggbug/127283.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/rdiazconcha/comments/127283.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/rdiazconcha/comments/commentRss/127283.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/rdiazconcha/services/trackbacks/127283.aspx</trackback:ping>
    </entry>
    <entry>
        <title>XAML Mexico Map !!!</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/rdiazconcha/archive/2008/11/05/xaml-mexico-map.aspx" />
        <id>http://geekswithblogs.net/rdiazconcha/archive/2008/11/05/xaml-mexico-map.aspx</id>
        <published>2008-11-05T00:24:11-06:00:00</published>
        <updated>2008-11-05T00:24:11Z</updated>
        <content type="html">&lt;p&gt;I’ve just finished my first version of my beloved Mexico map in XAML ! (I think this is the first Mexico map with detailed states in XAML ever!!! :P) for all developers and enthusiasts in &lt;a target="_blank" href="http://silverlight.net/"&gt;Silverlight&lt;/a&gt; or WPF technologies that could need it in their current solutions.  This map could be the startup for exciting and newer user interfaces to allow users to have a better experience when using our applications.  Even for geography didactic or academic applications that need to display localized information about Mexico or data filtering by state, etc.  I’ve created it in a few hours using some tools like Photoshop, Expression Design and Expression Blend.&lt;/p&gt;  &lt;p&gt;This map includes the 32 states of the Mexican republic, each of them implemented as a &lt;font size="4" face="Consolas"&gt;&amp;lt;Canvas&amp;gt;&lt;/font&gt; with its name property set for access when developing the desired behavior in the code-behind.&lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="http://farm4.static.flickr.com/3160/3004854132_67fabc89ce_b.jpg"&gt;&lt;img title="Visual Studio .NET 2008 mostrando el mapa de México hecho XAML" alt="Visual Studio .NET 2008 mostrando el mapa de México hecho XAML" src="http://farm4.static.flickr.com/3160/3004854132_67fabc89ce.jpg" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;em&gt;Please click on the above image to see the full version&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;In the other hand, for those developers that need a basic code template to see how this could be programmed I made the following code as an example of how to use this map.  Following is the coded needed to identify each state with a different color when hovering the mouse over each of them.  The code also displays an alert with the state name when clicked:&lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;namespace&lt;/span&gt; Rodrigo.Maps
{
    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;partial&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; Mexico : UserControl
    {
        Brush original;
        &lt;span class="kwrd"&gt;public&lt;/span&gt; Mexico()
        {
            InitializeComponent();

            original = (Brush)&lt;span class="kwrd"&gt;this&lt;/span&gt;.Resources[&lt;span class="str"&gt;"brochaVerde"&lt;/span&gt;];

            &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (UIElement estado &lt;span class="kwrd"&gt;in&lt;/span&gt; &lt;span class="kwrd"&gt;this&lt;/span&gt;.mexico.Children)
            {
                &lt;span class="kwrd"&gt;if&lt;/span&gt; (estado &lt;span class="kwrd"&gt;is&lt;/span&gt; Canvas)
                {
                    RegisterEvents(estado &lt;span class="kwrd"&gt;as&lt;/span&gt; Canvas);
                }
            }

            &lt;span class="rem"&gt;//Español: También podemos hacer esto:&lt;/span&gt;
            &lt;span class="rem"&gt;//English: We could do this as well:&lt;/span&gt;
            &lt;span class="rem"&gt;//RegisterEvents(Aguascalientes);&lt;/span&gt;
            &lt;span class="rem"&gt;//RegisterEvents(BC);&lt;/span&gt;
            &lt;span class="rem"&gt;//RegisterEvents(NuevoLeon);&lt;/span&gt;
            &lt;span class="rem"&gt;//...&lt;/span&gt;
        }

        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span class="rem"&gt;/// Español: Registra los manejadores de eventos para el estado especificado en el parámetro&lt;/span&gt;
        &lt;span class="rem"&gt;/// English: Register the event handlers for the state specified in the parameter&lt;/span&gt;
        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span class="rem"&gt;/// &amp;lt;param name="estado"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;void&lt;/span&gt; RegisterEvents(Canvas estado)
        {
            estado.MouseEnter += &lt;span class="kwrd"&gt;new&lt;/span&gt; MouseEventHandler(&lt;span class="kwrd"&gt;this&lt;/span&gt;.Estado_MouseEnter);
            estado.MouseLeave += &lt;span class="kwrd"&gt;new&lt;/span&gt; MouseEventHandler(&lt;span class="kwrd"&gt;this&lt;/span&gt;.Estado_MouseLeave);
            estado.MouseLeftButtonUp += &lt;span class="kwrd"&gt;new&lt;/span&gt; MouseButtonEventHandler(&lt;span class="kwrd"&gt;this&lt;/span&gt;.Estado_MouseButtonUp);
        }

        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span class="rem"&gt;/// Español: Muestra el nombre del estado en una alerta al hacer clic&lt;/span&gt;
        &lt;span class="rem"&gt;/// English: Displays the state name when clicked&lt;/span&gt;
        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span class="rem"&gt;/// &amp;lt;param name="sender"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span class="rem"&gt;/// &amp;lt;param name="e"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;void&lt;/span&gt; Estado_MouseButtonUp(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, MouseButtonEventArgs e)
        {
            HtmlPage.Window.Alert(((Canvas)sender).Name);
        }

        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span class="rem"&gt;/// Español: Cambia el color del estado que está recibiendo el foco&lt;/span&gt;
        &lt;span class="rem"&gt;/// English: Changes the state color when the mouse cursor hovers&lt;/span&gt;
        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span class="rem"&gt;/// &amp;lt;param name="sender"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span class="rem"&gt;/// &amp;lt;param name="e"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;void&lt;/span&gt; Estado_MouseEnter(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, MouseEventArgs e)
        {
            ((Path)((Canvas)sender).Children[0]).Fill = &lt;span class="kwrd"&gt;new&lt;/span&gt; SolidColorBrush(Colors.Magenta);
        }

        &lt;span class="rem"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
        &lt;span class="rem"&gt;/// Español: Regresa el color original del estado al perder el foco&lt;/span&gt;
        &lt;span class="rem"&gt;/// English: Rolls back to the original color when the mouse cursor leaves&lt;/span&gt;
        &lt;span class="rem"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
        &lt;span class="rem"&gt;/// &amp;lt;param name="sender"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span class="rem"&gt;/// &amp;lt;param name="e"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;void&lt;/span&gt; Estado_MouseLeave(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, MouseEventArgs e)
        {
            ((Path)((Canvas)sender).Children[0]).Fill = original;
        }
        
    }
}&lt;/pre&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }]]&gt;&lt;/style&gt;

&lt;p&gt;And of course, don’t forget to update the &lt;font size="4" face="Consolas"&gt;RootVisual&lt;/font&gt; property accordingly in order to invoke Mexico.xaml in the application (when using Silverlight).&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Application_Startup(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, StartupEventArgs e)
        {
            &lt;span class="kwrd"&gt;this&lt;/span&gt;.RootVisual = &lt;span class="kwrd"&gt;new&lt;/span&gt; Rodrigo.Maps.Mexico();
        }&lt;/pre&gt;

&lt;p&gt;&lt;a target="_blank" href="http://cid-7565606b158be329.skydrive.live.com/self.aspx/Public/Mexico.xaml"&gt;Download the XAML Mexico Map here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Soon I will be writing some articles about how I’m using this map and how we could write a reusable control with it.&lt;/p&gt;

&lt;p&gt;Hope this will be helpful.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Cheers!&lt;/p&gt;&lt;img src="http://geekswithblogs.net/rdiazconcha/aggbug/126633.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/rdiazconcha/comments/126633.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/rdiazconcha/comments/commentRss/126633.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/rdiazconcha/services/trackbacks/126633.aspx</trackback:ping>
    </entry>
</feed>
