2010-03-16 4 views
2

WPF에서 Silverlight로 응용 프로그램을 이식하는 중입니다.Silverlight에서 OnRender에 해당하는 항목은 무엇입니까?

Canvas에 렌더링 할 모양 및 텍스트를 설명하기 위해 FrameworkElement (WPF)에서 파생 된 사용자 정의 유형이 사용됩니다.

WPF 앱 루트 노드는 OnRender()을 재정 의하여 각 자식 노드에 Render을 호출하여 시각적 트리를 작성하고 '자식'노드 컬렉션을 반복합니다.

Silverlight는 OnRender을 노출하지 않지만 ControlTemplate을 사용하면 동일한 효과를 얻을 수 있다는 힌트가 있습니다.

이 방법을 사용할 수 있습니까?이 방법을 사용할 수있는 좋은 예가 있습니까? 나는 약간의 인터넷 검색 (binging?)을했고, 정말로 결정적인 것을 발견하지 못했다.

답변

3

OnRender를 직접 대체 할 수는 없지만 http://msdn.microsoft.com/en-us/library/dd351483(v=VS.95).aspx을 읽으면 MeasureOverrideArrangeOverride을 통해 제어 내에서 시각적 트리를 제어 할 수 있습니다.

+0

감사합니다. 그와 관련된 다른 링크를 찾았지만 그 링크를 찾지 못했습니다. –

+0

(예 : http://blogs.msdn.com/silverlight_sdk/archive/2008/10/24/loaded-event-timing-in-silverlight.aspx – nyxtom

+0

위의 링크에서 OnApplyTemplate을 찾았습니다. http : http : //msdn.microsoft.com/en-us/library/system.windows.frameworkelement.onapplytemplate (VS.95) .aspx –

1
게이브 말했다 무엇

하지만 실버 완료 "렌더링"라고 CompositionTarget.Rendering 될 때 발생하는 이벤트가 님의 "OnRenderFrameComplete"

I를

http://msdn.microsoft.com/en-us/library/system.windows.media.compositiontarget.rendering(VS.95).aspx

그것은 가장 가까운 아날로그 인은 재정의 (Measure and Arrange) 오버라이드를 사용하는 것이 "올바른"방법이기 때문에 여전히이를 제안 할 것입니다.

+0

감사합니다. @JerKimball –

관련 문제