<rss version="2.0" 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:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Visual Basic.Net</title>
        <link>http://community.dotnetwork.it/AndreaZ/category/35.aspx</link>
        <description>Piccoli tips sulla programmazione di VB.Net</description>
        <language>it-IT</language>
        <copyright>Andrea Zingoni</copyright>
        <managingEditor>andrea.zingoni@poste.it</managingEditor>
        <generator>Subtext Version 1.9.5.176</generator>
        <item>
            <title>Silverlight: localizzazione delle risorse</title>
            <link>http://community.dotnetwork.it/AndreaZ/archive/2011/11/30/silverlight-localizzazione-delle-risorse.aspx</link>
            <description>&lt;p&gt;&lt;a href="http://community.dotnetwork.it/images/community_dotnetwork_it/AndreaZ/Windows-Live-Writer/39fde44ec44e_7F88/image_42.png" rel="lightbox"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://community.dotnetwork.it/images/community_dotnetwork_it/AndreaZ/Windows-Live-Writer/39fde44ec44e_7F88/image_thumb_17.png" width="710" height="255" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Per rendere multilingua l’interfaccia del nostro plug-in dobbiamo aggiungere al progetto Silverlight dei &lt;a href="http://msdn.microsoft.com/it-it/library/cc296240(v=vs.95).aspx" target="_blank"&gt;File di risorse&lt;/a&gt; contenenti le traduzioni di tutti i testi che vogliamo visualizzare.&lt;/p&gt;  &lt;p&gt;Per localizzazione non si intende la traduzione automatica di tutti i &lt;strong&gt;messaggi dell’applicazione&lt;/strong&gt;, bensì semplicemente la traduzione di tutti i &lt;strong&gt;testi visibili&lt;/strong&gt; nei controlli. La traduzione dei messaggi di validazione la vedremo in un prossimo post. &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-thinkingsmile" alt="Pensieroso" src="http://community.dotnetwork.it/images/community_dotnetwork_it/AndreaZ/Windows-Live-Writer/39fde44ec44e_7F88/wlEmoticon-thinkingsmile_2.png" /&gt;&lt;/p&gt;  &lt;p&gt;Creiamo un nuova applicazione Silverlight:&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://community.dotnetwork.it/images/community_dotnetwork_it/AndreaZ/Windows-Live-Writer/39fde44ec44e_7F88/image3.png" rel="lightbox"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://community.dotnetwork.it/images/community_dotnetwork_it/AndreaZ/Windows-Live-Writer/39fde44ec44e_7F88/image3_thumb.png" width="249" height="279" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Creiamo il nostro controllo:&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://community.dotnetwork.it/images/community_dotnetwork_it/AndreaZ/Windows-Live-Writer/39fde44ec44e_7F88/image11.png" rel="lightbox"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://community.dotnetwork.it/images/community_dotnetwork_it/AndreaZ/Windows-Live-Writer/39fde44ec44e_7F88/image11_thumb.png" width="337" height="183" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;pre style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 762px; padding-right: 5px; height: 191px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px"&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Grid&lt;/span&gt; &lt;span style="color: #ff0000"&gt;x&lt;/span&gt;:&lt;span style="color: #ff0000"&gt;Name&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"LayoutRoot"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Background&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"White"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;        &lt;font style="background-color: #ffff00"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #c71585"&gt;sdk&lt;/span&gt;:&lt;span style="color: #800000"&gt;Label&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Margin&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"25,24,0,0"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Name&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"Label1"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Content&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"Label1"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;HorizontalContentAlignment&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"Center"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;HorizontalAlignment&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"Left"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Width&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"55"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Height&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"23"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;VerticalAlignment&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"Top"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;d&lt;/span&gt;:&lt;span style="color: #ff0000"&gt;LayoutOverrides&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"VerticalAlignment"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/font&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;        &lt;font style="background-color: #ffff00"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;TextBox&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Height&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"23"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;HorizontalAlignment&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"Left"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Margin&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"84,20,0,0"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Name&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"TextBox1"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;VerticalAlignment&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"Top"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Width&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"120"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;HorizontalContentAlignment&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"Center"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/font&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;        &lt;font style="background-color: #ffff00"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Button&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Content&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"Button"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Height&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"23"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;HorizontalAlignment&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"Left"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Margin&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"84,49,0,0"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Name&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"Button1"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;VerticalAlignment&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"Top"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Width&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"120"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;HorizontalContentAlignment&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"Center"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/font&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Grid&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Andiamo ad impostare le culture (&lt;a href="http://msdn.microsoft.com/it-it/library/system.globalization.cultureinfo(v=VS.100).aspx" target="_blank"&gt;CultureInfo&lt;/a&gt;) che il nostro plug-in potrà identificare. Per farlo dobbiamo modificare il file di progetto. Scarichiamo il progetto e andiamo a modificarne il file&lt;strong&gt; .vbproj:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="http://community.dotnetwork.it/images/community_dotnetwork_it/AndreaZ/Windows-Live-Writer/39fde44ec44e_7F88/image_10.png" rel="lightbox"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://community.dotnetwork.it/images/community_dotnetwork_it/AndreaZ/Windows-Live-Writer/39fde44ec44e_7F88/image_thumb.png" width="499" height="379" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="http://community.dotnetwork.it/images/community_dotnetwork_it/AndreaZ/Windows-Live-Writer/39fde44ec44e_7F88/image4.png" rel="lightbox"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://community.dotnetwork.it/images/community_dotnetwork_it/AndreaZ/Windows-Live-Writer/39fde44ec44e_7F88/image4_thumb.png" width="213" height="148" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Identifichiamo il tag &lt;em&gt;&amp;lt;SupportedCultures&amp;gt;&lt;/em&gt;&lt;/p&gt;

&lt;pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt; &lt;font style="background-color: #ffff00"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;SupportedCultures&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;font style="background-color: #ffff00"&gt;&lt;/font&gt;&lt;/font&gt;&lt;font style=""&gt;&lt;font style=""&gt;it&lt;/font&gt;&lt;/font&gt;&lt;font style="background-color: #ffff00"&gt;&lt;font style="background-color: #ffff00"&gt;&lt;/font&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;SupportedCultures&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/pre&gt;&lt;/pre&gt;

&lt;pre&gt; &lt;/pre&gt;

&lt;p&gt;ed aggiungiamoci le lingue desiderate:&lt;/p&gt;

&lt;pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;SupportedCultures&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;font style="background-color: #ffff00"&gt;it;en;en-US;fr;&lt;/font&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;SupportedCultures&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;In questo caso, oltre che all’italiano, abbiamo aggiunto l’inglese (&lt;strong&gt;en&lt;/strong&gt;), l’inglese americano (&lt;strong&gt;en-US&lt;/strong&gt;), ed il francese (&lt;strong&gt;fr&lt;/strong&gt;). &lt;/p&gt;

&lt;p&gt;Salviamo il file e ricarichiamo il progetto:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://community.dotnetwork.it/images/community_dotnetwork_it/AndreaZ/Windows-Live-Writer/39fde44ec44e_7F88/image_9.png" rel="lightbox"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://community.dotnetwork.it/images/community_dotnetwork_it/AndreaZ/Windows-Live-Writer/39fde44ec44e_7F88/image_thumb_1.png" width="219" height="150" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Aggiungiamo un file di risorse in cui andremo ad inserire tutte le descrizioni che vogliamo visualizzare nelle varie lingue. In Esplora Soluzioni clicchiamo col tasto destro sul nome del progetto (o in una cartella specifica), selezioniamo &lt;strong&gt;Aggiungi=&amp;gt;Nuovo elemento…&lt;/strong&gt; ed aggiungiamo un &lt;strong&gt;File di risorse&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://community.dotnetwork.it/images/community_dotnetwork_it/AndreaZ/Windows-Live-Writer/39fde44ec44e_7F88/image_14.png" rel="lightbox"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://community.dotnetwork.it/images/community_dotnetwork_it/AndreaZ/Windows-Live-Writer/39fde44ec44e_7F88/image_thumb_3.png" width="631" height="437" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Apriamo il file di risorse cliccandoci sopra due volte:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://community.dotnetwork.it/images/community_dotnetwork_it/AndreaZ/Windows-Live-Writer/39fde44ec44e_7F88/image17.png" rel="lightbox"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://community.dotnetwork.it/images/community_dotnetwork_it/AndreaZ/Windows-Live-Writer/39fde44ec44e_7F88/image17_thumb.png" width="645" height="193" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Inseriamo due nuovi valori stringa che si riferiscono rispettivamente al testo dell’etichetta ‘Label1’ ed al testo del pulsante ‘Button1’.&lt;/p&gt;

&lt;p&gt;Stiamo impostando i valori per la lingua di default, ossia l’italiano, quindi i &lt;strong&gt;valori&lt;/strong&gt; delle stringhe dovranno essere in &lt;strong&gt;italiano&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Impostare come &lt;strong&gt;Public&lt;/strong&gt; i marcatori d’accesso di ogni risorsa.&lt;/p&gt;

&lt;p&gt;A questo punto è necessario crearsi una classe che ci permetta di accedere alle risorse tramite il &lt;a href="http://msdn.microsoft.com/it-it/library/cc278072(v=vs.95).aspx" target="_blank"&gt;DataBinding&lt;/a&gt; dei controlli.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="http://community.dotnetwork.it/images/community_dotnetwork_it/AndreaZ/Windows-Live-Writer/39fde44ec44e_7F88/image_18.png" rel="lightbox"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://community.dotnetwork.it/images/community_dotnetwork_it/AndreaZ/Windows-Live-Writer/39fde44ec44e_7F88/image_thumb_6.png" width="631" height="438" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;pre style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 704px; padding-right: 5px; height: 240px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px"&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;Public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Class&lt;/span&gt; myLocalization
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #008000"&gt;' Wrapper per le risorse.&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;Public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;ReadOnly&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Property&lt;/span&gt; Risorse_MainPage() &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; My.Resources.MainPage
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;        &lt;span style="color: #0000ff"&gt;Get&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;            &lt;span style="color: #0000ff"&gt;Return&lt;/span&gt; &lt;span style="color: #0000ff"&gt;New&lt;/span&gt; My.Resources.MainPage
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;        &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Get&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Property&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Class&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;

