+ All Categories
Home > Documents > silverlightSL04-Ch17

silverlightSL04-Ch17

Date post: 03-Apr-2018
Category:
Upload: aoe1831
View: 212 times
Download: 0 times
Share this document with a friend
24
7/28/2019 silverlightSL04-Ch17 http://slidepdf.com/reader/full/silverlightsl04-ch17 1/24  Silverlight 4  ﮕ   ﮋﭘ: [email protected] 
Transcript
Page 1: silverlightSL04-Ch17

7/28/2019 silverlightSL04-Ch17

http://slidepdf.com/reader/full/silverlightsl04-ch17 1/24

 

Silverlight 4

  گ  :ژپ

[email protected] 

Page 2: silverlightSL04-Ch17

7/28/2019 silverlightSL04-Ch17

http://slidepdf.com/reader/full/silverlightsl04-ch17 2/24

Page 3: silverlightSL04-Ch17

7/28/2019 silverlightSL04-Ch17

http://slidepdf.com/reader/full/silverlightsl04-ch17 3/24

Silverlight چ   –  

 

Silverlightچ   – 

 

Silverlight )resource( : 

·Binary Resources: . 

)Embedded Resources( گ Compile

. گ  

·Logical Resources: .NET resource dictionary 

User control Stylescontrol templates. 

Image 

Silverlight 

. VS.NET  گ   . 

 گ  پ  Add Existing item Binaryژ پ . ژ

 Build action)( VS.NET

  Build action Resource Copy to . گ 

Output Directory Do not Copy .  گ   Compile 

Reflector   گ  

).(Reflector  : 

http://www.red-gate.com/products/reflector /

Page 4: silverlightSL04-Ch17

7/28/2019 silverlightSL04-Ch17

http://slidepdf.com/reader/full/silverlightsl04-ch17 4/24

Silverlight 4 

 – Build action 

 –  Reflector  

Page 5: silverlightSL04-Ch17

7/28/2019 silverlightSL04-Ch17

http://slidepdf.com/reader/full/silverlightsl04-ch17 5/24

Silverlight چ   –  

 

پ  . ژ PNGJPG.   پ 

:

XAML

<Image Source="images/Camera.png" Width="48" Height="48" />

Source . :

XAML

<Image Source="http://mysite.com/images/Camera.png"

Width="48" Height="48" />

گ   Image :

XAML

<Image Name="img1" />

images/Camera.pngپ  ژ

SilverlightApplication70 : 

C#

using System;

using System.Windows;

using System.Windows.Media.Imaging;

...

void showImg()

{ var sr =

Application.GetResourceStream(

new Uri("SilverlightApplication70;component/Images/Camera.png",

UriKind.Relative));

var bmp = new BitmapImage();

bmp.SetSource(sr.Stream);

img1.Source = bmp;

img1.Width = 48; img1.Height = 48;

}

Application.GetResourceStream گ .

 : پ  

new Uri("SilverlightApplication70;component/Images/Camera.png",

UriKind.Relative)

SilverlightApplication70  پ   ;component/

 .گ    .چ 

Page 6: silverlightSL04-Ch17

7/28/2019 silverlightSL04-Ch17

http://slidepdf.com/reader/full/silverlightsl04-ch17 6/24

Silverlight 4 

Image  XAP  گ 

 

DLL XAP 

.  گ ZIP. پ   

گ .  

گ   Application.GetResourceStream 

:

C#

new Uri("MyImage.png", UriKind.Relative)

گ   ;component/. 

 Site گ 

گ   Site :

C#

using System;

using System.Windows;

using System.Windows.Media.Imaging;

...

private void loadExternalImg()

{ var bi = new BitmapImage

{ UriSource = new Uri("http://www.google.com/images/firefox/personas.png")

}; 

img1.Source = bi;

img1.ImageOpened += img1_ImageOpened;

img1.ImageFailed += img1_ImageFailed;

} void img1_ImageFailed(object sender, ExceptionRoutedEventArgs e)

{ MessageBox.Show(e.ErrorException.Message);

} void img1_ImageOpened(object sender, RoutedEventArgs e)

{ }

Page 7: silverlightSL04-Ch17

7/28/2019 silverlightSL04-Ch17

http://slidepdf.com/reader/full/silverlightsl04-ch17 7/24

Silverlight چ   –  

 

.  گ     پ  گ  گ     . چ 

 گ    AG_E_NETWORK_ERRORپ img1_ImageFailedگ 

clientaccesspolicy.xml 

Silverlight  گ   . Silverlight

   پ  گ   file://)ASP.NET Web site 

(  گ     . //:http پ 

ASP.NET Web site پ http گ . 

Image Binding

 

 BindingUri Source Imageگ 

ImageSource Uri. 

)(. 

Silverlightپ  ( ASP.NET Web Site ژ

 گ   ). Web Siteپ 

پ گ  Extensionsژ

 . 

Url ImageSource . 

ImageFailed گ  گ  

. Uri 

UriKind.Absolute گ . 

Page 8: silverlightSL04-Ch17

7/28/2019 silverlightSL04-Ch17

http://slidepdf.com/reader/full/silverlightsl04-ch17 8/24

Silverlight 4 

پ –  گ  ژ  Binding

 

UriToImageSourceConverter.cs

using System;

using System.Diagnostics;

using System.Globalization;

using System.Windows.Data;

using System.Windows.Media.Imaging; namespace SilverlightApplication70.Converter

{ public class UriToImageSourceConverter : IValueConverter

{ public object Convert(object value,

Type targetType, object parameter,

CultureInfo culture)

{ if (value == null) return null;

string imageUrl = value.ToString();

var uriSource = new Uri(imageUrl, UriKind.Absolute);

var result = new BitmapImage(uriSource);result.ImageFailed +=

(sender, e) => Debug.WriteLine(e.ErrorException.ToString());

return result;

} public object ConvertBack(object value, Type targetType,

object parameter, CultureInfo culture)

{ throw new NotImplementedException();

} } 

}

Page 9: silverlightSL04-Ch17

7/28/2019 silverlightSL04-Ch17

http://slidepdf.com/reader/full/silverlightsl04-ch17 9/24

Silverlight چ   –  

 

Model . Logo :

SiteInfo.cs

using System.ComponentModel;

using SilverlightApplication70.Helpers;

namespace SilverlightApplication70.Models

{ public class SiteInfo : INotifyPropertyChanged

{ private string _title = string.Empty;

public string Title

{ get { return _title; }

set

{ if (_title != value)

{ _title = value;

PropertyChanged.Raise(() => Title);

} } 

} private string _logoUrl = string.Empty;

public string LogoUrl

{ get { return _logoUrl; }

set

{ if (_logoUrl != value)

{ _logoUrl = value;

PropertyChanged.Raise(() => LogoUrl);} 

} } public event PropertyChangedEventHandler PropertyChanged;

} } 

ViewModel . ViewModel Model 

View  گ . 

Page 10: silverlightSL04-Ch17

7/28/2019 silverlightSL04-Ch17

http://slidepdf.com/reader/full/silverlightsl04-ch17 10/24

Silverlight 4 

SiteInfoViewModel.csusing System.Collections.ObjectModel;

using SilverlightApplication70.Models;

namespace SilverlightApplication70.ViewModels

{ public class SiteInfoViewModel

{ public ObservableCollection<SiteInfo> SitesInfo { set; get; }

public SiteInfoViewModel()

{ SitesInfo = new ObservableCollection<SiteInfo>

{ new SiteInfo

{ Title = "Yahoo",

LogoUrl =

"http://l.yimg.com/a/i/ww/met/yahoo_logo_us_061509.png"

}, new SiteInfo

{ Title = "Google",

LogoUrl =

"http://www.google.com/intl/en_ALL/images/srpr/logo1w.png"

} }; 

} } 

}

 : View پ 

MainPage.xaml

<UserControl x:Class="SilverlightApplication70.MainPage"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

xmlns:mc=

"http://schemas.openxmlformats.org/markup-compatibility/2006"

xmlns:vm="clr-namespace:SilverlightApplication70.ViewModels"

xmlns:cv="clr-namespace:SilverlightApplication70.Converter"

mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="400">

<UserControl.Resources>

<vm:SiteInfoViewModel x:Key="vmSiteInfoViewModel" />

<cv:UriToImageSourceConverter

x:Key="cvUriToImageSourceConverter" />

</UserControl.Resources><Grid x:Name="LayoutRoot" Background="White"

Page 11: silverlightSL04-Ch17

7/28/2019 silverlightSL04-Ch17

http://slidepdf.com/reader/full/silverlightsl04-ch17 11/24

Silverlight چ   –  

 

DataContext=

"{Binding Source={StaticResource vmSiteInfoViewModel}}"

>

<ListBox ItemsSource="{Binding SitesInfo}">

<ListBox.ItemTemplate>

<DataTemplate>

<StackPanel Margin="5">

<TextBlock Text="{Binding Title}"

FontWeight="Bold"/>

<Image

Source="{Binding LogoUrl,

Converter={StaticResource

cvUriToImageSourceConverter}}" />

</StackPanel>

</DataTemplate>

</ListBox.ItemTemplate>

</ListBox>

</Grid>

</UserControl>  

XAMLView پ  DataContext  گ 

  ژ.گ   DataTemplate ListBox

 .Source LogoUrl

   . Converter  Binding پ 

ImageSource. 

StretchClip 

گ   پ  

Stretch  پ Uniform. 

XAML

<Image x:Name="MyImage" Source="Images/GiantSeaTurtle.jpg"

Stretch="Uniform" /> 

Page 12: silverlightSL04-Ch17

7/28/2019 silverlightSL04-Ch17

http://slidepdf.com/reader/full/silverlightsl04-ch17 12/24

Silverlight 4 

 –  Stretch 

: · None: . 

VerticalAlignmentHorizontalAlignment  گ 

.

·Uniform: پ 

.

·UniformToFill: 

 .پ 

.

·Fill:   . پ 

ژگ    گ   ImageSilverlight 

. . 

XAML

<Image x:Name="MyImage" Source="Images/GiantSeaTurtle.jpg"Stretch="UniformToFill">

<Image.Clip>

<EllipseGeometry x:Name="Ellipse" RadiusX="150" RadiusY="100"

Center="150,100"/>

</Image.Clip>

</Image> 

ژگ   Clip EllipseGeometry

 : 

Page 13: silverlightSL04-Ch17

7/28/2019 silverlightSL04-Ch17

http://slidepdf.com/reader/full/silverlightsl04-ch17 13/24

Silverlight چ   –  

 

ژگ  –   Clip Image 

ImageBrush  گ 

 

SolidColorBrushLinearGradientBrush . گ  

Silverlight ImageBrush 

UI Element . 

TextBlock . 

 –  

XAML ImageBrush 

TextBlock : 

Page 14: silverlightSL04-Ch17

7/28/2019 silverlightSL04-Ch17

http://slidepdf.com/reader/full/silverlightsl04-ch17 14/24

Silverlight 4 

MainPage.xaml<UserControl x:Class="SilverlightApplication71.MainPage"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

xmlns:mc=

"http://schemas.openxmlformats.org/markup-compatibility/2006"

mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="400">

<Grid x:Name="LayoutRoot" Background="White" Margin="5">

<TextBlock Foreground="Red" TextWrapping="Wrap" >

<Run FontWeight="Bold"

Text="Hello this is going to be image text effect"FontSize="38">

<Run.Foreground>

<ImageBrush ImageSource="images/Curls.png" />

</Run.Foreground>

</Run>

<LineBreak />

<Run

Text="This will show the gradient effect" FontSize="18">

<Run.Foreground>

<LinearGradientBrush StartPoint="0,0" EndPoint="1,1" >

<GradientStop Color="Yellow"

Offset="0.2"></GradientStop>

<GradientStop Color="Orange"

Offset="0.5"></GradientStop>

<GradientStop Color="Red"

Offset="0.8"></GradientStop>

</LinearGradientBrush>

</Run.Foreground>

</Run>

</TextBlock>

</Grid>

</UserControl>

LinearGradientBrush   گ 

 . گ 

گ چ   XAMLVS.NET 2010 گ  

Foreground Run   ).(  TextBlock گ 

Page 15: silverlightSL04-Ch17

7/28/2019 silverlightSL04-Ch17

http://slidepdf.com/reader/full/silverlightsl04-ch17 15/24

Silverlight چ   –  

 

 –  ImageBrush VS.NET 2010.

 

Silverlight چ 

 

SilverlightVideo player  

 . چ  Silverlight گ 

Silverlight گ Silverlight گ چ 

   چ   چ  پ   GPU Accelerationگ 

Flash . 

 : Silverlight پ 

Video

·  Raw Video

·  YV12 - YCrCb(4:2:0)·  RGBA - 32 bit Alpha Red, Green, Blue

·  WMV1: Windows Media Video 7

·  WMV2: Windows Media Video 8

·  WMV3: Windows Media Video 9

o  Supports Simple and Main Profiles.

o  Supports only progressive (non-interlaced) content.

·  WMVA: Windows Media Video Advanced Profile, non-VC-1

·  WVC1: Windows Media Video Advanced Profile, VC-1

o  Supports Advanced Profile.o  Supports only progressive (non-interlaced) content.

·  H264 (ITU-T H.264 / ISO MPEG-4 AVC)o  Supports H.264 and MP43 codecs.

o  Supports Base, Main, and High Profileso  Supports only progressive (non-interlaced) content.

o  Supports only 4:2:0 chroma subsampling profiles.

Page 16: silverlightSL04-Ch17

7/28/2019 silverlightSL04-Ch17

http://slidepdf.com/reader/full/silverlightsl04-ch17 16/24

Silverlight 4 

o  Supports PlayReady DRM with Mp4 (H264 and AAC-LC)

Audio

·  “1”. This is Linear 8 or 16 bit Pulse Code Modulation. Roughly speaking, this is WAV format.

·  "353" - Microsoft Windows Media Audio v7, v8 and v9.x Standard (WMA Standard)

·  "354" - Microsoft Windows Media Audio v9.x and v10 Professional (WMA Professional)

o  Supports full fidelity decoding of WMA 10 Professional Low Bit Rate (LBR) modes in the 32-96 kbpsrange.

o  Multichannel (5.1 and 7.1 surround) audio content is automatically mixed down to stereo.

o  24 bit audio will return silence.

o  Sampling Rates beyond 48000 return an invalid format error code in same-domain and a 4001 in cross-

domain scenarios.

·  "85" - ISO MPEG-1 Layer III (MP3)

·  "255" - ISO Advanced Audio Coding (AAC)

o Supports Low Complexity (AAC-LC) decoding at full fidelity (up to 48 kHz).

o  High Efficiency (HE-AAC) encoded content will decode only at half fidelity (up to 24 kHz).o  Multichannel (5.1 surround) audio content is not supported. 

MediaElement

 

MediaElement  چ .

 MediaElement گچ  media player  

Silverlight . 

XAML : 

XAML 

<MediaElement 

Width="472" Height="328" Source="video.wmv"

Stretch="Fill" x:Name="Video1" />  

MediaElement video.wmv 

گ .  video.wmv  پ VS.NET Build ژ

Action Resource گ   . پ 

گ   

پ. Silverlight ژ

 ASP.NET Web site.XAML C# 

. Comments گ . 

ScrollViewer  گ  چ  . Scrollbar  . چ

Page 17: silverlightSL04-Ch17

7/28/2019 silverlightSL04-Ch17

http://slidepdf.com/reader/full/silverlightsl04-ch17 17/24

Silverlight چ   –  

 

View Stretch   پ  . گ 

پ –   چ  ژ

XAML : 

MainPage.xaml 

<UserControl x:Class="SilverlightApplication72.MainPage"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

xmlns:mc=

"http://schemas.openxmlformats.org/markup-compatibility/2006"Name="ThisPrv"

mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="400">

<Grid x:Name="LayoutRoot" Background="White">

<ScrollViewer

HorizontalAlignment="Stretch"

VerticalScrollBarVisibility="Auto"

VerticalAlignment="Stretch"

VerticalContentAlignment="Stretch"

HorizontalContentAlignment="Stretch">

<StackPanel Margin="5" >

<MediaElement Margin="5"

HorizontalAlignment="Center"

VerticalAlignment="Center"

Page 18: silverlightSL04-Ch17

7/28/2019 silverlightSL04-Ch17

http://slidepdf.com/reader/full/silverlightsl04-ch17 18/24

Silverlight 4 

Height="auto" Width="auto"

MediaOpened="mediaElement1_MediaOpened"

MediaEnded="mediaElement1_MediaEnded"

Name="mediaElement1"

Source="media/test.mp4"

Stretch="None"

Loaded="mediaElement1_Loaded"

AutoPlay="True"

MediaFailed="mediaElement1_MediaFailed" />

<Slider Name="seekBar"

ValueChanged="seekBar_ValueChanged"

/> <StackPanel Orientation="Horizontal"

HorizontalAlignment="Center"><TextBlock Margin="5"

Name="durationLbl"

Text="{Binding ElementName=ThisPrv,

Path=MediaLen}" />

