Vyskúšajte si Silverlight 4 / 1. časť

Zdá sa vám, že v na­šom ma­ga­zí­ne sa ob­ja­vu­jú člán­ky ve­no­va­né tec­hno­ló­gii Sil­verlight po­mer­ne čas­to? Má­te prav­du, no nie je to spô­so­be­né tým, že by sme ma­li v edič­nom plá­ne se­riál na tú­to té­mu, prí­či­nou je skôr ne­bý­va­lá ak­ti­vi­ta tvor­cov tej­to tec­hno­ló­gie, kto­rí za dva ro­ky pri­nies­li šty­ri ver­zie. Čís­lo 4 má pre naj­nov­šiu be­ta ver­ziu Sil­verlig­htu aj inú sym­bo­li­ku než len ozna­če­nie ver­zie. Tá­to be­ta to­tiž bo­la uve­de­ná len šty­ri me­sia­ce po ko­mer­čnom príc­ho­de „troj­ky“. Keď­že ide o dos­tup­nú tec­hno­ló­giu, a to vrá­ta­ne vý­vo­jo­vých nás­tro­jov, kto­ré sú v be­ta ver­zii dos­tup­né za­dar­mo, pri­ná­ša­me nie­koľ­ko prak­tic­kých ná­vo­dov, ako vy­skú­šať naj­výz­nam­nej­šie no­vin­ky.

Na vý­voj ap­li­ká­cií si tre­ba stiah­nuť návr­ho­vé pros­tre­die Expres­sion Blend Pre­view for .NET 4 ale­bo vý­vo­jo­vé pros­tre­die Vi­sual Stu­dio 2010 Be­ta a k ne­mu dopl­nok pre SL 4.

Po­dpo­ra webo­vej ka­me­ry a mik­ro­fó­nu

Za­čne­me vi­zuál­ne prav­de­po­dob­ne naj­at­rak­tív­nej­šou no­vin­kou, kto­rú si po­uží­va­te­lia Sil­verlig­htu že­la­li asi naj­viac. Po­dpo­ra webo­vej ka­me­ry a mik­ro­fó­nu po­sky­tu­je nie­len ne­tu­še­né mož­nos­ti zá­ba­vy a ko­mu­ni­ká­cie, je to aj je­den z hlav­ných pred­pok­la­dov na in­teg­rá­ciu ap­li­ká­cií Sil­verlight so so­ciál­ny­mi sie­ťa­mi. Prís­tup ap­li­ká­cie Sil­verlight ku ka­me­re a mik­ro­fó­nu tre­ba z dô­vo­du oc­hra­ny súk­ro­mia naj­skôr po­vo­liť zo stra­ny po­uží­va­te­ľa. Pre úpl­ných za­čia­toč­ní­kov pri­po­mí­na­me, že ap­li­ká­cia Sil­verlight z hľa­dis­ka kó­du po­zos­tá­va z dvoch čas­tí. Pre­zen­tač­né roz­hra­nie je de­fi­no­va­né po­mo­cou znač­ko­vé­ho ja­zy­ka XAML (sú­bor Main­Pa­ge.xaml) a ap­li­kač­ný kód v ja­zy­ku .NET, te­da vo Vi­sual Ba­si­cu ale­bo C# (sú­bor Main­Pa­ge.xaml.cs).

Kód XAML ap­li­ká­cie na po­ku­sy s webo­vou ka­me­rou ob­sa­hu­je ok­rem pr­vku ty­pu Rec­tang­le, na kto­rý sa po­mo­cou ob­jek­tu Vi­deoB­rush bu­de zob­ra­zo­vať ob­raz zos­ní­ma­ný po­mo­cou webo­vej ka­me­ry, aj dve tla­čid­lá na spus­te­nie a za­sta­ve­nie sní­ma­nia:

<Grid x:Na­me="Layout­Root" Background="Whi­te">
   <Stac­kPa­nel Orien­ta­tion="Ver­ti­cal" Ho­ri­zon­ta­lA­lig­nment="Cen­ter">
       <Rec­tang­le x:Na­me="Web­cam­Cap­tu­re" Width="600" Height="360"/>
       <Stac­kPa­nel Orien­ta­tion="Ho­ri­zon­tal" >
           <But­ton  x:Na­me="btStart" Mar­gin="5" Con­tent="START" Height="30" 
          Click="btStart_Click" />
           <But­ton  x:Na­me="btStop" Mar­gin="5" Con­tent="STOP" Height="30" 
          Click="btStop_Click" />
       </Stac­kPa­nel>
   </Stac­kPa­nel>
 </Grid>

V ob­služ­nej pro­ce­dú­re tla­čid­la START na za­ča­tie sní­ma­nia sa im­pli­cit­ne nas­ta­ve­né za­ria­de­nie na sní­ma­nie ob­ra­zu nas­ta­ví sa zdroj pre Vi­deoB­rush.

C#:

Cap­tu­re­Sour­ce _za­ria­de­nie = new Cap­tu­re­Sour­ce();