&lt;p align="center"&gt;&lt;em&gt;NB: se nel file delle risorse non avessimo impostato i marcatori su &lt;strong&gt;Public&lt;/strong&gt;, non avremmo potuto accedervi dalla nostra classe.&lt;/em&gt;&lt;/p&gt;

&lt;p align="center"&gt; &lt;/p&gt;

&lt;p align="left"&gt;Referenziamo la nostra classe all’interno del nostro plug-in importando il relativo namespace (nell’esempio lo contrassegniamo col suffisso &lt;strong&gt;’my’&lt;/strong&gt;):&lt;/p&gt;

&lt;pre style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 702px; padding-right: 5px; height: 272px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px"&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;UserControl&lt;/span&gt; &lt;span style="color: #ff0000"&gt;x&lt;/span&gt;:&lt;span style="color: #ff0000"&gt;Class&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"myLocalization.MainPage"&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #ff0000"&gt;xmlns&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"http://schemas.microsoft.com/winfx/2006/xaml/presentation"&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #ff0000"&gt;xmlns&lt;/span&gt;:&lt;span style="color: #ff0000"&gt;x&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"http://schemas.microsoft.com/winfx/2006/xaml"&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #ff0000"&gt;xmlns&lt;/span&gt;:&lt;span style="color: #ff0000"&gt;d&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"http://schemas.microsoft.com/expression/blend/2008"&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #ff0000"&gt;xmlns&lt;/span&gt;:&lt;span style="color: #ff0000"&gt;mc&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"http://schemas.openxmlformats.org/markup-compatibility/2006"&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #ff0000"&gt;mc&lt;/span&gt;:&lt;span style="color: #ff0000"&gt;Ignorable&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"d"&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;              &lt;font style="background-color: #ffff00"&gt;&lt;span style="color: #ff0000"&gt;xmlns&lt;/span&gt;:&lt;span style="color: #ff0000"&gt;my&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"clr-namespace:myLocalization"&lt;/span&gt;&lt;/font&gt;&lt;/pre&gt;&lt;/pre&gt;

&lt;p align="left"&gt;Inseriamo la nostra classe nelle risorse statiche (&lt;a href="http://msdn.microsoft.com/it-it/library/ms750950.aspx" target="_blank"&gt;StaticResource&lt;/a&gt;) dell’UserControl Silverlight:&lt;/p&gt;

&lt;pre style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 706px; padding-right: 5px; height: 128px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px"&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    &lt;font style="background-color: #ffff00"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;UserControl.Resources&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/font&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;        &lt;font style="background-color: #ffff00"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #c71585"&gt;my&lt;/span&gt;:&lt;span style="color: #800000"&gt;myLocalization&lt;/span&gt; &lt;span style="color: #ff0000"&gt;x&lt;/span&gt;:&lt;span style="color: #ff0000"&gt;Key&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"myWrapperLocalization"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt; &lt;span style="color: #008000"&gt;&amp;lt;!--Imposta nelle risorse la classe per la localizzazione.--&amp;gt;&lt;/span&gt;
&lt;/font&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    &lt;font style="background-color: #ffff00"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;UserControl.Resources&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/pre&gt;&lt;/pre&gt;

&lt;p align="left"&gt; &lt;/p&gt;

&lt;p align="left"&gt;A questo punto la nostra classe (che è esposta col nome ‘&lt;strong&gt;myWrapperLocalization’&lt;/strong&gt;) è accessibile da tutti i controlli contenuti all’interno dell’UserControl.&lt;/p&gt;

&lt;p align="left"&gt;Impostiamo il binding dei controlli interessati:&lt;/p&gt;

&lt;p align="left"&gt;&lt;strong&gt;- Label1 =&amp;gt; Content&lt;/strong&gt;&lt;/p&gt;

&lt;p align="left"&gt;&lt;strong&gt;- Button1 =&amp;gt; Content&lt;/strong&gt;&lt;/p&gt;

&lt;p align="center"&gt;&lt;a href="http://community.dotnetwork.it/images/community_dotnetwork_it/AndreaZ/Windows-Live-Writer/39fde44ec44e_7F88/image_20.png" rel="lightbox"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://community.dotnetwork.it/images/community_dotnetwork_it/AndreaZ/Windows-Live-Writer/39fde44ec44e_7F88/image_thumb_7.png" width="336" height="330" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p align="left"&gt;Origine (Source):&lt;/p&gt;

&lt;p align="left"&gt;&lt;a href="http://community.dotnetwork.it/images/community_dotnetwork_it/AndreaZ/Windows-Live-Writer/39fde44ec44e_7F88/image33.png" rel="lightbox"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://community.dotnetwork.it/images/community_dotnetwork_it/AndreaZ/Windows-Live-Writer/39fde44ec44e_7F88/image33_thumb.png" width="570" height="268" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p align="left"&gt;Percorso (Path):&lt;/p&gt;

&lt;p align="left"&gt;&lt;a href="http://community.dotnetwork.it/images/community_dotnetwork_it/AndreaZ/Windows-Live-Writer/39fde44ec44e_7F88/image39.png" rel="lightbox"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://community.dotnetwork.it/images/community_dotnetwork_it/AndreaZ/Windows-Live-Writer/39fde44ec44e_7F88/image39_thumb.png" width="572" height="269" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Questo è il risultato in &lt;strong&gt;XAML&lt;/strong&gt;:&lt;/p&gt;

&lt;pre style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 702px; padding-right: 5px; height: 65px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px"&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;font style="background-color: #ffff00"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Button&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Content&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"{Binding Path=Risorse_MainPage.Button1, Source={StaticResource myWrapperLocalization}}"&lt;/span&gt;&lt;/font&gt;&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Una volta impostati il binding è possibile notare che nel design i controlli hanno già recuperato i valori della lingua di default:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://community.dotnetwork.it/images/community_dotnetwork_it/AndreaZ/Windows-Live-Writer/39fde44ec44e_7F88/image_30.png" rel="lightbox"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://community.dotnetwork.it/images/community_dotnetwork_it/AndreaZ/Windows-Live-Writer/39fde44ec44e_7F88/image_thumb_12.png" width="337" height="191" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Adesso creiamo le risorse per tutte le altre lingue che ci interessano. Copiare/Incollare il file di risorsa (.resx) che abbiamo utilizzato per la lingua di default (MainPage.resx) e traduciamo ogni singolo valore:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://community.dotnetwork.it/images/community_dotnetwork_it/AndreaZ/Windows-Live-Writer/39fde44ec44e_7F88/image_32.png" rel="lightbox"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://community.dotnetwork.it/images/community_dotnetwork_it/AndreaZ/Windows-Live-Writer/39fde44ec44e_7F88/image_thumb_13.png" width="254" height="215" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Rinominiamo la nostra risorsa appena tradotta in ‘MainPage.&lt;font style="background-color: #ffff00"&gt;en&lt;/font&gt;.resex’.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="http://community.dotnetwork.it/images/community_dotnetwork_it/AndreaZ/Windows-Live-Writer/39fde44ec44e_7F88/image_34.png" rel="lightbox"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://community.dotnetwork.it/images/community_dotnetwork_it/AndreaZ/Windows-Live-Writer/39fde44ec44e_7F88/image_thumb_14.png" width="576" height="226" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;In questo modo abbiamo creato un file di risorse per la lingua inglese.&lt;/p&gt;

&lt;p&gt;Modifichiamo i valori delle risorse all’interno di questo file stando attenti a &lt;strong&gt;NON MODIFICARE&lt;/strong&gt; le relative chiavi identificative (Nome):&lt;/p&gt;

&lt;p&gt;Il motore delle risorse segue un ordine ben preciso nel leggere i file .resex riferiti alle culture: per primo legge il file contenente la lingua specifica, ossia quello denominato&lt;strong&gt; ‘nomefile.[cultura-&lt;font style="background-color: #ffff00"&gt;lingua&lt;/font&gt;].resex’&lt;font style="background-color: #ffff00"&gt;&lt;/font&gt; &lt;/strong&gt;=&amp;gt; &lt;em&gt;MainPage.en-&lt;font style="background-color: #ffff00"&gt;US.resex&lt;/font&gt;&lt;/em&gt; (in questo caso&lt;strong&gt; l’inglese americano&lt;/strong&gt;), se eventualmente non dovesse trovare questo file, allora legge quello riferito alla cultura generica (detta neutrale) &lt;strong&gt;‘nomefile.[&lt;font style="background-color: #ffff00"&gt;cultura&lt;/font&gt;].resex’&lt;font style="background-color: #ffff00"&gt;&lt;/font&gt; &lt;/strong&gt;=&amp;gt; &lt;em&gt;&lt;/em&gt;&lt;em&gt;MainPage.&lt;font style="background-color: #ffff00"&gt;en&lt;/font&gt;.resex&lt;/em&gt; . Nel caso poi non dovesse trovare neppure il file con la cultura generica, il motore andrà a leggere il file con la lingua di default &lt;em&gt;&lt;/em&gt;&lt;em&gt;MainPage.resex&lt;/em&gt; .&lt;/p&gt;

&lt;p&gt;Questa lettura gerarchica ci permette di scrivere la maggior parte delle voci multilingue nei file .resex relativi alle lingue generiche. Solo nei casi particolari si dovranno specificare le stesse voci nei file delle lingue specifiche.&lt;/p&gt;

&lt;p&gt;Crearsi tutti i file desiderati ricordandosi di rinominare correttamente ognuno dei file .resx:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://community.dotnetwork.it/images/community_dotnetwork_it/AndreaZ/Windows-Live-Writer/39fde44ec44e_7F88/image_36.png" rel="lightbox"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://community.dotnetwork.it/images/community_dotnetwork_it/AndreaZ/Windows-Live-Writer/39fde44ec44e_7F88/image_thumb_15.png" width="255" height="277" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Di default Silverlight legge la lingua del sistema operativo, quindi per testare il progetto dobbiamo apportare alcune modifiche.&lt;/p&gt;

&lt;p&gt;Possiamo testare la nostra applicazione in due modi:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;forzare da codice la lingua del plug-in;&lt;/li&gt;

  &lt;li&gt;impostare la lingua del plug-in tramite la pagina web che lo ospita.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Il modo più semplice è quello di forzare la lingua del plug-in nel suo evento Application_Startup:&lt;/p&gt;

