Есть несколько вопросов. Самое главное, вам нужно удалить position: fixed
, если вы хотите, чтобы другой элемент статически располагался ниже ваших .split
делений.
В первую очередь я удалил фиксированную позицию и абсолютного дочернего элемента и добавил ширину div для обтекания display: flex
.
Фрагмент кода ниже:
html {
scroll-behavior: smooth;
/*height: 100%;*/
}
body {
font-family: sans-serif;
font-size: 30px;
color: white;
height: 100%;
}
.splits {
display: flex;
}
.split {
flex: 1 1 50%;
background: black;
}
.right {
right: 0;
background-color: white;
color: black;
}
.centered {
position: relative;
top: 50%;
transform: translateY(-50%);
text-align: center;
}
.centered img {
width: 100px;
height: 100px;
border-radius: 50%;
}
.page2 {
width: 100%;
background-color: pink;
}
.page2 img {
width: 100%;
background-color: pink;
}
<html>
<head>
<title>THS</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<div class="splits">
<div class="split">
<div class="centered">
<img src="http://lorempixel.com/400/200" alt="Avatar woman" />
<h2>our solution</h2>
</div>
</div>
<div class="split right">
<div class="centered">
<img src="http://lorempixel.com/400/400" alt="Avatar man" />
<h2>our cause</h2>
</div>
</div>
</div>
<div class="page2"><img src="http://lorempixel.com/400/400" /></div>
</body>
</html>
Деструктор, чаще всего известный программистам C# как Финализаторы, не необходим в этом случае. Предполагая, что ViewModel_LoadCompleted является функцией членства, он содержит указатель на "это", которое Вы даете объекту ViewModel, который полностью содержится "этим". Сборщик "мусора" должен разумно проигнорировать это.
В этом случае корректная вещь сделать не состоит в том, чтобы напрасно тратить время, развязывая их.
В целом необходимо развязать обработчик событий при передаче "этого" (явно, или неявно) к некоторому объекту, который будет содержать ту ссылку дольше, чем намеченное время жизни "этого". Например, если Вы устанавливаете обработчик на событии родительского управления. Теперь родитель имеет ссылку на Вас через обработчик, а также в его Детях управляет набором. В этом случае необходимо развязать, когда Вы удалены из родителя.
Когда в сомнении, реализуйте IDisposable и развяжите в вызове для Расположения ().
События автоматически развязаны, когда сборщик "мусора" проходит Ваш объект.
Но можно явно развязать их с "-=" синтаксис в любое время:
this.ViewModel.LoadCompleted -= ViewMode_LoadCompleted;
Можно реализовать деструктор:
~MyPage
{
this.ViewModel.LoadCompleted -= ViewMode_LoadCompleted;
}