2011-02-05 171 views
0

我有一个支点,在没有半点异常和列表框显示在左侧顶部为我期望:布局问题

<c:Pivot 
     Title="QUESTIONNAIRE" 
     ItemsSource="{Binding ViewModels}"> 

     <c:Pivot.HeaderTemplate> 
     <DataTemplate> 
      <TextBlock 
      Text="{Binding HeaderText}" /> 
     </DataTemplate> 
     </c:Pivot.HeaderTemplate> 

     <c:Pivot.ItemTemplate> 
     <DataTemplate> 
      <ListBox> 
      <ListBoxItem> 
       <TextBlock>ListboxItemText</TextBlock> 
      </ListBoxItem> 
      </ListBox> 
     </DataTemplate> 
     </c:Pivot.ItemTemplate> 

    </c:Pivot> 
    </Grid> 

但是当我拆了这一点要在Application.Resources中使用DataTemplate,列表框将居中,垂直和水平。我怎样才能回到左上角?

<DataTemplate x:Name="datatemplateSample"> 
     <ListBox 
     ItemContainerStyle="{StaticResource styleSelect}" 
     SelectedIndex="{Binding Value}"> 
     <ListBoxItem> 
      <TextBlock>ListboxItemText</TextBlock> 
     </ListBoxItem> 
     </ListBox> 
    </DataTemplate> 

<c:Pivot 
     Title="QUESTIONNAIRE" 
     ItemsSource="{Binding ViewModels}"> 

     <c:Pivot.HeaderTemplate> 
     <DataTemplate> 
      <TextBlock 
      Text="{Binding HeaderText}" /> 
     </DataTemplate> 
     </c:Pivot.HeaderTemplate> 

     <c:Pivot.ItemTemplate> 
     <app:PivotDataTemplateSelector Content="{Binding}" /> 
     </c:Pivot.ItemTemplate> 

    </c:Pivot> 

    </Grid> 

我想我一定是失去了一些东西明显!

感谢

安德鲁

回答

0

例如,当您创建ListBox控件本身时,请指定明确的高度和宽度,并将其放在StackPanel之内。

事情是这样的:

<DataTemplate x:Name="datatemplateSample"> 
    <StackPanel> 
     <ListBox 
     Height="480" Width="400" 
     ItemContainerStyle="{StaticResource styleSelect}" 
     SelectedIndex="{Binding Value}"> 
     <ListBoxItem> 
      <TextBlock>ListboxItemText</TextBlock> 
     </ListBoxItem> 
     </ListBox> 
    </StackPanel> 
</DataTemplate> 
+0

是的,这确实有效,但不完全符合动态布局的精神! – amaca 2011-02-06 13:29:14

0

尝试在Pivot设置HorizontalContentAlignmentLeftVerticalContentAlignmentTop

+0

我没有试过,但没有任何变化。 – amaca 2011-02-05 17:49:39