pub­lic Main­Pa­ge()
{
     Ini­tia­li­ze­Com­po­nent();
      _za­ria­de­nie.Vi­deo­Cap­tu­re­De­vi­ce = 
           Cap­tu­re­De­vi­ce­Con­fi­gu­ra­tion.Get­De­faul­tVi­deo­Cap­tu­re­De­vi­ce();
     _za­ria­de­nie.Audio­Cap­tu­re­De­vi­ce =  
           Cap­tu­re­De­vi­ce­Con­fi­gu­ra­tion.Get­De­faul­tAu­dio­Cap­tu­re­De­vi­ce();
}

        

pri­va­te void btStart_Click(ob­ject sen­der, Rou­te­dE­ven­tArgs e)
{
        Vi­deoB­rush vid­Brush = new Vi­deoB­rush();
        vid­Brush.Set­Sour­ce(_za­ria­de­nie);
        Web­cam­Cap­tu­re.Fill = vid­Brush;
        if (Cap­tu­re­De­vi­ce­Con­fi­gu­ra­tion.Allowed­De­vi­ceAc­cess ||
              Cap­tu­re­De­vi­ce­Con­fi­gu­ra­tion.Reques­tDe­vi­ceAc­cess())
        {
            _za­ria­de­nie.Start();
        }
}

pri­va­te void btStop_Click(ob­ject sen­der, Rou­te­dE­ven­tArgs e)
{
        _za­ria­de­nie.Stop();
 }

silverlight1_obr1.jpg

Obr. 1 Prík­lad ap­li­ká­cie vy­uží­va­jú­cej webo­vú ka­me­ru

Ko­pí­ro­va­nie úda­jov cez schrán­ku

Mož­nosť vy­uží­vať schrán­ku (clip­board) vo ver­zii Sil­verlight 4 po­sú­va ap­li­ká­cie na tej­to plat­for­me o veľ­ký krok bliž­šie k fun­kcio­na­li­te kla­sic­kých des­kto­po­vých ap­li­ká­cií. V prík­la­de uká­že­me vy­uži­tie schrán­ky na dvoch ok­nách vy­tvo­re­ných po­mo­cou pr­vkov Ric­hTextA­rea, pri­čom v jed­nom bu­de text a bu­de ho mož­né ko­pí­ro­vať do dru­hé­ho. Na ko­pí­ro­va­nie textu a je­ho vkla­da­nie bu­dú pre jed­no­duc­hosť slú­žiť dve tla­čid­lá.

<Grid x:Na­me="Layout­Root" Background="Whi­te">
  <Grid.RowDe­fi­ni­tions>
    <RowDe­fi­ni­tion Height="6*" />
    <RowDe­fi­ni­tion Height="1*" />
  </Grid.RowDe­fi­ni­tions>
  <Grid.Co­lum­nDe­fi­ni­tions>
    <Co­lum­nDe­fi­ni­tion Width="1*" />
    <Co­lum­nDe­fi­ni­tion Width="1*" />
  </Grid.Co­lum­nDe­fi­ni­tions>

  <Ric­hTextA­rea Na­me="rta­La­vy" Grid.Co­lumn="0" Grid.Row="0" Mar­gin="5" 
              TextWrap­ping="Wrap" />
  <Ric­hTextA­rea Na­me="rtaP­ra­vy" Grid.Co­lumn="1" Grid.Row="0" Mar­gin="5" 
              TextWrap­ping="Wrap"/>
  <But­ton x:Na­me="btCo­py"  Con­tent="Co­py" Grid.Co­lumn="0"  Grid.Row="1" 
        Click="btCo­py_Click" />
  <But­ton x:Na­me="btPas­te" Con­tent="Pas­te" Grid.Co­lumn="1"  Grid.Row="1" 
        Click="btPas­te_Click" />

V kó­de napl­ní­te ľa­vé ok­no pra­cov­ným textom a ob­slú­ži­te uda­los­ti za­tla­če­nia tla­či­diel.

string Lo­re­mIp­sum = "Lo­rem ip­sum do­lor sit amet...";

        
 pub­lic Main­Pa­ge()
 {
     Ini­tia­li­ze­Com­po­nent();
     rta­La­vy.Se­lec­tion.Text = Lo­re­mIp­sum;
 }



 pri­va­te void btCo­py_Click(ob­ject sen­der, Rou­te­dE­ven­tArgs e)
 {
     Clip­board.Set­Text(rta­La­vy.Se­lec­tion.Text);
 }

 pri­va­te void btPas­te_Click(ob­ject sen­der, Rou­te­dE­ven­tArgs e)
 {
     rtaP­ra­vy.Se­lec­tion.Text = Clip­board.Get­Text();
  }

silverlight1_obr2.jpg

Obr. 2 Prík­lad ap­li­ká­cie na po­ku­sy so schrán­kou

Ďal­šie čas­ti >>



Ohodnoťte článok:
   
 

24 hodín

týždeň

mesiac

 
 
  Zdieľaj cez Facebook Zdieľaj cez Google+ Zdieľaj cez Twitter Zdieľaj cez LinkedIn Správy z RSS Správy na smartfóne Správy cez newsletter