У меня есть всплывающее окно ChildWindow. Внутри этого всплывающего окна у меня есть UserControl (MediaPreviewView), который имеет MediaElement и несколько кнопок для управления видео. В моих требованиях указано, что мне нужна полноэкранная кнопка, и когда пользователь нажимает на кнопку, отображается полноэкранное видео.
Я использую MVVM, поэтому я решил попробовать это с Messaging в MVVM Light. Я отправляю сообщение в мою базу View. В коде этого представления я показываю сетку (скрытую и внизу XAML, с высоким zindex). Мое сообщение содержит MediaPreviewControl, и я устанавливаю Grid.Children.Add (для элемента управления. Я пробовал несколько вещей и могу сделать ChildWindow невидимым, но кнопки не работают. Кажется, что ChildWindow все еще находится над кнопками, хотя ширина и высота были 0.
Есть ли лучше работоспособного подхода к созданию полноэкранного режима моего MediaPreviewView?
public class MediaPreviewFullScreenMessage
{
public MediaPreviewView PreviewView { get; set; }
public ChildWindow ContainerChildWindow { get; set; }
public bool ChangeToFullScreen { get; set; }
}
// Register for FullScreen media preview
Messenger.Default.Register<MediaPreviewFullScreenMessage>(this,
(fullScreenMessage) =>
{
this.fullScreenHolderGrid.Visibility = fullScreenMessage.ChangeToFullScreen ? Visibility.Visible : Visibility.Collapsed;
this.fullScreenHolderGrid.Children.Clear();
if (fullScreenMessage.ChangeToFullScreen)
{
// I've tried, Visibility, width and height = 0 on the fullScreenMessage.ContainerChildWindow, even a TranslateTransform
....
}
});