2013-07-15 2 views
1

다른 많은 UserControls (타사 컨트롤 포함)로 구성된 UserControl이 있습니다. 이 UserControl을 주 응용 프로그램보기에 추가하면 모든 것이 잘 동작합니다. 내가 코드에서이보기 (UserControl을)를 인스턴스화하고 다음 통화를 할 경우, 제대로 렌더링되지 않습니다WPF : 코드가 뒤에서보기가 발생하면로드 된 이벤트가 발생하지 않습니다.

이 사용하는 경우
var pageView = new TemplatePageView() { DataContext = new PageViewModel() }; 
pageView.Measure(new Size(816, 1056)); 
pageView.Arrange(new Rect(new Size(816, 1056))); 
pageView.UpdateLayout(); 

, 여러 부분이 제대로 표시되지 않습니다. 과거 렌더링에서 제 3 자 그래프 컨트롤에 문제가 있었으며 일반적으로 Invalidate를 호출하면 문제가 해결됩니다. 그래서 Loaded 이벤트에 연결하고 Invalidate를 호출 해 보았습니다. 이 호출은 뷰가 주 응용 프로그램 뷰에 놓이면 실행되지만 코드에서이 뷰를 인스턴스화 할 때로드 된 이벤트가 절대 실행되지 않습니다. 코드에서 수행해야 할 추가 단계가 있습니까?

참고로 보고서를 출력하기 위해보기를 코드 조각으로 보내려면이 작업을 수행하고 있습니다.

감사합니다, 스티브

+0

(코드에서 UserControl을 인스턴스화하고 비트 맵에 렌더링)을 구독 할 수없는 여기에 생각하고, 동일한 문제로 실행 ..로드 된 이벤트가 발생하지 않습니다. 이 문제를 해결 했습니까? –

답변

0

난 당신이로드 이벤트에게 내가 같은 상황에있어

pageView.Loaded += pageView_Loaded; 
...... 
...... 
void pageView_Loaded(object sender, RoutedEventArgs e) 
    { 
     //Do ur loaded stuff here 
    } 
+0

죄송합니다, 여기에 표시하지 않았다 ...하지만 자식 컨트롤의 생성자에서 분명히 히트를 치는 중입니다 ...하지만로드 된 핸들러는 컨트롤이 주 응용 프로그램보기의 일부일 때만 나타납니다 . – user2584369

+0

당신은 윈도우의 usercontrol 부분 만 만들어야 만합니다. 그러면 인스턴스가 발생합니다. 인스턴스를 생성하지 않습니다.로드 된 이벤트 – ethicallogics

관련 문제