Я новичок в WPF и пытаюсь создать свое первое приложение, которое является мультивьювером для нескольких потоков вместе для целей обучения.
У меня есть 24 мультимедийных элемента в главном окне, и я хочу, чтобы полноэкранный мультимедийный элемент был выбранкогда будет еще один щелчок, чтобы минимизировать этот полноэкранный носитель.
Код такой:
foreach (var item in MediaElements)
{
item.LoadedBehavior = MediaState.Manual;
item.MouseEnter += mediaElement1_MouseEnter;
item.MouseLeave += mediaElement1_MouseLeave;
item.Loaded += mediaElement1_Loaded;
item.MouseLeftButtonUp += (o, args) =>
{
if(!fullscreen)
{
ListOfMedia.Children.Remove(item);
this.Content = item;
this.WindowStyle = WindowStyle.None;
this.WindowState = WindowState.Maximized;
}
else
{
this.Content = ListOfMedia;
ListOfMedia.Children.Add(item);
this.WindowStyle = WindowStyle.SingleBorderWindow;
this.WindowState = WindowState.Normal;
}
fullscreen = !fullscreen;
};
Когда я нажимаю на него в первый раз, он работает очень хорошо, окно идетна максимальном размере экрана, но когда я нажимаю на него в следующий раз, чтобы минимизировать его, возникает исключение, которое говорит мне
System.ArgumentException: 'Must disconnect specified child from current parent Visual before attaching to new parent Visual.'
Я проверил некоторые вопросы StackOverflow, но не могу найти правильное решениеКто-то говорил о методе расширения для удаления детей из родительского дерева, я написал этот метод расширения, но я не знаю, в чем проблема и какая идея стоит за этой проблемой?Что я должен удалить и что вообще происходит.
Пожалуйста, скажите мне, что здесь происходит.