2012-07-05 5 views
0

나는 다음과 같습니다 ListView가 있습니다메트로 C++/XAML 목록보기 짤깍 항목

<ListView x:Name="MyList" ItemsSource="{Binding Path=MyItems}"> 
    <ListView.ItemTemplate> 
    <DataTemplate> 
     <StackPanel> 
     <TextBlock x:Name="Title" Text="{Binding Path=TitleCategory}"/> 
     <TextBlock x:Name="Body" Text="{Binding Path=BodySummary}" Style="{StaticResource BodyTextStyle}"/> 
     </StackPanel> 
    </DataTemplate> 
    </ListView.ItemTemplate> 
</ListView> 

내가 그 TextBlock에 적용되는 BodyTextStyle은 600PX의 폭을 설정, 그리고 모든 FullScreenLandscape에서 잘 나타납니다. 그러나 SnappedView로 전환하면 화면 너비가 줄어들어 텍스트가 잘립니다. 일반적으로 내가 지금처럼 폭을 설정 한 것 : 나는 참조하고있어 항목 (들)을 ItemTemplate을에 있기 때문에

<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Width)" Storyboard.TargetName="Body"> 
    <DiscreteObjectKeyFrame KeyTime="0" Value="300"/> 
</ObjectAnimationUsingKeyFrames> 

을하지만 이것은 런타임 충돌을 생산, 나는 가정합니다. SnappedView로 갈 때 ListView의 모든 항목의 너비를 변경하는 올바른 방법은 무엇입니까?

답변

1

샘플 및 템플릿에서 보았던 것에서 권장되는 방법은 다른 뷰 상태에 대해 별도의 ListView를 제공하는 것으로 보이며, 사용자가 수행하는 작업과 비슷한 작업을 수행하여 최적화하려고 시도한 후에 포기하고 템플릿이하는 일을하기로 결심했습니다. 문제를 해결하고 스냅 된 뷰에 별도의 ListView를 사용하고 뷰 상태가 변경 될 때 두 ListView의 표시를 전환하면됩니다.

나는 또한 당신이 맞다고 생각하고 문제는 이름 범위가 다른 템플릿의 이름 범위 문제에서 비롯된 것이라고 생각합니다.

+0

코드 중복에 대해 만족하지는 않지만이 경로를 끝내지 만 더 나은 해결책을 찾을 때까지 \ – kurifu