ChildWindowであるポップアップがあります。そのポップアップの中に、MediaElementとビデオを制御するためのいくつかのボタンを持つUserControl(MediaPreviewView)があります。私の要件では、フルスクリーンボタンが必要であり、ユーザーがボタンをクリックするとビデオがフルスクリーンで表示されると記載されています。
私はMVVMを使用しているので、MVVMLightのメッセージングでこれを試すことにしました。ベースビューにメッセージを送信しています。そのビューのコードビハインド内に、グリッドを表示しています(非表示で、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
....
}
});