2012-10-31 34 views
0

我的代碼如下,由於某種原因,當我將窗口鎖定到任何一邊(左側或右側)時,奇怪的事情發生,ListView中的東西消失。我十分肯定有什麼地方去錯在XAML,但我想不出什麼:/ItemList消失在側面

<common:LayoutAwarePage 
    x:Name="pageRoot" 
    x:Class="Jeans.reader" 
    DataContext="{Binding DefaultViewModel, RelativeSource={RelativeSource Self}}" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:local="using:Jeans" 
    xmlns:common="using:Jeans.Common" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    mc:Ignorable="d"> 

    <Page.Resources> 

     <!-- Collection of items displayed by this page --> 
     <CollectionViewSource 
      x:Name="itemsViewSource" 
      Source="{Binding Items}"/> 
    </Page.Resources> 

    <!-- 
     This grid acts as a root panel for the page that defines two rows: 
     * Row 0 contains the back button and page title 
     * Row 1 contains the rest of the page layout 
    --> 
    <Grid Style="{StaticResource LayoutRootStyle}"> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="140"/> 
      <RowDefinition Height="*"/> 
     </Grid.RowDefinitions> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition x:Name="primaryColumn" Width="610"/> 
      <ColumnDefinition Width="*"/> 
     </Grid.ColumnDefinitions> 

     <!-- Back button and page title --> 
     <Grid x:Name="titlePanel"> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="Auto"/> 
       <ColumnDefinition Width="*"/> 
      </Grid.ColumnDefinitions> 
      <Button 
       x:Name="backButton" 
       Click="GoBack" 
       IsEnabled="{Binding DefaultViewModel.CanGoBack, ElementName=pageRoot}" 
       Style="{StaticResource BackButtonStyle}"/> 
      <TextBlock x:Name="pageTitle" Grid.Column="1" Text="{StaticResource AppName}" Style="{StaticResource PageHeaderTextStyle}"/> 
     </Grid> 

     <!-- Vertical scrolling item list --> 
     <ListView 
      x:Name="itemListView" 
      AutomationProperties.AutomationId="ItemsListView" 
      AutomationProperties.Name="Items" 
      TabIndex="1" 
      Grid.Row="1" 
      Margin="-10,-10,0,0" 
      Padding="120,0,0,60" 
      ItemsSource="{Binding Source={StaticResource itemsViewSource}}" 
      IsSwipeEnabled="False" 
      SelectionChanged="ItemListView_SelectionChanged" 
      ItemTemplate="{StaticResource Standard130ItemTemplate}" SelectionMode="None" ItemClick="itemListView_ItemClick" IsItemClickEnabled="True"/> 

     <!-- Details for selected item --> 
     <ScrollViewer 
      x:Name="itemDetail" 
      AutomationProperties.AutomationId="ItemDetailScrollViewer" 
      Grid.Column="1" 
      Grid.RowSpan="2" 
      Padding="70,0,120,0" 
      DataContext="{Binding SelectedItem, ElementName=itemListView}" 
      Style="{StaticResource VerticalScrollViewerStyle}"> 

      <Grid x:Name="itemDetailGrid" Margin="0,60,0,50"> 
      <WebView x:Name="detailsWeb"/> 

      </Grid> 
     </ScrollViewer> 

     <VisualStateManager.VisualStateGroups> 

      <!-- Visual states reflect the application's view state --> 
      <VisualStateGroup x:Name="ApplicationViewStates"> 
       <VisualState x:Name="FullScreenLandscapeOrWide"/> 

       <!-- Filled uses a simpler list format in a narrower column --> 
       <VisualState x:Name="FilledOrNarrow"> 
        <Storyboard> 
         <ObjectAnimationUsingKeyFrames Storyboard.TargetName="primaryColumn" Storyboard.TargetProperty="Width"> 
          <DiscreteObjectKeyFrame KeyTime="0" Value="420"/> 
         </ObjectAnimationUsingKeyFrames> 
         <ObjectAnimationUsingKeyFrames Storyboard.TargetName="itemListView" Storyboard.TargetProperty="ItemTemplate"> 
          <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource Standard80ItemTemplate}"/> 
         </ObjectAnimationUsingKeyFrames> 
         <ObjectAnimationUsingKeyFrames Storyboard.TargetName="itemDetail" Storyboard.TargetProperty="Padding"> 
          <DiscreteObjectKeyFrame KeyTime="0" Value="60,0,66,0"/> 
         </ObjectAnimationUsingKeyFrames> 
        </Storyboard> 
       </VisualState> 

       <!-- 
        The page respects the narrower 100-pixel margin convention for portrait, and the page 
        initially hides details to show only the list of items 
       --> 
       <VisualState x:Name="FullScreenPortrait"> 
        <Storyboard> 
         <ObjectAnimationUsingKeyFrames Storyboard.TargetName="backButton" Storyboard.TargetProperty="Style"> 
          <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PortraitBackButtonStyle}"/> 
         </ObjectAnimationUsingKeyFrames> 

         <ObjectAnimationUsingKeyFrames Storyboard.TargetName="itemDetail" Storyboard.TargetProperty="Visibility"> 
          <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed"/> 
         </ObjectAnimationUsingKeyFrames> 
         <ObjectAnimationUsingKeyFrames Storyboard.TargetName="itemListView" Storyboard.TargetProperty="Padding"> 
          <DiscreteObjectKeyFrame KeyTime="0" Value="100,0,90,60"/> 
         </ObjectAnimationUsingKeyFrames> 
        </Storyboard> 
       </VisualState> 

       <!-- 
        When an item is selected in portrait the details display requires more extensive changes: 
        * Hide the master list and the column is was in 
        * Move item details down a row to make room for the title 
        * Move the title directly above the details 
        * Adjust margins and padding for details 
       --> 
       <VisualState x:Name="FullScreenPortrait_Detail"> 
        <Storyboard> 
         <ObjectAnimationUsingKeyFrames Storyboard.TargetName="backButton" Storyboard.TargetProperty="Style"> 
          <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PortraitBackButtonStyle}"/> 
         </ObjectAnimationUsingKeyFrames> 

         <ObjectAnimationUsingKeyFrames Storyboard.TargetName="primaryColumn" Storyboard.TargetProperty="Width"> 
          <DiscreteObjectKeyFrame KeyTime="0" Value="0"/> 
         </ObjectAnimationUsingKeyFrames> 
         <ObjectAnimationUsingKeyFrames Storyboard.TargetName="itemListView" Storyboard.TargetProperty="Visibility"> 
          <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed"/> 
         </ObjectAnimationUsingKeyFrames> 
         <ObjectAnimationUsingKeyFrames Storyboard.TargetName="itemDetail" Storyboard.TargetProperty="(Grid.Row)"> 
          <DiscreteObjectKeyFrame KeyTime="0" Value="1"/> 
         </ObjectAnimationUsingKeyFrames> 
         <ObjectAnimationUsingKeyFrames Storyboard.TargetName="itemDetail" Storyboard.TargetProperty="(Grid.RowSpan)"> 
          <DiscreteObjectKeyFrame KeyTime="0" Value="1"/> 
         </ObjectAnimationUsingKeyFrames> 
         <ObjectAnimationUsingKeyFrames Storyboard.TargetName="titlePanel" Storyboard.TargetProperty="(Grid.Column)"> 
          <DiscreteObjectKeyFrame KeyTime="0" Value="1"/> 
         </ObjectAnimationUsingKeyFrames> 
         <ObjectAnimationUsingKeyFrames Storyboard.TargetName="itemDetailGrid" Storyboard.TargetProperty="Margin"> 
          <DiscreteObjectKeyFrame KeyTime="0" Value="0,0,0,60"/> 
         </ObjectAnimationUsingKeyFrames> 
         <ObjectAnimationUsingKeyFrames Storyboard.TargetName="itemDetail" Storyboard.TargetProperty="Padding"> 
          <DiscreteObjectKeyFrame KeyTime="0" Value="100,0,90,0"/> 
         </ObjectAnimationUsingKeyFrames> 
        </Storyboard> 
       </VisualState> 

       <!-- 
        The back button and title have different styles when snapped, and the page 
        initially hides details to show only the list of items 
       --> 
       <VisualState x:Name="Snapped"> 
        <Storyboard> 
         <ObjectAnimationUsingKeyFrames Storyboard.TargetName="backButton" Storyboard.TargetProperty="Style"> 
          <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource SnappedBackButtonStyle}"/> 
         </ObjectAnimationUsingKeyFrames> 
         <ObjectAnimationUsingKeyFrames Storyboard.TargetName="pageTitle" Storyboard.TargetProperty="Style"> 
          <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource SnappedPageHeaderTextStyle}"/> 
         </ObjectAnimationUsingKeyFrames> 

         <ObjectAnimationUsingKeyFrames Storyboard.TargetName="primaryColumn" Storyboard.TargetProperty="Width"> 
          <DiscreteObjectKeyFrame KeyTime="0" Value="320"/> 
         </ObjectAnimationUsingKeyFrames> 
         <ObjectAnimationUsingKeyFrames Storyboard.TargetName="itemDetail" Storyboard.TargetProperty="Visibility"> 
          <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed"/> 
         </ObjectAnimationUsingKeyFrames> 
         <ObjectAnimationUsingKeyFrames Storyboard.TargetName="itemListView" Storyboard.TargetProperty="ItemTemplate"> 
          <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource Standard80ItemTemplate}"/> 
         </ObjectAnimationUsingKeyFrames> 
         <ObjectAnimationUsingKeyFrames Storyboard.TargetName="itemListView" Storyboard.TargetProperty="Padding"> 
          <DiscreteObjectKeyFrame KeyTime="0" Value="20,0,0,0"/> 
         </ObjectAnimationUsingKeyFrames> 
        </Storyboard> 
       </VisualState> 

       <!-- 
        When snapped and an item is selected the details display requires more extensive changes: 
        * Hide the master list and the column is was in 
        * Move item details down a row to make room for the title 
        * Move the title directly above the details 
        * Adjust margins and padding for details 
        * Use a different font for title and subtitle 
        * Adjust margins below subtitle 
       --> 
       <VisualState x:Name="Snapped_Detail"> 
        <Storyboard> 
         <ObjectAnimationUsingKeyFrames Storyboard.TargetName="backButton" Storyboard.TargetProperty="Style"> 
          <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource SnappedBackButtonStyle}"/> 
         </ObjectAnimationUsingKeyFrames> 
         <ObjectAnimationUsingKeyFrames Storyboard.TargetName="pageTitle" Storyboard.TargetProperty="Style"> 
          <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource SnappedPageHeaderTextStyle}"/> 
         </ObjectAnimationUsingKeyFrames> 

         <ObjectAnimationUsingKeyFrames Storyboard.TargetName="primaryColumn" Storyboard.TargetProperty="Width"> 
          <DiscreteObjectKeyFrame KeyTime="0" Value="0"/> 
         </ObjectAnimationUsingKeyFrames> 
         <ObjectAnimationUsingKeyFrames Storyboard.TargetName="itemListView" Storyboard.TargetProperty="Visibility"> 
          <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed"/> 
         </ObjectAnimationUsingKeyFrames> 
         <ObjectAnimationUsingKeyFrames Storyboard.TargetName="itemDetail" Storyboard.TargetProperty="(Grid.Row)"> 
          <DiscreteObjectKeyFrame KeyTime="0" Value="1"/> 
         </ObjectAnimationUsingKeyFrames> 
         <ObjectAnimationUsingKeyFrames Storyboard.TargetName="itemDetail" Storyboard.TargetProperty="(Grid.RowSpan)"> 
          <DiscreteObjectKeyFrame KeyTime="0" Value="1"/> 
         </ObjectAnimationUsingKeyFrames> 
         <ObjectAnimationUsingKeyFrames Storyboard.TargetName="titlePanel" Storyboard.TargetProperty="(Grid.Column)"> 
          <DiscreteObjectKeyFrame KeyTime="0" Value="1"/> 
         </ObjectAnimationUsingKeyFrames> 
         <!--<ObjectAnimationUsingKeyFrames Storyboard.TargetName="itemDetailTitlePanel" Storyboard.TargetProperty="(Grid.Row)"> 
          <DiscreteObjectKeyFrame KeyTime="0" Value="0"/> 
         </ObjectAnimationUsingKeyFrames> 
         <ObjectAnimationUsingKeyFrames Storyboard.TargetName="itemDetailTitlePanel" Storyboard.TargetProperty="(Grid.Column)"> 
          <DiscreteObjectKeyFrame KeyTime="0" Value="0"/> 
         </ObjectAnimationUsingKeyFrames>--> 
         <ObjectAnimationUsingKeyFrames Storyboard.TargetName="itemDetail" Storyboard.TargetProperty="Padding"> 
          <DiscreteObjectKeyFrame KeyTime="0" Value="20,0,20,0"/> 
         </ObjectAnimationUsingKeyFrames> 
         <ObjectAnimationUsingKeyFrames Storyboard.TargetName="itemDetailGrid" Storyboard.TargetProperty="Margin"> 
          <DiscreteObjectKeyFrame KeyTime="0" Value="0,0,0,60"/> 
         </ObjectAnimationUsingKeyFrames> 
         <!--<ObjectAnimationUsingKeyFrames Storyboard.TargetName="itemTitle" Storyboard.TargetProperty="Style"> 
          <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource TitleTextStyle}"/> 
         </ObjectAnimationUsingKeyFrames> 
         <ObjectAnimationUsingKeyFrames Storyboard.TargetName="itemTitle" Storyboard.TargetProperty="Margin"> 
          <DiscreteObjectKeyFrame KeyTime="0" Value="0"/> 
         </ObjectAnimationUsingKeyFrames> 
         <ObjectAnimationUsingKeyFrames Storyboard.TargetName="itemSubtitle" Storyboard.TargetProperty="Style"> 
          <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource CaptionTextStyle}"/> 
         </ObjectAnimationUsingKeyFrames>--> 
        </Storyboard> 
       </VisualState> 
      </VisualStateGroup> 
     </VisualStateManager.VisualStateGroups> 
    </Grid></common:LayoutAwarePage> 
+0

代碼轉儲要求其他人發現問題是不是真的爲這個網站一個很好的問題。 –

+0

對不起:/我真的來到了我無法自己解決它的地方:/這就是爲什麼我最終不得不發佈整個代碼轉儲。我知道它錯了,但我真的沒有別的選擇:/ –

回答

1

你應該嘗試在Blend進行編輯,這是偉大的用戶界面上工作。 打開相關頁面時,選擇左上角的設備選項卡,選擇視圖中的「捕捉」,如果勾選「啓用狀態記錄」複選框,則可以編輯快照視圖中列表框的外觀方式。項目可能已經爲快照視圖定義了一些視覺狀態。

要到混合,你右擊該項目並選擇「Blend中編輯」

+0

有點晚了答案,但這正是我最終做了一個星期前:) –