<Button ToolTipService.ToolTip="Expand"

Name="btnExpand" Margin="5"

Click="btnExpand_Click" >

<Image Width="16" Height="16"

Source="images/ExpandSpaceHS.png" />

</Button>

<Button ToolTipService.ToolTip="Play/Pause"

Name="btnPlay" Margin="5"

Click="btnPlay_Click" >

<Image Name="imgPaly"

Source="images/debug-run-icon.png" />

</Button>

<Button Name="btnStop" ToolTipService.ToolTip="Stop"

Margin="5" Click="btnStop_Click">

<Image Source="images/debug-stop-icon.png" />

</Button>

<Slider Name="volumeSlider"

ToolTipService.ToolTip="Volume"

Margin="5" VerticalAlignment="Center"

ValueChanged="volumeSlider_ValueChanged"

Minimum="0" Maximum="1" Value="0.5"

Width="70"/>

</StackPanel>

</StackPanel>

</ScrollViewer>

</Grid>

</UserControl>  

Page 19: silverlightSL04-Ch17

7/28/2019 silverlightSL04-Ch17

http://slidepdf.com/reader/full/silverlightsl04-ch17 19/24

Silverlight چ   –  

 

C# MediaElement: MainPage.xaml.cs 

using System;

using System.ComponentModel;

