2013-09-15 3 views
1

У меня есть следующий код для загрузки медиа и отображения его с помощью Media Control Player:Media Control Игрок простирания, чтобы соответствовать размеру окна

MediaPlayer Player = new MediaPlayer(); 
Player.Open(new Uri(videoURI, UriKind.Absolute)); 
VideoDrawing aVideoDrawing = new VideoDrawing(); 
aVideoDrawing.Rect = new Rect(0, 0, 100, 100); 
aVideoDrawing.Player = Player; 
DrawingBrush brush = new DrawingBrush(aVideoDrawing); 
this.Background = brush; 
не

Независимо от того, каков размер фильма, которую я играю, он тянется до 1920x1080 (размер окна).
Я хочу, чтобы он был в оригинальном полном размере, и если высота/ширина меньше 1920/1080, он будет центрировать видео.

Поскольку нет никакого физического контроля, я понятия не имею, как это сделать ...

ценю вашу помощь.

+1

Есть ли 'brush.Stretch = Stretch.None;' help? – LPL

ответ

2

Попробуйте это:

Добавьте два поля до уровня класса:

MediaPlayer Player; 
VideoDrawing aVideoDrawing; 

В конструкторе оных следующий код:

Player = new MediaPlayer(); 
Player.MediaOpened += Player_MediaOpened; 
Player.Open(new Uri(videoURI, UriKind.Absolute)); 
aVideoDrawing = new VideoDrawing();      
aVideoDrawing.Player = Player; 
DrawingBrush brush = new DrawingBrush(aVideoDrawing); 
brush.Stretch = Stretch.None; 
this.Background = brush; 

В MediaOpened обработчик события устанавливается соответствующий размер:

void Player_MediaOpened(object sender, EventArgs e) 
{ 
    if (Player.NaturalVideoWidth <= 1920 && Player.NaturalVideoHeight <= 1080) 
     aVideoDrawing.Rect = new Rect(0, 0, Player.NaturalVideoWidth, Player.NaturalVideoHeight); 
    else 
     aVideoDrawing.Rect = new Rect(0, 0, 1920, 1080); 
} 

Вы должны установить размер в обработчике событий MediaOpened, потому что NaturalVideoWidth и NaturalVideoHeight не точны до тех пор, пока не будет поднято событие MediaOpened.

+0

Работает отлично. Спасибо. – Ron

 Смежные вопросы

  • Нет связанных вопросов^_^