2012-12-20 7 views
0

나는 확장 클래스가 Canvas입니다. 창조에 나는 명시 적 값으로 폭을 설정 너비가 값으로 설정된 경우 실제 너비가 0이되는 이유는 무엇입니까? WPF

Public Sub New(w As Integer, h As Integer) 
    Me.Width = w 
    Me.Height = h 
End Sub 

가 지금은 e 내 확장 된 캔버스의 인스턴스 cnvPreview.Children.Add(e)를 사용하여 다른 캔버스 캔버스이의 인스턴스를 추가합니다. 나는 응용 프로그램을 실행할 때

그러나이 캔버스의 ActualWidthActualHeight이 고정 될 수있는 방법

0입니까?

+0

언제 'ActualWidth'와'ActualHight '을 읽고 있습니까? –

+0

아이들을 캔버스에 추가 한 직후, 메시지 상자를 사용하여 디버깅했습니다. – blaffie

+1

가능한 가장 작은 크기로 캔버스를 축소하지 마십시오. 그래도 자신 만의 자식을 완전히 표시 하시겠습니까? 'ActualHeight'와 'ActualWidth'값이 0이 될 수도 있습니다. 'TextBlock'을 추가하고 값을 읽으십시오. – JosephGarrone

답변

1

Canvas'sCanvas's은 가능한 한 가장 작은 크기로 축소되지만 여전히 완전히 자신의 자녀를 표시합니까? 이 경우 ActualHeightActualWidth 값이 0이 될 수 있습니다. 예를 들어 TextBlock을 추가하고 값을 읽으십시오. ActualHeightActualWidth 컨트롤을 렌더링 한 후 당신에게 가치를 줄 것이다 Why are ActualWidth and ActualHeight 0.0 in this case?

0

참고 :

나는 이것이이 다른 게시물에 잘 설명되어 있다고 생각합니다. CanvasHeightWidth50이고 Canvas 렌더링 후 다음 낮은 ActualHeightActualWidth 값을 반환 수축 아니면 0이 아닌 경우 보이면하자.