Когда отсоединить события в Silverlight

Есть несколько вопросов. Самое главное, вам нужно удалить 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>

5
задан geofftnz 17 February 2009 в 20:12
поделиться

2 ответа

Деструктор, чаще всего известный программистам C# как Финализаторы, не необходим в этом случае. Предполагая, что ViewModel_LoadCompleted является функцией членства, он содержит указатель на "это", которое Вы даете объекту ViewModel, который полностью содержится "этим". Сборщик "мусора" должен разумно проигнорировать это.

В этом случае корректная вещь сделать не состоит в том, чтобы напрасно тратить время, развязывая их.

В целом необходимо развязать обработчик событий при передаче "этого" (явно, или неявно) к некоторому объекту, который будет содержать ту ссылку дольше, чем намеченное время жизни "этого". Например, если Вы устанавливаете обработчик на событии родительского управления. Теперь родитель имеет ссылку на Вас через обработчик, а также в его Детях управляет набором. В этом случае необходимо развязать, когда Вы удалены из родителя.

Когда в сомнении, реализуйте IDisposable и развяжите в вызове для Расположения ().

2
ответ дан 15 December 2019 в 06:36
поделиться

События автоматически развязаны, когда сборщик "мусора" проходит Ваш объект.

Но можно явно развязать их с "-=" синтаксис в любое время:

this.ViewModel.LoadCompleted -= ViewMode_LoadCompleted;

Можно реализовать деструктор:

~MyPage
{
    this.ViewModel.LoadCompleted -= ViewMode_LoadCompleted;
}
1
ответ дан 15 December 2019 в 06:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: