2009-08-04 3 views
2

죄송합니다. Google을 검색 할 때 유용한 것을 찾지 못했습니다. 아주 기본적인 질문, 주로 "나는 어리 석다". StackPanel은 자식 요소에 전체 공간을 제공하지만 테두리의 경우 부모 요소에 "자동"속성이 관련된 이유는 무엇입니까? 내가 뭔가 잘못하고있는 중이 야 아마 의미하지만,이 문제는 내가 의도 definitly되지 않습니다 :실버 라이트 테두리 - 어리석은가요?

Pic1 http://img6.imageshack.us/img6/171/20090805002723.jpg

좋아, 나는 다음과 같다있는 방법을 발견 몇 가지 생각 후 :

Seriously http://img18.imageshack.us/img18/3173/20090805003045.jpg

하지만 정말로, 이쪽으로? 나는 텍스트 상자 (어느 폭을 정의하고 싶습니까?)와 테두리를 둘러싼 "최소 크기의 컨트롤"을 의미하며, 이런 종류의 트리가 필요합니까? 난 그냥 말 .. 그리고 실버 라이트에 대한 좋은 UI 구성에 대해 쓰고, 그리고하고있는 동안은 간단한 예제를주고 싶었 : 사람이 더 좋은 방법이 있다면,

크리스

에게 ... PS를 말해주십시오 : 전설적인!

+0

아니, 당신은 바보가 아닙니다. 특히 젊은 녀석들에게! – DOK

+0

젠장, 더 자주 블렌드해야한다고 생각해. "메모장 접근법"은 작은 예제에도 적합하지 않습니다 :-) –

+0

저는이 예제에서 StackPanel을 생략하고 원하는 것을 얻을 수 있다고 생각합니다. 너를 돕는 게 아니야.) –

답변

1

확실히 바보가 아닙니다. 이것은 매우 혼란 스러울 수 있습니다. WPF/Silverlight에서의 레이아웃을 으로 생각할 때 컨트롤 계층 구조의 루트에서 위로 아래로 내려가는 것보다 위로 생각하는 것이 도움이됩니다..

스택 패널의 작업을 생각할 때 분명해진다. 하위 요소를 쌓고 폭을 폭으로 설정합니다. 따라서 자동 테두리 너비를 무시합니다. 나중에 다시 감싸는 Canvas는 자식을 전혀 재정렬하지 않고 너비를 덮어 쓰지 않으므로 너비가 스택 패널의 너비이지만 테두리의 자동은 현재 작동 중입니다. , TextBox).

진흙처럼 맑습니까? 여기

더 세부 기사입니다 : http://msdn.microsoft.com/en-us/library/ms745058.aspx

그리고 내가보기 엔 WPF/실버 라이트 레이아웃의 복잡한에 속도까지 얻을 크리스 판매 & 이안 그리피스에 의해 WPF 책을 추천합니다.

0

쉬운 방법은 StackPanel을 제거하고 바로 왼쪽 상단에 그것을 유지하기 위해 VerticalAlignment 및 HorizontalAlignment로를 사용하여 얻을 수 있습니다. 그런 다음 테두리 폭을 설정하고 높이 만 남겨 둡니다.

<Grid x:Name="LayoutRoot"> 

    <Border Width="150" BorderBrush="Blue" BorderThickness="1" VerticalAlignment="Top" HorizontalAlignment="Left"> 
     <TextBox Text="I'm Serious" Background="LightBlue" /> 
    </Border> 

</Grid>