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:
kiválasztjuk, hogy melyik tulajdonsághoz akarjuk kötni egy másik elem tulajdonságát
az ElementName-nél megadjuk az elem nevét
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:
Megjegyzések
Megjegyzés küldése