&lt;pre style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 720px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px"&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;Private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Sub&lt;/span&gt; Application_Startup(&lt;span style="color: #0000ff"&gt;ByVal&lt;/span&gt; o &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Object&lt;/span&gt;, &lt;span style="color: #0000ff"&gt;ByVal&lt;/span&gt; e &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; StartupEventArgs) &lt;span style="color: #0000ff"&gt;Handles&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Me&lt;/span&gt;.Startup
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;        &lt;span style="color: #008000"&gt;' Forza la lingua.&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;        &lt;font style="background-color: #ffff00"&gt;System.Threading.Thread.CurrentThread.CurrentUICulture = &lt;span style="color: #0000ff"&gt;New&lt;/span&gt; Globalization.CultureInfo("&lt;span style="color: #8b0000"&gt;fr&lt;/span&gt;")
&lt;/font&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;        &lt;span style="color: #0000ff"&gt;Me&lt;/span&gt;.RootVisual = &lt;span style="color: #0000ff"&gt;New&lt;/span&gt; MainPage()
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Sub&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;Il nostro controllo in francese:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://community.dotnetwork.it/images/community_dotnetwork_it/AndreaZ/Windows-Live-Writer/39fde44ec44e_7F88/image_22.png" rel="lightbox"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://community.dotnetwork.it/images/community_dotnetwork_it/AndreaZ/Windows-Live-Writer/39fde44ec44e_7F88/image_thumb_4.png" width="389" height="193" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Per impostare la lingua dalla pagina web che ospita il controllo vi rimando al post &lt;a href="http://community.dotnetwork.it/AndreaZ/archive/2011/11/28/asp.net-passare-dinamicamente-un-valore-o-un-insieme-di-valori.aspx"&gt;ASP.NET: passare dinamicamente un valore (o un insieme di valori) a Silverlight.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In questo modo sarà possibile testare la nostra applicazione Silverlight cambiando le impostazioni della lingua direttamente dal nostro browser:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://community.dotnetwork.it/images/community_dotnetwork_it/AndreaZ/Windows-Live-Writer/39fde44ec44e_7F88/image_38.png" rel="lightbox"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://community.dotnetwork.it/images/community_dotnetwork_it/AndreaZ/Windows-Live-Writer/39fde44ec44e_7F88/image_thumb_11.png" width="434" height="605" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="http://community.dotnetwork.it/images/community_dotnetwork_it/AndreaZ/Windows-Live-Writer/39fde44ec44e_7F88/image_28.png" rel="lightbox"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://community.dotnetwork.it/images/community_dotnetwork_it/AndreaZ/Windows-Live-Writer/39fde44ec44e_7F88/image_thumb_8.png" width="379" height="411" /&gt;&lt;/a&gt;&lt;/p&gt;



&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="http://community.dotnetwork.it/images/community_dotnetwork_it/AndreaZ/Windows-Live-Writer/39fde44ec44e_7F88/image_40.png" rel="lightbox"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://community.dotnetwork.it/images/community_dotnetwork_it/AndreaZ/Windows-Live-Writer/39fde44ec44e_7F88/image_thumb_16.png" width="702" height="252" /&gt;&lt;/a&gt;&lt;/p&gt;



&lt;p&gt; &lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:88d8292c-289b-41d6-94f7-2de2b00f06b6" class="wlWriterEditableSmartContent"&gt;Tag di Technorati: &lt;a href="http://technorati.com/tags/Silverlight" rel="tag"&gt;Silverlight&lt;/a&gt;,&lt;a href="http://technorati.com/tags/lingue" rel="tag"&gt;lingue&lt;/a&gt;,&lt;a href="http://technorati.com/tags/localizzazione" rel="tag"&gt;localizzazione&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Culture" rel="tag"&gt;Culture&lt;/a&gt;,&lt;a href="http://technorati.com/tags/UICulture" rel="tag"&gt;UICulture&lt;/a&gt;,&lt;a href="http://technorati.com/tags/multilingua" rel="tag"&gt;multilingua&lt;/a&gt;,&lt;a href="http://technorati.com/tags/multilanguage" rel="tag"&gt;multilanguage&lt;/a&gt;,&lt;a href="http://technorati.com/tags/localization" rel="tag"&gt;localization&lt;/a&gt;&lt;/div&gt;&lt;img src="http://community.dotnetwork.it/AndreaZ/aggbug/925.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Andrea Zingoni</dc:creator>
            <guid>http://community.dotnetwork.it/AndreaZ/archive/2011/11/30/silverlight-localizzazione-delle-risorse.aspx</guid>
            <pubDate>Wed, 30 Nov 2011 09:45:02 GMT</pubDate>
            <wfw:comment>http://community.dotnetwork.it/AndreaZ/comments/925.aspx</wfw:comment>
            <comments>http://community.dotnetwork.it/AndreaZ/archive/2011/11/30/silverlight-localizzazione-delle-risorse.aspx#feedback</comments>
            <wfw:commentRss>http://community.dotnetwork.it/AndreaZ/comments/commentRss/925.aspx</wfw:commentRss>
        </item>
        <item>
            <title>ASP.NET: passare dinamicamente un valore (o un insieme di valori) a Silverlight.</title>
            <link>http://community.dotnetwork.it/AndreaZ/archive/2011/11/28/asp.net-passare-dinamicamente-un-valore-o-un-insieme-di-valori.aspx</link>
            <description>&lt;p&gt;A differenza del post precedente (&lt;a href="http://community.dotnetwork.it/AndreaZ/archive/2011/11/28/asp.net-passare-un-valore-statico-a-silverlight.aspx" target="_blank"&gt;ASP.NET: passare un valore statico a Silverlight&lt;/a&gt;), per passare dinamicamente un valore a Silverlight da una pagina .aspx, bisogna: contrassegnare il plug-in Silverlight come oggetto server, aggiungerci il parametro &lt;strong&gt;InitParams, &lt;/strong&gt;contrassegnare anch’esso come oggetto server, popolare il parametro direttamente dalla pagina .aspx.&lt;/p&gt;  &lt;p&gt;Assegnare un identificativo (&lt;strong&gt;id&lt;/strong&gt;) all’oggetto Silverlight e contrassegnare il plug-in come oggetto server:&lt;/p&gt;  &lt;pre style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 722px; padding-right: 5px; height: 405px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px"&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;body&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;form&lt;/span&gt; &lt;span style="color: #ff0000"&gt;id&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"form1"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;runat&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"server"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;style&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"height:100%"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt; &lt;font style="background-color: #ffff00"&gt;&lt;span style="color: #ff0000"&gt;id&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"silverlightControlHost"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;runat&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"server"&lt;/span&gt;&lt;/font&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;        &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;object&lt;/span&gt; &lt;span style="color: #ff0000"&gt;data&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"data:application/x-silverlight-2,"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;type&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"application/x-silverlight-2"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;width&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"100%"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;height&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"100%"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;		  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;param&lt;/span&gt; &lt;span style="color: #ff0000"&gt;name&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"source"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;value&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"ClientBin/SilverlightApplication1.xap"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;		  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;param&lt;/span&gt; &lt;span style="color: #ff0000"&gt;name&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"onError"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;value&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"onSilverlightError"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;		  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;param&lt;/span&gt; &lt;span style="color: #ff0000"&gt;name&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"background"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;value&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"white"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;		  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;param&lt;/span&gt; &lt;span style="color: #ff0000"&gt;name&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"minRuntimeVersion"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;value&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"4.0.50826.0"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;		  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;param&lt;/span&gt; &lt;span style="color: #ff0000"&gt;name&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"autoUpgrade"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;value&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"true"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;          &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;a&lt;/span&gt; &lt;span style="color: #ff0000"&gt;href&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"http://go.microsoft.com/fwlink/?LinkID=149156&amp;amp;v=4.0.50826.0"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;style&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"text-decoration:none"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt; 			  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;img&lt;/span&gt; &lt;span style="color: #ff0000"&gt;src&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"http://go.microsoft.com/fwlink/?LinkId=161376"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;alt&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"Scarica Microsoft Silverlight"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;style&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"border-style:none"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;		  &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;a&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;	    &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;object&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;iframe&lt;/span&gt; &lt;span style="color: #ff0000"&gt;id&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"_sl_historyFrame"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;style&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"visibility:hidden;height:0px;width:0px;border:0px"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;iframe&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;form&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;body&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Aggiungere il parametro InitParams, contrassegnarlo come oggetto server, impostargli un identificativo e aggiungergli un attributo ‘&lt;strong&gt;value&lt;/strong&gt;’ vuoto:&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;pre style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 724px; padding-right: 5px; height: 486px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px"&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;body&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;form&lt;/span&gt; &lt;span style="color: #ff0000"&gt;id&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"form1"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;runat&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"server"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;style&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"height:100%"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt; &lt;span style="color: #ff0000"&gt;id&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"silverlightControlHost"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;runat&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"server"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;        &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;object&lt;/span&gt; &lt;span style="color: #ff0000"&gt;data&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"data:application/x-silverlight-2,"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;type&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"application/x-silverlight-2"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;width&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"100%"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;height&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"100%"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;		  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;param&lt;/span&gt; &lt;span style="color: #ff0000"&gt;name&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"source"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;value&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"ClientBin/SilverlightApplication1.xap"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;		  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;param&lt;/span&gt; &lt;span style="color: #ff0000"&gt;name&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"onError"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;value&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"onSilverlightError"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;		  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;param&lt;/span&gt; &lt;span style="color: #ff0000"&gt;name&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"background"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;value&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"white"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;		  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;param&lt;/span&gt; &lt;span style="color: #ff0000"&gt;name&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"minRuntimeVersion"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;value&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"4.0.50826.0"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;		  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;param&lt;/span&gt; &lt;span style="color: #ff0000"&gt;name&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"autoUpgrade"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;value&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"true"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;                    &lt;font style="background-color: #ffff00"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;param&lt;/span&gt; &lt;span style="color: #ff0000"&gt;name&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"initParams"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;id&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"myInitParams"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;runat&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"server"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;value&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;""&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/font&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;          &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;a&lt;/span&gt; &lt;span style="color: #ff0000"&gt;href&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"http://go.microsoft.com/fwlink/?LinkID=149156&amp;amp;v=4.0.50826.0"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;style&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"text-decoration:none"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt; 			  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;img&lt;/span&gt; &lt;span style="color: #ff0000"&gt;src&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"http://go.microsoft.com/fwlink/?LinkId=161376"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;alt&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"Scarica Microsoft Silverlight"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;style&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"border-style:none"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;		  &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;a&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;	    &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;object&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;iframe&lt;/span&gt; &lt;span style="color: #ff0000"&gt;id&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"_sl_historyFrame"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;style&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"visibility:hidden;height:0px;width:0px;border:0px"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;iframe&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;form&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;body&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;In un qualunque evento della pagina .aspx che precede l’inizializzazione dell’oggetto Silverlight, aggiungere la coppia &lt;strong&gt;chiave/valore&lt;/strong&gt; dei dati desiderati all’attributo ‘&lt;strong&gt;value&lt;/strong&gt;’:&lt;/p&gt;

