WPF multimédia lejátszó készítése C#-ban 2

Itt is van a multimédia lejátszónk készítésének a folytatása. Ma beleteszünk egy csúszkát, amivel a hangerőt tudjuk majd állítani és bemutatom az adatkötést, amivel egyszerűbben és gyorsabban tudunk programozni.

Indítsuk el az eddig elkészített projektünket és megint, ahogy eddig csináltuk nyissuk meg a Solution Explorerből a Window1.xaml fájlt.

Adjunk hozzá egy csúszkát (Slider) és állítsuk be a tulajdonságait:


<Slider Margin="100,0,20,0" Name="Volume" VerticalAlignment="Bottom" Maximum="1" Value="0.5" SmallChange="0.05" LargeChange="0.05" ValueChanged="VolumeChanged"/>

A Marginnal a margókat állítjuk be a VerticalAlignment="Bottom" miatt pedig alul lesz. Maximumnak azért egyet kell megadni, mert a MediaElement Volume tulajdonsága 0 és 1 közti double érték lehet. A Small- és Largechange a léptetés nagyságát adja meg. A Value az alapértéket és a ValueChanged pedig, hogy milyen esemény történjen érték változtatáskor.
Most váltsunk át a Window1.xaml.cs fájlra és írjuk be a következőket:


void VolumeChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
Media.Volume = Volume.Value;
}

Ezzel hozzárendeltük a Volume értékét a hangerőhöz.

De ezt elkészíthetjük az xaml fájlunkban is adatkötéssel (DataBinding). Ez a következőképpen zajlik a MediaElementhez hozzáírjuk a következő sort:


Volume="{Binding ElementName=Volume, Path=Value}"

A folyamat így zajlik:

  1. kiválasztjuk, hogy melyik tulajdonsághoz akarjuk kötni egy másik elem tulajdonságát

  2. az ElementName-nél megadjuk az elem nevét

  3. a Path-nál pedig a tulajdonságát

Hogy a Volume VolumeChanged eseményét ne kelljen törölnünk, használjuk arra, hogy kiírjuk a hangerőt. Ehhez szükségünk lesz egy TextBlockra, amit tegyünk a Slider fölé:


<TextBlock Name="TextVolume" Margin="10,0,0,5" VerticalAlignment="Bottom"/>

És az eseményt cseréljük erre:


void VolumeChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
double Percent = Volume.Value * 100;
TextVolume.Text = "Volume: " + Percent.ToString("0") + "%";
}

Röviden annyit tettünk, hogy létrehoztunk egy double típusú Percent változót, aminek átadjuk a Value érték százszorosát: így lesz százalék. Utána ezt íratjuk ki a ToString() függvény segítségével, ami szöveggé alakítja és a zárójelben lévő érték szerint - vagyis levágja a tizedesjegyeket.

Következő alkalommal majd a kinézetét akarom kicsinosítani, addig is így néz ki:

Media Player 2

0 megjegyzés :

Megjegyzés küldése