Хотя оба ответа, данные sLedgem и bathineni, верны, это не соответствует моей ситуации.Кроме того, почему я хочу добавить их в макет?Если это удобно для вас, вы можете, но в моем случае я хочу, чтобы они были в 100% памяти, потому что мой вспомогательный класс, используемый в основном для печати, не имел никакой ссылки ни на один из UIElements, присутствующих на экране.В этом случае, очевидно, я бы не хотел передавать свой LayoutRoot или какую-либо другую Panel моему классу помощника, просто чтобы сделать этот хак!
Чтобы попросить среду выполнения Silverlight отрендерить элементы в памяти.Вам нужно вызвать Measure and Arrange:
Так что, как правило, все, чего мне не хватало, было:
stackPanel.Measure(new Size(width, height));
stackPanel.Arrange(new Rect(0, 0, width, height));
до:
_bitmap = new WriteableBitmap(stackPanel, null);
И я могу избавиться от этой строки:
stackPanel.UpdateLayout();
Надеюсь, это поможет кому-то, кто заходит в этот поток и имеет такую же проблему, как я, где невозможно найти LayoutRoot в вашем классе помощников.