using System.Diagnostics;

using System.Windows;

using System.Windows.Media;

using System.Windows.Media.Imaging;

using System.Windows.Threading;

namespace SilverlightApplication72

{ public partial class MainPage : INotifyPropertyChanged

{ #region Fields (3)

private bool _isPlaying;

string _mediaLen;

private DispatcherTimer _timer;

#endregion Fields

#region Constructors (1)

public MainPage()

{ InitializeComponent();

initTimer();

} #endregion Constructors

#region Properties (3)

//    پ 

public string MediaLen

{ get { return _mediaLen; }

set

{ if (_mediaLen == value) return;

_mediaLen = value;

raisePropertyChanged("MediaLen");

} } //    پ 

Page 20: silverlightSL04-Ch17

7/28/2019 silverlightSL04-Ch17

http://slidepdf.com/reader/full/silverlightsl04-ch17 20/24

Silverlight 4 

static BitmapImage pauseImg

{ get

{ return new BitmapImage

{ UriSource =

new Uri("Images/debug-pause-icon.png",

UriKind.Relative)

}; } 

// پ  ژ static BitmapImage runImg

{ get

{ return new BitmapImage

{ UriSource =

new Uri("Images/debug-run-icon.png",

UriKind.Relative)

}; } 

} #endregion Properties

#region Delegates and Events (1)

// Events (1)

public event PropertyChangedEventHandler PropertyChanged;

#endregion Delegates and Events

#region Methods (13)

// Private Methods (13)

//    پ   پ 

void _timer_Tick(object sender, EventArgs e)

{ seekBar.Value = mediaElement1.Position.TotalSeconds;

if (mediaElement1.NaturalDuration.HasTimeSpan)

{ var remaningVal = mediaElement1.NaturalDuration.TimeSpan

- mediaElement1.Position;

Page 21: silverlightSL04-Ch17

7/28/2019 silverlightSL04-Ch17

http://slidepdf.com/reader/full/silverlightsl04-ch17 21/24

Silverlight چ   –  

 

MediaLen = string.Format(

"{0}:{1}:{2}",  remaningVal.Hours.ToString("00"),

remaningVal.Minutes.ToString("00"),

remaningVal.Seconds.ToString("00"));

} else

Debug.WriteLine("!NaturalDuration.HasTimeSpan");

} //  

private void btnExpand_Click(object sender, RoutedEventArgs e)

{ mediaElement1.Stretch =

mediaElement1.Stretch == Stretch.UniformToFill

? Stretch.None

: Stretch.UniformToFill;

} //  

//  

private void btnPlay_Click(object sender, RoutedEventArgs e)

{ if (!_isPlaying)

{ mediaElement1.Play();

_isPlaying = true;

imgPaly.Source = runImg;

} else

{ mediaElement1.Pause();

_isPlaying = false;

imgPaly.Source = pauseImg;

} //  

private void btnStop_Click(object sender, RoutedEventArgs e)

{ _isPlaying = false;

mediaElement1.Stop();

imgPaly.Source = runImg;

} //    پ 

string getMediaLen()

Page 22: silverlightSL04-Ch17

7/28/2019 silverlightSL04-Ch17

http://slidepdf.com/reader/full/silverlightsl04-ch17 22/24

Silverlight 4 

{ return !mediaElement1.NaturalDuration.HasTimeSpan

? "00:00:00" : string.Format("{0}:{1}:{2}",

mediaElement1.NaturalDuration.TimeSpan.Hours.ToString("00"),

mediaElement1.NaturalDuration.TimeSpan.Minutes.ToString("00"),

mediaElement1.NaturalDuration.TimeSpan.Seconds.ToString("00"));

} //  پ  

private void initTimer()

{ _timer = new DispatcherTimer {

Interval = TimeSpan.FromMilliseconds(200) };_timer.Tick += _timer_Tick;

} //   گ   

private void mediaElement1_Loaded(object sender,

RoutedEventArgs e)

{ _isPlaying = true;

imgPaly.Source = pauseImg;

imgPaly.ImageFailed += (send, er)

=> Debug.WriteLine(er.ErrorException.ToString());} //  پ  پ private void mediaElement1_MediaEnded(object sender,

RoutedEventArgs e)

{ btnStop_Click(this, null);

} //  

private void mediaElement1_MediaFailed(object sender,

ExceptionRoutedEventArgs e)

{ Debug.WriteLine(e.ErrorException.ToString());

} // پ  پ  private void mediaElement1_MediaOpened(object sender,

RoutedEventArgs e)

{ _timer.Stop();

if (mediaElement1.NaturalDuration.HasTimeSpan)

{ var ts = mediaElement1.NaturalDuration.TimeSpan;

Page 23: silverlightSL04-Ch17

7/28/2019 silverlightSL04-Ch17

http://slidepdf.com/reader/full/silverlightsl04-ch17 23/24

Silverlight چ   –  

 

seekBar.Maximum = ts.TotalSeconds;

seekBar.SmallChange = 1;

seekBar.LargeChange = Math.Min(10, ts.Seconds / 10);

MediaLen = getMediaLen();

} _timer.Start();

} // گ    

void raisePropertyChanged(string propertyName)

{ var handler = PropertyChanged;

if (handler == null) return;

handler(this, new PropertyChangedEventArgs(propertyName));

} //  پ  

private void seekBar_ValueChanged(object sender,

RoutedPropertyChangedEventArgs<double> e)

{ if (seekBar != null)

{ var fromSeconds = TimeSpan.FromSeconds(seekBar.Value);if (mediaElement1.Position.CompareTo(fromSeconds) != 0)

mediaElement1.Position = fromSeconds;

} } //  پ  

private void volumeSlider_ValueChanged(object sender,

RoutedPropertyChangedEventArgs<double> e)

{ if (volumeSlider != null)

mediaElement1.Volume = volumeSlider.Value;} #endregion Methods

} } 

MediaElement گ ) 

 .) پ  چ 

    seekBar پ  .گ 

Page 24: silverlightSL04-Ch17

7/28/2019 silverlightSL04-Ch17

http://slidepdf.com/reader/full/silverlightsl04-ch17 24/24

Silverlight 4 

 گ  گ   Code

 behindView  گ  پ .پ   MVVM EventToCommand MVVM Light toolkit) 

ValueChanged ) گ گ 

MediaEndedMediaOpened Commands   پ 

Silverlight 4   .ICommand پ 


Recommended