2012-09-21 5 views
1

레이아웃에 문제가 있습니다.wpf 트 리뷰 레이아웃

초기 창에는 모든 것이 예상대로입니다.

상위 또는 하위 항목 중 하나를 클릭

Initial window

은 모든 것이 오른쪽으로 정렬됩니다. 나는 그런 상황을 원하지 않는다.

Parent item is clicked

Child item is clicked

아무도 나를 도울 수 : 여기에 스크린 샷입니까?

XAML 레이아웃 템플릿 :

'TextBlock의'스타일

<Style x:Key="textBlock" TargetType="{x:Type TextBlock}"> 

      <Setter Property="FontFamily" Value="Verdana"></Setter> 
      <Setter Property="FontSize" Value="12"></Setter> 
     </Style> 

항목 레이아웃 :

<HierarchicalDataTemplate 
         DataType="{x:Type models:EntityViewModel}" ItemsSource="{Binding Children}" > 
         <Grid Margin="0,0,3,0"> 
          <TextBlock Style="{StaticResource textBlock}" TextWrapping="Wrap" Width="{Binding ActualWidth, ElementName=EntityTree}"> 
           <Hyperlink NavigateUri="{Binding Url}" RequestNavigate="Hyperlink_RequestNavigate"> 
            <TextBlock Text="{Binding ID}"></TextBlock> 
           </Hyperlink> 
           <TextBlock Text="{Binding TypeName}"></TextBlock> 
           <TextBlock Text="{Binding Explanation}"></TextBlock> 
          </TextBlock> 
         </Grid> 
        </HierarchicalDataTemplate> 

부모 레이아웃 :

<HierarchicalDataTemplate 
        DataType="{x:Type models:ParentViewModel}" ItemsSource="{Binding Children}"> 
        <Grid Margin="0,0,3,0"> 
        <TextBlock Style="{StaticResource textBlock}" TextWrapping="Wrap" Width="{Binding ActualWidth, ElementName=EntityTree}" > 
          <TextBlock Text="{Binding ParentName}"/> 
          <Run Text=" kategorisinde toplam "></Run> 
          <TextBlock Text="{Binding ItemsCount}"></TextBlock> 
          <Run Text=" adet kayıt"></Run> 
         </TextBlock> 
         </Grid> 
       </HierarchicalDataTemplate> 
+2

아마도 EntityViewModel DataTemplate의 TextBlock 너비에 대한 바인딩 때문일 것입니다. EntityTree는 전체 TreeView의 이름입니다. TextBlock의 너비가 전체 TreeView보다 크게 두 번째 레벨에서 들여 쓰기되므로 TreeView가 전체 텍스트 블록을 보이게 만들고 오른쪽으로 스크롤하려고 시도합니다. 사용 가능한 너비보다 작거나 같은 첫 번째 방법으로 고정 너비를 설정하십시오. – JanW

+0

훌륭한 설명에 감사드립니다. 그것은 합리적으로 보인다. 너비 속성을 제거하면 오른쪽 정렬 문제가 해결되었습니다. –

+0

고맙습니다. 나는 답으로 표시해 드릴 수 있습니다. – JanW

답변

1

아마도 이것은 EntityViewModel DataTemplate의 TextBlock 너비에 대한 바인딩 때문일 것입니다. EntityTree는 전체 TreeView의 이름입니다. TextBlock의 너비가 전체 TreeView보다 크게 두 번째 레벨에서 들여 쓰기되므로 TreeView가 전체 텍스트 블록을 보이게 만들고 오른쪽으로 스크롤하려고 시도합니다. 사용 가능한 너비보다 작거나 같은 첫 번째 방법으로 고정 너비를 설정하십시오.