2009-06-09 1 views
1

Silverlight 2 프로젝트에서 우리는 다양한 사용자 컨트롤의 텍스트 속성에 대한 즉석 번역을 수행하기 위해 첨부 된 속성을 만들었습니다. 이를 위해 속성을 설정할 때 FrameworkElement의 Loaded 이벤트를 연결합니다. 이벤트가 발생하면 속성 값을 번역 된 텍스트로 바꾸기 전에 기존 텍스트 속성 값을 가져 와서 간단한 문자열 대체를 수행합니다. 그러나 컨트롤이 번역되지 않은 텍스트로 렌더링되고 텍스트가 번역 된 버전으로 빠르게 대체됩니다.Silverlight : FrameworkElement가 렌더링되기 전에 발생하는 이벤트가 있습니까?

컨트롤이 렌더링되기 전에 실행될 수있는 대체 이벤트가 있습니까?

답변

1

첨부 된 속성에 대한 setter가 호출되는 즉시 변환을 수행하도록 코드를 변경했습니다. 요소가 렌더링되기 오래 전에 Text 속성을 변경할 수 있기 때문에 FrameworkElement이로드를 완료 할 때까지 기다릴 필요가 없습니다.

로드 된 이벤트 사용에 대한 초기 생각은 화면에 표시된 컨트롤 만 번역하여 응용 프로그램의 시작 시간을 줄이는 것이 었습니다. 결과적으로, 런타임에서 수행 할 작업 중 일부는 복제 할 것이므로 런타임에서 속성 집합을 호출하지 않을 때까지 호출하지 않을 것입니다.

0

나는 이것에 관해 완전히 확신하지 않지만, LayoutUpdated 이벤트를 사용할 수 있습니까? 컨트롤 크기를 조절하면 코드가 한 번만 실행되도록 조치를 취할 수 있습니다.

나는 "옳은"이벤트처럼 보이지 않지만 불행하게도 Silverlight는 여러분을 서게합니다. 사건에 관해서는 그것을 들고 있습니다.

+0

이 문제는 LayoutUpdated 이벤트가 보낸 사람에게 값을 제공하지 않아 레이아웃을 업데이트 한 FrameworkElement를 확인할 수 없다는 점에서 문제가 있습니다. –