&lt;pre style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 738px; padding-right: 5px; height: 334px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px"&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;Public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Class&lt;/span&gt; SilverlightApplication1TestPage
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;Inherits&lt;/span&gt; System.Web.UI.Page
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;Private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Sub&lt;/span&gt; Me_Load(sender &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Object&lt;/span&gt;, e &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; System.EventArgs) &lt;span style="color: #0000ff"&gt;Handles&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Me&lt;/span&gt;.Load
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;        &lt;span style="color: #0000ff"&gt;If&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Not&lt;/span&gt; IsPostBack &lt;span style="color: #0000ff"&gt;Then&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;            &lt;span style="color: #008000"&gt;' Recupera le preferenze linguistiche del browser.&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;            &lt;span style="color: #0000ff"&gt;Dim&lt;/span&gt; preferenzaCultura &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; &lt;span style="color: #0000ff"&gt;String&lt;/span&gt;() = HttpContext.Current.Request.UserLanguages
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;            &lt;span style="color: #008000"&gt;' Passa il valore all'oggetto Silverlight.&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;            &lt;font style="background-color: #ffff00"&gt;&lt;span style="color: #0000ff"&gt;Me&lt;/span&gt;.myInitParams.Attributes.Add("&lt;span style="color: #8b0000"&gt;value&lt;/span&gt;", "&lt;span style="color: #8b0000"&gt;UICulture=&lt;/span&gt;" &amp;amp; preferenzaCultura(0))&lt;/font&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;        &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;If&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Sub&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Class&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Aprire il file di code-behind ‘&lt;strong&gt;App.xaml.vb&lt;/strong&gt;(cs)’ e nell’Application_Startup leggere la collection InitParams:&lt;/p&gt;

&lt;pre style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 726px; padding-right: 5px; height: 328px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px"&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;Private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Sub&lt;/span&gt; Application_Startup(&lt;span style="color: #0000ff"&gt;ByVal&lt;/span&gt; o &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Object&lt;/span&gt;, &lt;span style="color: #0000ff"&gt;ByVal&lt;/span&gt; e &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; StartupEventArgs) &lt;span style="color: #0000ff"&gt;Handles&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Me&lt;/span&gt;.Startup
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;        &lt;span style="color: #008000"&gt;' Legge i parametri iniziali del pug-in.&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;        &lt;span style="color: #0000ff"&gt;If&lt;/span&gt; e.InitParams.Count &amp;gt; 0 &lt;span style="color: #0000ff"&gt;Then&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;            &lt;span style="color: #0000ff"&gt;Dim&lt;/span&gt; cultureName &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; &lt;span style="color: #0000ff"&gt;String&lt;/span&gt; = &lt;font style="background-color: #ffff00"&gt;e.InitParams("&lt;span style="color: #8b0000"&gt;UICulture&lt;/span&gt;").ToString()
&lt;/font&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;            &lt;span style="color: #008000"&gt;' Imposta la lingua del browser.&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;            &lt;span style="color: #0000ff"&gt;If&lt;/span&gt; &lt;span style="color: #0000ff"&gt;String&lt;/span&gt;.IsNullOrEmpty(cultureName) = &lt;span style="color: #0000ff"&gt;False&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Then&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;                System.Threading.Thread.CurrentThread.CurrentUICulture = &lt;span style="color: #0000ff"&gt;New&lt;/span&gt; Globalization.CultureInfo(cultureName)
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;            &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;If&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;            &lt;span style="color: #008000"&gt;' Aggiunge il valore alle risorse.&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;            App.Current.Resources.Add("&lt;span style="color: #8b0000"&gt;UICulture&lt;/span&gt;", System.Threading.Thread.CurrentThread.CurrentUICulture.DisplayName)
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;        &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;If&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;        &lt;span style="color: #0000ff"&gt;Me&lt;/span&gt;.RootVisual = &lt;span style="color: #0000ff"&gt;New&lt;/span&gt; MainPage()
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Sub&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;In questo esempio, dalla pagina .aspx è stata passata la preferenza della lingua del browser e Silverlight l’ha impostata come propria lingua dell’applicazione.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="http://community.dotnetwork.it/images/community_dotnetwork_it/AndreaZ/Windows-Live-Writer/ASP.NET-passare-un-valore-o-un-insieme-_DA7A/image_4.png" rel="lightbox"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://community.dotnetwork.it/images/community_dotnetwork_it/AndreaZ/Windows-Live-Writer/ASP.NET-passare-un-valore-o-un-insieme-_DA7A/image_thumb_1.png" width="325" height="205" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;E’ possibile passare dinamicamente più di un valore all’oggetto Silverlight:&lt;/p&gt;

&lt;pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;p&gt;&lt;span style="color: #0000ff"&gt;Me&lt;/span&gt;.myInitParams.Attributes.Add("&lt;span style="color: #8b0000"&gt;value&lt;/span&gt;", &lt;font style="background-color: #ffff00"&gt;"&lt;span style="color: #8b0000"&gt;chiave1=Valore1,chiave2=Valore2,Chiave3=Valore3&lt;/span&gt;"&lt;/font&gt;)&lt;/p&gt;&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Per un esempio completo sul passaggio di più valori leggere il post &lt;a href="http://community.dotnetwork.it/AndreaZ/archive/2011/11/28/asp.net-passare-un-valore-statico-a-silverlight.aspx" target="_blank"&gt;ASP.NET: passare un valore statico a Silverlight&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://community.dotnetwork.it/AndreaZ/aggbug/923.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Andrea Zingoni</dc:creator>
            <guid>http://community.dotnetwork.it/AndreaZ/archive/2011/11/28/asp.net-passare-dinamicamente-un-valore-o-un-insieme-di-valori.aspx</guid>
            <pubDate>Mon, 28 Nov 2011 10:25:50 GMT</pubDate>
            <wfw:comment>http://community.dotnetwork.it/AndreaZ/comments/923.aspx</wfw:comment>
            <comments>http://community.dotnetwork.it/AndreaZ/archive/2011/11/28/asp.net-passare-dinamicamente-un-valore-o-un-insieme-di-valori.aspx#feedback</comments>
            <wfw:commentRss>http://community.dotnetwork.it/AndreaZ/comments/commentRss/923.aspx</wfw:commentRss>
        </item>
        <item>
            <title>ASP.NET: passare un valore statico a Silverlight.</title>
            <link>http://community.dotnetwork.it/AndreaZ/archive/2011/11/28/asp.net-passare-un-valore-statico-a-silverlight.aspx</link>
            <description>&lt;p&gt;Per passare a Silverlight il valore di una pagina .aspx bisogna aggiungere allo stesso plug-in il parametro &amp;lt;&lt;a href="http://msdn.microsoft.com/it-it/library/cc838255(v=vs.95).aspx" target="_blank"&gt;InitParams&lt;/a&gt;&amp;gt;. &lt;/p&gt;  &lt;p&gt;Nella pagina del server identificare l’inizializzazione dell’oggetto Silverlight ed aggiungerci il seguente tag:&lt;/p&gt;  &lt;pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 94.72%; font-family: consolas,'Courier New',courier,monospace; height: 20px; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;param&lt;/span&gt; &lt;span style="color: #ff0000"&gt;name&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"initParams"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;value&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"chiave1=valore1"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;dove l’attributo ‘&lt;strong&gt;value&lt;/strong&gt;’ è il nostro valore personalizzato contrassegnato dalla chiave univoca &lt;strong&gt;‘chiave1’.&lt;/strong&gt;&lt;/p&gt;

&lt;pre style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 720px; padding-right: 5px; height: 420px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px"&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;body&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;form&lt;/span&gt; &lt;span style="color: #ff0000"&gt;id&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"form1"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;runat&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"server"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;style&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"height:100%"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt; &lt;span style="color: #ff0000"&gt;id&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"silverlightControlHost"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;        &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;object&lt;/span&gt; &lt;span style="color: #ff0000"&gt;data&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"data:application/x-silverlight-2,"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;type&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"application/x-silverlight-2"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;width&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"100%"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;height&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"100%"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;		  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;param&lt;/span&gt; &lt;span style="color: #ff0000"&gt;name&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"source"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;value&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"ClientBin/SilverlightApplication1.xap"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;		  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;param&lt;/span&gt; &lt;span style="color: #ff0000"&gt;name&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"onError"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;value&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"onSilverlightError"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;		  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;param&lt;/span&gt; &lt;span style="color: #ff0000"&gt;name&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"background"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;value&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"white"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;		  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;param&lt;/span&gt; &lt;span style="color: #ff0000"&gt;name&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"minRuntimeVersion"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;value&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"4.0.50826.0"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;		  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;param&lt;/span&gt; &lt;span style="color: #ff0000"&gt;name&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"autoUpgrade"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;value&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"true"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;                         &lt;font style="background-color: #ffff00"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;param&lt;/span&gt; &lt;span style="color: #ff0000"&gt;name&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"initParams"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;value&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"chiave1=valore1"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/font&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;		  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;a&lt;/span&gt; &lt;span style="color: #ff0000"&gt;href&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"http://go.microsoft.com/fwlink/?LinkID=149156&amp;amp;v=4.0.50826.0"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;style&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"text-decoration:none"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt; 			  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;img&lt;/span&gt; &lt;span style="color: #ff0000"&gt;src&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"http://go.microsoft.com/fwlink/?LinkId=161376"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;alt&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"Scarica Microsoft Silverlight"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;style&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"border-style:none"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;		  &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;a&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;	    &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;object&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;iframe&lt;/span&gt; &lt;span style="color: #ff0000"&gt;id&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"_sl_historyFrame"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;style&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"visibility:hidden;height:0px;width:0px;border:0px"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;iframe&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;form&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;body&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;A questo punto è possibile leggere il parametro InitParams direttamente dall’applicazione Silverlight. 
  &lt;br /&gt;Aprire il file di code-behind ‘&lt;strong&gt;App.xaml.vb&lt;/strong&gt;(cs)’ e nell’&lt;strong&gt;Application_Startup&lt;/strong&gt; recuperare e memorizzare nelle risorse dell’applicazione il contenuto della collection InitParams:&lt;/p&gt;

&lt;pre style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 723px; padding-right: 5px; height: 196px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px"&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;Private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Sub&lt;/span&gt; Application_Startup(&lt;span style="color: #0000ff"&gt;ByVal&lt;/span&gt; o &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Object&lt;/span&gt;, &lt;span style="color: #0000ff"&gt;ByVal&lt;/span&gt; e &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; StartupEventArgs) &lt;span style="color: #0000ff"&gt;Handles&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Me&lt;/span&gt;.Startup
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;        &lt;span style="color: #008000"&gt;' Legge i parametri iniziali del pug-in.&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;        &lt;span style="color: #0000ff"&gt;Me&lt;/span&gt;.Resources.Add("&lt;span style="color: #8b0000"&gt;Nuovo nome risorsa&lt;/span&gt;", e.InitParams("&lt;span style="color: #8b0000"&gt;chiave1&lt;/span&gt;"))
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;        &lt;span style="color: #0000ff"&gt;Me&lt;/span&gt;.RootVisual = &lt;span style="color: #0000ff"&gt;New&lt;/span&gt; MainPage()
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Sub&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;La collection InitParams è leggibile solamente in questa routine dell’applicazione Silverlight.&lt;/p&gt;

&lt;p&gt;A questo punto è possibile recuperare il valore passato dalla pagina .aspx recuperandolo dalle risorse dell’applicazione:&lt;/p&gt;

&lt;pre style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 726px; padding-right: 5px; height: 251px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px"&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;Partial&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Class&lt;/span&gt; MainPage
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;Inherits&lt;/span&gt; UserControl
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;Public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Sub&lt;/span&gt; &lt;span style="color: #0000ff"&gt;New&lt;/span&gt;()
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;        InitializeComponent()
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;        &lt;span style="color: #0000ff"&gt;Me&lt;/span&gt;.Label1.Content = App.Current.Resources("&lt;span style="color: #8b0000"&gt;Nuovo nome risorsa&lt;/span&gt;")
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Sub&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Class&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="http://community.dotnetwork.it/images/community_dotnetwork_it/AndreaZ/Windows-Live-Writer/ASP.NET--passare-un-valore-statico-a-Si_CF2E/image_2.png" rel="lightbox"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://community.dotnetwork.it/images/community_dotnetwork_it/AndreaZ/Windows-Live-Writer/ASP.NET--passare-un-valore-statico-a-Si_CF2E/image_thumb.png" width="245" height="196" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;E’ possibile inserire più di un valore nell’inizializzazione dell’oggetto Silverlight:&lt;/p&gt;

&lt;pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 94.25%; font-family: consolas,'Courier New',courier,monospace; height: 20px; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;param&lt;/span&gt; &lt;span style="color: #ff0000"&gt;name&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"initParams"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;value&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;"&lt;font style="background-color: #ffff00"&gt;chiave1=valore1,chiave2=valore2,chiave3=valore3&lt;/font&gt;"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Per leggere tutti i valori impostati si dovrà ciclare l’intera collections InitParams:&lt;/p&gt;

&lt;pre style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 719px; padding-right: 5px; height: 269px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px"&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;Private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Sub&lt;/span&gt; Application_Startup(&lt;span style="color: #0000ff"&gt;ByVal&lt;/span&gt; o &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Object&lt;/span&gt;, &lt;span style="color: #0000ff"&gt;ByVal&lt;/span&gt; e &lt;span style="color: #0000ff"&gt;As&lt;/span&gt; StartupEventArgs) &lt;span style="color: #0000ff"&gt;Handles&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Me&lt;/span&gt;.Startup
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;        &lt;span style="color: #008000"&gt;' Legge i parametri iniziali del pug-in.&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;        &lt;font style="background-color: #ffff00"&gt;&lt;span style="color: #0000ff"&gt;For&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Each&lt;/span&gt; p &lt;span style="color: #0000ff"&gt;In&lt;/span&gt; e.InitParams
&lt;/font&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;            &lt;font style="background-color: #ffff00"&gt;&lt;span style="color: #0000ff"&gt;Me&lt;/span&gt;.Resources.Add(p.Key, p.Value)
&lt;/font&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;        &lt;font style="background-color: #ffff00"&gt;&lt;span style="color: #0000ff"&gt;Next&lt;/span&gt;
&lt;/font&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;        &lt;span style="color: #0000ff"&gt;Me&lt;/span&gt;.RootVisual = &lt;span style="color: #0000ff"&gt;New&lt;/span&gt; MainPage()
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Sub&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;Successivamente si potrà ciclare l’intera collection delle risorse dell’applicazione, oppure si potrà richiamare direttamente un singolo valore tramite la sua chiave identificativa:&lt;/p&gt;

&lt;pre style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 721px; padding-right: 5px; height: 339px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px"&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;Partial&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Class&lt;/span&gt; MainPage
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;Inherits&lt;/span&gt; UserControl
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;Public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Sub&lt;/span&gt; &lt;span style="color: #0000ff"&gt;New&lt;/span&gt;()
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;        InitializeComponent()
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;        &lt;font style="background-color: #ffff00"&gt;&lt;span style="color: #0000ff"&gt;For&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Each&lt;/span&gt; r &lt;span style="color: #0000ff"&gt;In&lt;/span&gt; App.Current.Resources
&lt;/font&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;            &lt;font style="background-color: #ffff00"&gt;&lt;span style="color: #0000ff"&gt;Me&lt;/span&gt;.Label1.Content &amp;amp;= &lt;span style="color: #0000ff"&gt;String&lt;/span&gt;.Format("&lt;span style="color: #8b0000"&gt;{0}={1}{2}&lt;/span&gt;", r.key, r.value, Environment.NewLine)
&lt;/font&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;        &lt;font style="background-color: #ffff00"&gt;&lt;span style="color: #0000ff"&gt;Next&lt;/span&gt;
&lt;/font&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Sub&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;End&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Class&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="http://community.dotnetwork.it/images/community_dotnetwork_it/AndreaZ/Windows-Live-Writer/ASP.NET--passare-un-valore-statico-a-Si_CF2E/image_4.png" rel="lightbox"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://community.dotnetwork.it/images/community_dotnetwork_it/AndreaZ/Windows-Live-Writer/ASP.NET--passare-un-valore-statico-a-Si_CF2E/image_thumb_1.png" width="223" height="210" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Abbiamo visto come passare dei valori statici all’oggetto Silverlight, ossia scrivendoli manualmente del markup della pagina .aspx in fase di progettazione della stessa. Per passare invece dei valori &lt;strong&gt;dinamicamente&lt;/strong&gt; leggere il post &lt;strong&gt;&lt;a href="http://community.dotnetwork.it/AndreaZ/archive/2011/11/28/asp.net-passare-dinamicamente-un-valore-o-un-insieme-di-valori.aspx" target="_blank"&gt;ASP.NET: passare dinamicamente un valore (o un insieme di valori) a Silverlight.&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:73e65db4-1951-41c9-b3b6-f398f1735f1e" class="wlWriterEditableSmartContent"&gt;Tag di Technorati: &lt;a href="http://technorati.com/tags/Silverlight" rel="tag"&gt;Silverlight&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ASP.NET" rel="tag"&gt;ASP.NET&lt;/a&gt;,&lt;a href="http://technorati.com/tags/InitParams" rel="tag"&gt;InitParams&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Passare+valore+a+Silverlight" rel="tag"&gt;Passare valore a Silverlight&lt;/a&gt;&lt;/div&gt;&lt;img src="http://community.dotnetwork.it/AndreaZ/aggbug/922.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Andrea Zingoni</dc:creator>
            <guid>http://community.dotnetwork.it/AndreaZ/archive/2011/11/28/asp.net-passare-un-valore-statico-a-silverlight.aspx</guid>
            <pubDate>Mon, 28 Nov 2011 09:39:44 GMT</pubDate>
            <wfw:comment>http://community.dotnetwork.it/AndreaZ/comments/922.aspx</wfw:comment>
            <comments>http://community.dotnetwork.it/AndreaZ/archive/2011/11/28/asp.net-passare-un-valore-statico-a-silverlight.aspx#feedback</comments>
            <wfw:commentRss>http://community.dotnetwork.it/AndreaZ/comments/commentRss/922.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Popolare DataGridView manualmente</title>
            <link>http://community.dotnetwork.it/AndreaZ/archive/2011/04/11/popolare-datagridview-manualmente.aspx</link>
            <description>&lt;font face=""&gt;Memorizzo qui un piccolo snippet per popolare manualmente una DataGridView (bound e/o unbound) in cui sono già state create le DataGridViewColumns.
&lt;p&gt;  &lt;/p&gt;
&lt;p&gt; &lt;font face=""&gt;               Dim dgvRow As New DataGridViewRow&lt;br /&gt;
                dgvRow.CreateCells(Me.dgvAllegati)&lt;br /&gt;
                With dgvRow&lt;br /&gt;
                    .Cells(0).Value = "valore colonna 0"&lt;br /&gt;
                    .Cells(1).Value = "valore colonna 1"&lt;br /&gt;
                    .Cells(2).Value = "valore colonna 2"&lt;br /&gt;
                    .Cells(3).Value = "valore colonna 3"&lt;br /&gt;
                End With&lt;br /&gt;
                Me.dgvAllegati.Rows.Add(dgvRow)&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;  &lt;br /&gt;
Questo codice è comodo se non vogliamo andare a lavorare direttamente sulla sorgente dati.&lt;/p&gt;
&lt;/font&gt;&lt;img src="http://community.dotnetwork.it/AndreaZ/aggbug/785.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Andrea Zingoni</dc:creator>
            <guid>http://community.dotnetwork.it/AndreaZ/archive/2011/04/11/popolare-datagridview-manualmente.aspx</guid>
            <pubDate>Mon, 11 Apr 2011 13:16:24 GMT</pubDate>
            <wfw:comment>http://community.dotnetwork.it/AndreaZ/comments/785.aspx</wfw:comment>
            <comments>http://community.dotnetwork.it/AndreaZ/archive/2011/04/11/popolare-datagridview-manualmente.aspx#feedback</comments>
            <wfw:commentRss>http://community.dotnetwork.it/AndreaZ/comments/commentRss/785.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Web Services: impossibile caricare la sezione di configurazione endpoint</title>
            <link>http://community.dotnetwork.it/AndreaZ/archive/2010/03/09/web-services-impossibile-caricare-la-sezione-di-configurazione-endpoint.aspx</link>
            <description>&lt;p&gt; &lt;/p&gt;  &lt;p&gt;Lavorando (“smanettando”) coi Web Services si potrebbe incorrere nella seguente eccezione di Visual Studio:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;&lt;strong&gt;“Impossibile caricare la sezione di configurazione endpoint per il contratto 'mio Web Service Soap'. Trovata più di una configurazione per il contratto. Indicare la sezione di configurazione endpoint preferita per nome.”&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" border="0" src="http://www.andreazingoni.it/images/EndPoint.PNG" /&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;L’errore non sta nella configurazione del server, bensì nella configurazione dell’applicazione che deve collegarsi al Web Service.&lt;/p&gt;  &lt;p&gt;Succede che nel file di configuazione dell’applicazione talvolta vengano generati in automatico due riferimenti uguali allo stesso Web Service.&lt;/p&gt;  &lt;p&gt;Per correggere l’errore basta aprire il file di configurazione dell’applicazione selezionandolo da Esplora Soluzioni di Visual Studio:&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://www.andreazingoni.it/images/EndPoint 2.PNG" /&gt;  &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Scorrerlo ed identificare il tag &lt;strong&gt;&amp;lt;endpoint&amp;gt;&lt;/strong&gt; in cui viene configurata la chiamata al Web Service.&lt;/p&gt;  &lt;p&gt;A questo punto è possibile notare la doppia dichiarazione:&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://www.andreazingoni.it/images/EndPoint 3.PNG" /&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Basterà quindi eliminare la seconda (terza, o quarta… :-P) dichiarazione per far funzionare correttamente la nostra applicazione.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;HTH&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;PS: Perchè in italiano c’è pochissima documentazione a riguardo??…&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:f2acec5d-c14b-4f38-a6d7-0b3d67485c9e" class="wlWriterEditableSmartContent"&gt;Tag Cloud: &lt;a href="http://community.dotnetwork.it/andreaz/Tags/Tips/default.aspx" rel="tag"&gt;Tips&lt;/a&gt;, &lt;a href="http://community.dotnetwork.it/andreaz/Tags/WebServices/default.aspx" rel="tag"&gt;WebServices&lt;/a&gt;&lt;/div&gt;&lt;img src="http://community.dotnetwork.it/AndreaZ/aggbug/379.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Andrea Zingoni</dc:creator>
            <guid>http://community.dotnetwork.it/AndreaZ/archive/2010/03/09/web-services-impossibile-caricare-la-sezione-di-configurazione-endpoint.aspx</guid>
            <pubDate>Tue, 09 Mar 2010 14:18:06 GMT</pubDate>
            <wfw:comment>http://community.dotnetwork.it/AndreaZ/comments/379.aspx</wfw:comment>
            <comments>http://community.dotnetwork.it/AndreaZ/archive/2010/03/09/web-services-impossibile-caricare-la-sezione-di-configurazione-endpoint.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://community.dotnetwork.it/AndreaZ/comments/commentRss/379.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Intercettare l&amp;rsquo;evento ItemCheck della CheckedListBox</title>
            <link>http://community.dotnetwork.it/AndreaZ/archive/2009/12/14/intercettare-lrsquoevento-itemcheck-della-checkedlistbox.aspx</link>
            <description>&lt;p&gt;Sfortunatamente la &lt;a href="http://msdn.microsoft.com/it-it/library/system.windows.forms.checkedlistbox.objectcollection.aspx" target="_blank"&gt;CheckedListBox&lt;/a&gt; non possiede un evento che si scatena dopo che è stato “flaggato” un item, percui è difficile poter interagire direttamente con l’elemento selezionato.&lt;/p&gt;  &lt;p&gt;E’ possibile aggirare il problema creando degli items personalizzati visto che all’interno della CheckedListBox è possibile aggiungere qualunque oggetto indicizzato (che espone l’interfaccia &lt;a href="http://msdn.microsoft.com/it-it/library/s4ys34ea(VS.95).aspx" target="_blank"&gt;IDictionary&lt;/a&gt;).&lt;/p&gt;  &lt;p&gt;Creiamo una classe personalizzata che rappresenti un item e che abbia una proprietà di tipo &lt;a href="http://msdn.microsoft.com/it-it/library/system.windows.forms.checkstate.aspx" target="_blank"&gt;CheckState&lt;/a&gt; che memorizzi il flag impostato dalla CheckedListBox che lo contiene.&lt;/p&gt;  &lt;pre class="VisualBasicFormat"&gt;&lt;span class="rem"&gt;' Oggetto personalizzato myChekedItem.&lt;/span&gt;
&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Class&lt;/span&gt; myChekedItem
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; _Nome &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;
    &lt;span class="kwrd"&gt;Property&lt;/span&gt; Nome() &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;
        &lt;span class="kwrd"&gt;Get&lt;/span&gt;
            &lt;span class="kwrd"&gt;Return&lt;/span&gt; _Nome
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Get&lt;/span&gt;
        &lt;span class="kwrd"&gt;Set&lt;/span&gt;(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; value &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;)
            _Nome = value
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Set&lt;/span&gt;
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt;

    &lt;span class="kwrd"&gt;Private&lt;/span&gt; _Stato &lt;span class="kwrd"&gt;As&lt;/span&gt; CheckState
    &lt;span class="kwrd"&gt;Property&lt;/span&gt; Stato() &lt;span class="kwrd"&gt;As&lt;/span&gt; CheckState
        &lt;span class="kwrd"&gt;Get&lt;/span&gt;
            &lt;span class="kwrd"&gt;Return&lt;/span&gt; _Stato
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Get&lt;/span&gt;
        &lt;span class="kwrd"&gt;Set&lt;/span&gt;(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; value &lt;span class="kwrd"&gt;As&lt;/span&gt; CheckState)
            _Stato = value
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Set&lt;/span&gt;
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt;

    &lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; &lt;span class="kwrd"&gt;New&lt;/span&gt;(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; nome &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; stato &lt;span class="kwrd"&gt;As&lt;/span&gt; CheckState)
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.Nome = nome
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.Stato = stato
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;

    &lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Overrides&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt; ToString() &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;
        &lt;span class="kwrd"&gt;Return&lt;/span&gt; &lt;span class="kwrd"&gt;Me&lt;/span&gt;.Nome
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt;
&lt;span class="kwrd"&gt;End&lt;/span&gt; Class&lt;/pre&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Eseguendo l’overrides della funzione &lt;a href="http://msdn.microsoft.com/it-it/library/ms173154.aspx" target="_blank"&gt;.ToString&lt;/a&gt; della classe base, permetteremo alla CheckedListBox di visualizzare automaticamente la proprietà Nome nell’item personalizzato, senza dover impostare la proprietà (nascosta) DisplayMember.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Popoliamo la CheckedListBox con gli items personalizzati.&lt;/p&gt;

&lt;pre class="VisualBasicFormat"&gt;    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; Form1_Load(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; System.&lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; System.EventArgs) &lt;span class="kwrd"&gt;Handles&lt;/span&gt; &lt;span class="kwrd"&gt;MyBase&lt;/span&gt;.Load
        &lt;span class="rem"&gt;' Aggiunge gli oggetti myChekedItem alla CheckedListBox.&lt;/span&gt;
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.CheckedListBox1.Items.Add(&lt;span class="kwrd"&gt;New&lt;/span&gt; myChekedItem(&lt;span class="str"&gt;"prova Item personalizzato 1"&lt;/span&gt;, CheckState.Indeterminate))
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.CheckedListBox1.Items.Add(&lt;span class="kwrd"&gt;New&lt;/span&gt; myChekedItem(&lt;span class="str"&gt;"prova Item personalizzato 2"&lt;/span&gt;, CheckState.Indeterminate))
    &lt;span class="kwrd"&gt;End&lt;/span&gt; Sub&lt;/pre&gt;

&lt;p&gt;Intercettiamo l’evento .ItemCheck della CheckedListBox e risaliamo all’item personalizzato selezionato:&lt;/p&gt;

&lt;pre class="VisualBasicFormat"&gt;    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; CheckedListBox2_ItemCheck(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; System.Windows.Forms.ItemCheckEventArgs) &lt;span class="kwrd"&gt;Handles&lt;/span&gt; CheckedListBox1.ItemCheck
        &lt;span class="rem"&gt;' Imposta il checkstate all'oggetto myChekedItem selezionato.&lt;/span&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; chkItem &lt;span class="kwrd"&gt;As&lt;/span&gt; myChekedItem = &lt;span class="kwrd"&gt;DirectCast&lt;/span&gt;(&lt;span class="kwrd"&gt;Me&lt;/span&gt;.CheckedListBox1.Items(e.Index), myChekedItem)
        chkItem.Stato = e.NewValue

        &lt;span class="rem"&gt;' Aggiunge l'item selezionato.&lt;/span&gt;
        &lt;span class="kwrd"&gt;If&lt;/span&gt; e.NewValue = CheckState.Checked &lt;span class="kwrd"&gt;Then&lt;/span&gt;
            &lt;span class="kwrd"&gt;Me&lt;/span&gt;.ListBox1.Items.Add(chkItem)
        &lt;span class="kwrd"&gt;ElseIf&lt;/span&gt; e.NewValue = CheckState.Unchecked &lt;span class="kwrd"&gt;Then&lt;/span&gt;
            &lt;span class="kwrd"&gt;Me&lt;/span&gt;.ListBox1.Items.Remove(chkItem)
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;
    &lt;span class="kwrd"&gt;End&lt;/span&gt; Sub&lt;/pre&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;All’interno dell’evento .ItemCheck gestiremo i nostri items come oggetti indipendenti sfruttandone tutte le loro funzionalità. In questo caso li abbiamo aggiunti o rimossi ad una ListBox sfruttandone i metodi .Items.Add e .Items.Remove a seconda del valore della loro prorietà Stato.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:34653de3-a482-4654-ac9e-68a41fe55681" class="wlWriterEditableSmartContent"&gt;Tag Cloud: &lt;a href="http://community.dotnetwork.it/andreaz/Tags/CheckedListBox/default.aspx" rel="tag"&gt;CheckedListBox&lt;/a&gt;, &lt;a href="http://community.dotnetwork.it/andreaz/Tags/ItemCheck/default.aspx" rel="tag"&gt;ItemCheck&lt;/a&gt;, &lt;a href="http://community.dotnetwork.it/andreaz/Tags/Tips/default.aspx" rel="tag"&gt;Tips&lt;/a&gt;&lt;/div&gt;&lt;img src="http://community.dotnetwork.it/AndreaZ/aggbug/275.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Andrea Zingoni</dc:creator>
            <guid>http://community.dotnetwork.it/AndreaZ/archive/2009/12/14/intercettare-lrsquoevento-itemcheck-della-checkedlistbox.aspx</guid>
            <pubDate>Mon, 14 Dec 2009 16:32:28 GMT</pubDate>
            <wfw:comment>http://community.dotnetwork.it/AndreaZ/comments/275.aspx</wfw:comment>
            <comments>http://community.dotnetwork.it/AndreaZ/archive/2009/12/14/intercettare-lrsquoevento-itemcheck-della-checkedlistbox.aspx#feedback</comments>
            <wfw:commentRss>http://community.dotnetwork.it/AndreaZ/comments/commentRss/275.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Se lo StreamWriter &amp;egrave; troppo lento</title>
            <link>http://community.dotnetwork.it/AndreaZ/archive/2009/10/23/se-lo-streamwriter-egrave-troppo-lento.aspx</link>
            <description>&lt;p&gt;Generalmente per salvare un file di testo è molto comodo utilizzare uno StreamWriter:&lt;/p&gt;  &lt;pre class="VisualBasicFormat"&gt;            &lt;span class="kwrd"&gt;Dim&lt;/span&gt; sw &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;New&lt;/span&gt; IO.StreamWriter(&lt;span class="str"&gt;"C:\SW prova.txt"&lt;/span&gt;)
            sw.Write(&lt;span class="str"&gt;"Mio testo"&lt;/span&gt;)
            sw.Flush()
            sw.Close()&lt;/pre&gt;

&lt;p&gt;Se il testo da salvare però è di grandi dimensioni, lo StreamWriter sarà lento ad eseguire la scrittura su disco. Per evitare rallentamenti è possibile salvare il file come flusso di byte utilizzando la classe IO.FileStream:&lt;/p&gt;

&lt;pre class="VisualBasicFormat"&gt;            &lt;span class="kwrd"&gt;Dim&lt;/span&gt; fs &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;New&lt;/span&gt; IO.FileStream(&lt;span class="str"&gt;"C:\FS prova.txt"&lt;/span&gt;, IO.FileMode.OpenOrCreate)
            &lt;span class="kwrd"&gt;Dim&lt;/span&gt; enc &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;New&lt;/span&gt; System.Text.UTF8Encoding
            &lt;span class="kwrd"&gt;Dim&lt;/span&gt; bytes() &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Byte&lt;/span&gt; = enc.GetBytes(&lt;span class="str"&gt;"Mio testo molto lungo"&lt;/span&gt;)
            fs.Write(bytes, 0, bytes.Length)
            fs.Flush()
            fs.Close()&lt;/pre&gt;

&lt;p&gt; &lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:2205e1bd-404b-4fe3-8e2d-e098a20e5e67" class="wlWriterEditableSmartContent"&gt;Tag Cloud: &lt;a href="http://community.dotnetwork.it/andreaz/Tags/tips/default.aspx" rel="tag"&gt;tips&lt;/a&gt;&lt;/div&gt;&lt;img src="http://community.dotnetwork.it/AndreaZ/aggbug/248.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Andrea Zingoni</dc:creator>
            <guid>http://community.dotnetwork.it/AndreaZ/archive/2009/10/23/se-lo-streamwriter-egrave-troppo-lento.aspx</guid>
            <pubDate>Fri, 23 Oct 2009 07:48:07 GMT</pubDate>
            <wfw:comment>http://community.dotnetwork.it/AndreaZ/comments/248.aspx</wfw:comment>
            <comments>http://community.dotnetwork.it/AndreaZ/archive/2009/10/23/se-lo-streamwriter-egrave-troppo-lento.aspx#feedback</comments>
            <wfw:commentRss>http://community.dotnetwork.it/AndreaZ/comments/commentRss/248.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Nome del primo e dell&amp;rsquo;ultimo giorno del mese</title>
            <link>http://community.dotnetwork.it/AndreaZ/archive/2009/10/12/primo-ed-ultimo-giorno-del-mese.aspx</link>
            <description>&lt;p&gt;Niente di eccezionale ma abbastanza utile:&lt;/p&gt;  &lt;pre class="VisualBasicFormat"&gt;&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Class&lt;/span&gt; myDaysOfYear
    &lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Shared&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt; GetFirstDayOfMonth(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; data &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Date&lt;/span&gt;) &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Date&lt;/span&gt;
        &lt;span class="kwrd"&gt;Return&lt;/span&gt; DateTime.Parse(&lt;span class="kwrd"&gt;String&lt;/span&gt;.Format(&lt;span class="str"&gt;"01/{0}/{1}"&lt;/span&gt;, data.Month, data.Year))
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt;

    &lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Shared&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt; GetNameOfFirstDayOfMonth(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; data &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Date&lt;/span&gt;) &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;
        &lt;span class="kwrd"&gt;Return&lt;/span&gt; Globalization.CultureInfo.CurrentCulture.DateTimeFormat.GetDayName(GetFirstDayOfMonth(data).DayOfWeek)
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt;

    &lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Shared&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt; GetLastDayOfMonth(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; data &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Date&lt;/span&gt;) &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Date&lt;/span&gt;
        &lt;span class="kwrd"&gt;Return&lt;/span&gt; DateTime.Parse(&lt;span class="kwrd"&gt;String&lt;/span&gt;.Format(&lt;span class="str"&gt;"{0}/{1}/{2}"&lt;/span&gt;, &lt;span class="kwrd"&gt;Date&lt;/span&gt;.DaysInMonth(data.Year, data.Month), data.Month, data.Year))
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt;

    &lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Shared&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt; GetNameOfLastDayOfMonth(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; data &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Date&lt;/span&gt;) &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;
        &lt;span class="kwrd"&gt;Return&lt;/span&gt; Globalization.CultureInfo.CurrentCulture.DateTimeFormat.GetDayName(GetLastDayOfMonth(data).DayOfWeek)
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt;
&lt;span class="kwrd"&gt;End&lt;/span&gt; Class&lt;/pre&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Le funzioni della classe si richiamano così:&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;pre class="VisualBasicFormat"&gt;        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; NomeDelPrimoGiornoDelMese &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt; = myDaysOfYear.GetNameOfFirstDayOfMonth(DateTime.Today)
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; DataPrimoGiornoDelMese &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Date&lt;/span&gt; = myDaysOfYear.GetFirstDayOfMonth(DateTime.Today)
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; NomeUltimoGiornoDelMese &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt; = myDaysOfYear.GetNameOfLastDayOfMonth(DateTime.Today)
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; DataUltimoGiornoDelMese &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Date&lt;/span&gt; = myDaysOfYear.GetLastDayOfMonth(DateTime.Today)&lt;/pre&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:48aff68d-c983-4c9c-976f-2a846df99627" class="wlWriterEditableSmartContent"&gt;Tag Cloud: &lt;a href="http://community.dotnetwork.it/andreaz/Tags/Tips/default.aspx" rel="tag"&gt;Tips&lt;/a&gt;&lt;/div&gt;&lt;img src="http://community.dotnetwork.it/AndreaZ/aggbug/221.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Andrea Zingoni</dc:creator>
            <guid>http://community.dotnetwork.it/AndreaZ/archive/2009/10/12/primo-ed-ultimo-giorno-del-mese.aspx</guid>
            <pubDate>Mon, 12 Oct 2009 10:53:14 GMT</pubDate>
            <wfw:comment>http://community.dotnetwork.it/AndreaZ/comments/221.aspx</wfw:comment>
            <comments>http://community.dotnetwork.it/AndreaZ/archive/2009/10/12/primo-ed-ultimo-giorno-del-mese.aspx#feedback</comments>
            <wfw:commentRss>http://community.dotnetwork.it/AndreaZ/comments/commentRss/221.aspx</wfw:commentRss>
        </item>
        <item>
            <title>RowFilter non funziona con i nomi di colonna con spazi</title>
            <link>http://community.dotnetwork.it/AndreaZ/archive/2009/08/17/rowfilter-non-funziona-con-i-nomi-di-colonna-con-spazi.aspx</link>
            <description>&lt;p&gt;Può capitare di ritrovarsi con una &lt;a href="http://msdn.microsoft.com/it-it/library/system.data.datatable.aspx" target="_blank"&gt;DataTable&lt;/a&gt; contenente delle &lt;a href="http://msdn.microsoft.com/it-it/library/system.data.datacolumn(en-us,VS.71).aspx" target="_blank"&gt;DataColumns&lt;/a&gt; nominate in modo non convenzionale, ossia con caratteri non validi o con spazi.&lt;/p&gt;  &lt;p&gt;In questo caso le proprietà .&lt;a href="http://msdn.microsoft.com/it-it/library/system.data.dataview.rowfilter.aspx" target="_blank"&gt;RowFilter&lt;/a&gt; e .&lt;a href="http://msdn.microsoft.com/it-it/library/system.data.dataview.sort.aspx" target="_blank"&gt;Sort&lt;/a&gt; dell’oggetto &lt;a href="http://msdn.microsoft.com/it-it/library/system.data.dataview.aspx" target="_blank"&gt;DataView&lt;/a&gt; non funzionano correttamente.&lt;/p&gt;  &lt;p&gt;Per aggirare questo problema basta rinominare le colonne interessate prima di impostare il filtro di ricerca o di ordinamento:&lt;/p&gt;  &lt;pre class="csharpcode"&gt;            &lt;span class="rem"&gt;' Rinomina la colonna "Nome colonna con spazi" in "Nome_colonna_con_spazi".&lt;/span&gt;
            dt.Columns(13).ColumnName = dt.Columns(13).ColumnName.Replace(&lt;span class="str"&gt;" "&lt;/span&gt;, &lt;span class="str"&gt;"_"&lt;/span&gt;)

            &lt;span class="rem"&gt;' Imposta il filtro sulla colonna rinominata.&lt;/span&gt;
            dt.DefaultView.RowFilter = &lt;span class="kwrd"&gt;String&lt;/span&gt;.Format(&lt;span class="str"&gt;"{0} = '{1}'"&lt;/span&gt;, dt.Columns(13).ColumnName, &lt;span class="str"&gt;"Italia"&lt;/span&gt;)&lt;/pre&gt;

&lt;p&gt;Volendo è possibile ripristinare il nome originale eseguendo l’operazione inversa dopo aver impostato i filtri.&lt;/p&gt;

&lt;pre class="csharpcode"&gt;            dt.Columns(13).ColumnName = dt.Columns(13).ColumnName.Replace(&lt;span class="str"&gt;"_"&lt;/span&gt;, &lt;span class="str"&gt;" "&lt;/span&gt;)&lt;/pre&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:5dede15b-13b2-4acd-90cc-5aedce44be3e" class="wlWriterEditableSmartContent"&gt;Technorati Tag: &lt;a href="http://technorati.com/tags/Tips" rel="tag"&gt;Tips&lt;/a&gt;,&lt;a href="http://technorati.com/tags/DataTable" rel="tag"&gt;DataTable&lt;/a&gt;,&lt;a href="http://technorati.com/tags/DataView" rel="tag"&gt;DataView&lt;/a&gt;&lt;/div&gt;&lt;img src="http://community.dotnetwork.it/AndreaZ/aggbug/185.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Andrea Zingoni</dc:creator>
            <guid>http://community.dotnetwork.it/AndreaZ/archive/2009/08/17/rowfilter-non-funziona-con-i-nomi-di-colonna-con-spazi.aspx</guid>
            <pubDate>Mon, 17 Aug 2009 17:00:29 GMT</pubDate>
            <wfw:comment>http://community.dotnetwork.it/AndreaZ/comments/185.aspx</wfw:comment>
            <comments>http://community.dotnetwork.it/AndreaZ/archive/2009/08/17/rowfilter-non-funziona-con-i-nomi-di-colonna-con-spazi.aspx#feedback</comments>
            <wfw:commentRss>http://community.dotnetwork.it/AndreaZ/comments/commentRss/185.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Censurare le parole non gradite</title>
            <link>http://community.dotnetwork.it/AndreaZ/archive/2009/08/04/censurare-le-parole-non-gradite.aspx</link>
            <description>&lt;p&gt;Non ho mai avuto l'esigenza di censurare l'input dell'utente ma leggendo un &lt;a href="http://www.dotnetwork.it/Forums/tabid/54/afv/topic/aff/3/aft/3152/Default.aspx" target="_blank"&gt;post&lt;/a&gt;  su DNW ho capito che è una cosa da fare necessariamente, soprattutto se si gestiscono forum o altre discussioni pubbliche.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Proviamo quindi a realizzare una funzione che effettui il controllo delle parole non gradite. &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;La censura potrebbe avvenire semplicemente sovrascrivendo le parole indesiderate con dei caratteri non leggibili (es. l'asterisco).  &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Il sistema presentato avrà una contronidicazione: censurarà parti di parole che in realtà non devono essere censurate. Prendiamo ad esempio una frase come questa:&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;strong&gt;Cazzottare un figaro siculo&lt;/strong&gt;&lt;/em&gt; (prendere a pugni un barbiere siciliano)&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;la versione censurata risulterà in questo modo: &lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;strong&gt;c****ttare un f***ro sic***&lt;/strong&gt; &lt;/em&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Per evitare censure di questo tipo bisognerà lavorare molto sulla logica del programma tenendo in considerazione svariati scenari (parole singole, parole incorporate, parole con spazi, ecc…)&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;La funzione che segue non tiene conto della sopracitata logica ma effettua una censura indistinta delle parole indesiderate.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Il codice della funzione è molto semplice.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Creiamo un elenco in un file di testo (o in un database) delle parole da censurare (parolaccie, offese, riferimenti religiosi, ecc...) &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;em&gt;parolaA&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;parolaB&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;parolaC&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;…&lt;/em&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Cicliamo ognuna di queste parole e controlliamo se è presente nel testo da controllare. Se la parola è presente nel testo, la sovrascriveremo con una serie di caratteri non leggibili utilizzando una &lt;a href="http://msdn.microsoft.com/it-it/library/system.text.regularexpressions(VS.80).aspx" target="_blank"&gt;regular expression&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Chi non ha dimestichezza con le regex può sfruttare direttamente il metodo &lt;a href="http://msdn.microsoft.com/it-it/library/system.string.replace.aspx" target="_blank"&gt;.Replace&lt;/a&gt; dell'oggetto stringa (String, Textbox.Text, ecc...) ma questa soluzione non è performante come l'utilizzo delle regular expression. Un trucco per velocizzare comunque questo procedimento potrebbe essere quello di appoggiarsi ad uno &lt;a href="http://msdn.microsoft.com/it-it/library/system.text.stringbuilder.aspx" target="_blank"&gt;stringbuilder&lt;/a&gt; ma a conti fatti il codice da scrivere risulterebbe più articolato di quello delle regex. &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;pre class="VisualBasicFormat"&gt;    &lt;span class="rem"&gt;' VB.&lt;/span&gt;
    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; Button1_Click(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; System.&lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; System.EventArgs) &lt;span class="kwrd"&gt;Handles&lt;/span&gt; Button1.Click
        &lt;span class="kwrd"&gt;Me&lt;/span&gt;.TextBox2.Text = &lt;span class="kwrd"&gt;Me&lt;/span&gt;.CensorRegex(&lt;span class="kwrd"&gt;Me&lt;/span&gt;.TextBox1.Text)
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;

    &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt; CensorRegex(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; text &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;) &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;
        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; path &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt; = &lt;span class="str"&gt;"c:\Parole sgradite.txt"&lt;/span&gt;
        &lt;span class="kwrd"&gt;If&lt;/span&gt; My.Computer.FileSystem.FileExists(path) &lt;span class="kwrd"&gt;Then&lt;/span&gt;
            Using sr &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;New&lt;/span&gt; IO.StreamReader(path)
                &lt;span class="kwrd"&gt;Do&lt;/span&gt; &lt;span class="kwrd"&gt;While&lt;/span&gt; sr.Peek() &amp;gt;= 0

                    &lt;span class="rem"&gt;' Crea il pattern per la regex.&lt;/span&gt;
                    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; pattern &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt; = &lt;span class="kwrd"&gt;String&lt;/span&gt;.Format(&lt;span class="str"&gt;"{0}"&lt;/span&gt;, sr.ReadLine)

                    &lt;span class="rem"&gt;' Crea la stringa di censura.&lt;/span&gt;
                    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; mask &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt; = &lt;span class="kwrd"&gt;String&lt;/span&gt;.Format(&lt;span class="str"&gt;"{0}{1}"&lt;/span&gt;, pattern.Substring(0, 1), &lt;span class="kwrd"&gt;New&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;(&lt;span class="str"&gt;"*"&lt;/span&gt;c, pattern.Length - 1))

                    &lt;span class="rem"&gt;' Esegue la censura.&lt;/span&gt;
                    text = Regex.Replace(text, pattern, mask, RegexOptions.IgnoreCase)
                &lt;span class="kwrd"&gt;Loop&lt;/span&gt;

                sr.Close()
            &lt;span class="kwrd"&gt;End&lt;/span&gt; Using

            &lt;span class="rem"&gt;' Ritorna il valore.&lt;/span&gt;
            &lt;span class="kwrd"&gt;Return&lt;/span&gt; text
         &lt;span class="kwrd"&gt;Else&lt;/span&gt;
            MessageBox.Show(&lt;span class="kwrd"&gt;String&lt;/span&gt;.Format(&lt;span class="str"&gt;"File {0} non è stato trovato."&lt;/span&gt;, path), &lt;span class="str"&gt;"Errore"&lt;/span&gt;, MessageBoxButtons.OK, MessageBoxIcon.&lt;span class="kwrd"&gt;Error&lt;/span&gt;)
            &lt;span class="kwrd"&gt;Return&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;.Empty
        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;
    &lt;span class="kwrd"&gt;End&lt;/span&gt; Function&lt;/pre&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Un altro problema di questo codice è che non riesce a mantenere maiuscuola la prima lettera della parola da censurare. Ovviamente il problema è aggirabile ma richiederebbe un overhead che annullerebbe ogni beneficio dell'utilizzo delle regex in termini di velocità.&lt;/p&gt;&lt;img src="http://community.dotnetwork.it/AndreaZ/aggbug/183.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Andrea Zingoni</dc:creator>
            <guid>http://community.dotnetwork.it/AndreaZ/archive/2009/08/04/censurare-le-parole-non-gradite.aspx</guid>
            <pubDate>Tue, 04 Aug 2009 12:55:04 GMT</pubDate>
            <wfw:comment>http://community.dotnetwork.it/AndreaZ/comments/183.aspx</wfw:comment>
            <comments>http://community.dotnetwork.it/AndreaZ/archive/2009/08/04/censurare-le-parole-non-gradite.aspx#feedback</comments>
            <wfw:commentRss>http://community.dotnetwork.it/AndreaZ/comments/commentRss/183.aspx</wfw:commentRss>
        </item>
    </channel>
</rss>
