Итак, у меня есть компонент печати, который обслуживает приложение Silverlight. Другие модули в этой программе имеют возможность сигнализировать компоненту печати и передавать его UIElement
, который компонент печати затем отобразит на экране. Все хорошо. Проблема возникает, когда я пытаюсь манипулировать элементом пользовательского интерфейса, чтобы лучше отформатировать его в соответствии с выбранным пользователем размером бумаги или чем-либо в этом роде; кажется, что переданный элемент пользовательского интерфейса часто является точно таким же экземпляром на экране, и элемент экрана изменяется сам, чтобы соответствовать изменениям «только для печати», которые я сделал. На данный момент я могу вручную сохранить предыдущие значения, внести свои изменения и восстановить предыдущие значения, но было бы проще / более надежным / более эффективным / более гибким, если бы у меня был способ, учитывая элемент пользовательского интерфейса, сделать копию элемента, и манипулируйте этим свободно, не беспокоясь об изменениях или состоянии исходного элемента интерфейса. Как можно программно скопировать экземпляр элемента пользовательского интерфейса, чтобы у меня был другой экземпляр с таким же визуальным видом?