2013-07-02 1 views
0

У меня есть страница с изображением на ней, ее источник - это локальный ресурс .png. Он загружается в самую грубую манеру.Windows Store: загрузка элементов страницы неустойчива, неудобна

Он загружает всю сетку, например RowSpan = "2", а затем встает на место через секунду или два. Это ужасно.

Демонстрация из приложения на основе нового бланка приложения Store.

<common:LayoutAwarePage 
    x:Name="pageRoot" 
    x:Class="DeleteMeApp1.BasicPage1" 
    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:DeleteMeApp1" 
    xmlns:common="using:DeleteMeApp1.Common" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    mc:Ignorable="d"> 

    <Page.Resources> 

     <!-- TODO: Delete this line if the key AppName is declared in App.xaml --> 
     <x:String x:Key="AppName">My Application</x:String> 
    </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}" Background="Brown"> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="140"/> 
      <RowDefinition Height="*"/> 
     </Grid.RowDefinitions> 

     <VisualStateManager.VisualStateGroups> 

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

       <!-- The entire page respects the narrower 100-pixel margin convention for portrait --> 
       <VisualState x:Name="FullScreenPortrait"> 
        <Storyboard> 
         <ObjectAnimationUsingKeyFrames Storyboard.TargetName="backButton" Storyboard.TargetProperty="Style"> 
          <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PortraitBackButtonStyle}"/> 
         </ObjectAnimationUsingKeyFrames> 
        </Storyboard> 
       </VisualState> 

       <!-- The back button and title have different styles when snapped --> 
       <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> 
        </Storyboard> 
       </VisualState> 
      </VisualStateGroup> 
     </VisualStateManager.VisualStateGroups> 

     <Image Grid.Row="0" Stretch="UniformToFill" Source="Assets/BackgroundTexturedBlackboard.png" /> 

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

     <StackPanel Grid.Row="1"> 

     </StackPanel> 

    </Grid> 
</common:LayoutAwarePage> 

ответ

0

Проблема была до макета. Хотя это технически законно, соглашение не работает.

Я решил проблему, добавив еще одну сетку вокруг существующего корня и создав новый новый корень.

В новый корень я добавил изображение и другие элементы, которые мне нужно наложить на произведение, и этот порядок элементов становится лучше, хотя, с эффектами перехода, мне все еще нужно его подстроить.

Update

На самом деле, это не конец истории. Удаляя изображение и оставляя прямоугольник с Opacity 0.5, непрозрачность прямоугольника устанавливается через секунду после загрузки страницы. Это ужасно.

Я сделал приложение для воспроизведения, просмотрел проблему и отправил ошибку подключения.

https://connect.microsoft.com/VisualStudio/feedback/details/792303/windows-store-xaml-atrocious-obvious-delayed-application-of-opacity#details

Смежные вопросы