2016-11-16 83 views
0

我想讓我的界面適合所有的手機屏幕分辨率,所以我想使用ViewBox,因爲它應該很好地縮放內容問題是每當我把包含所有元素的畫布視框是這樣的:ViewBox崩潰的UWP應用程序

 <Viewbox Stretch="Uniform" > 
     <Canvas x:Name="canvas"> 
     <Canvas.Background> 
      <ImageBrush Stretch="Uniform" ImageSource="Assets/start-01.jpg"/> 
     </Canvas.Background> 
       <Image x:Name="play" HorizontalAlignment="Left" Height="36" Margin="70,271,0,0" VerticalAlignment="Top" Width="194" Source="Assets/start bottuns-01.png" Stretch="Fill" Tapped="play_Tapped"/> 
       <TextBlock x:Name="playTB" Height="36" Margin="117,265,221,0" TextWrapping="Wrap" Text="RACE" FontSize="30" VerticalAlignment="Top" CharacterSpacing="364" Tapped="play_Tapped" FontFamily="Lucida Sans Unicode"/> 
       <Image x:Name="highscoresBT" HorizontalAlignment="Left" Height="36" Margin="70,337,0,0" VerticalAlignment="Top" Width="194" Source="Assets/start bottuns-01.png" Stretch="Fill" Tapped="highscoresBT_Tapped"/> 
       <TextBlock x:Name="highscoreTB" Height="36" Margin="72,337,236,0" TextWrapping="Wrap" Text="HIGHSCORES" FontSize="24" VerticalAlignment="Top" CharacterSpacing="194" Tapped="highscoresBT_Tapped" FontFamily="Lucida Sans Unicode"/> 
       <Image x:Name="storeBT" HorizontalAlignment="Left" Height="36" Margin="70,403,0,0" VerticalAlignment="Top" Width="194" Source="Assets/start bottuns-01.png" Stretch="Fill" Tapped="storeBT_Tapped"/> 
       <TextBlock x:Name="storeTB" HorizontalAlignment="Left" Height="36" Margin="111,397,0,0" TextWrapping="Wrap" Text="STORE" Width="151" FontSize="30" VerticalAlignment="Top" CharacterSpacing="364" Tapped="storeBT_Tapped"/> 
       <Image x:Name="helpBut" HorizontalAlignment="Left" Height="100" Margin="131,522,0,0" VerticalAlignment="Top" Width="72" Source="Assets/helpBut-01.png" Tapped="helpBut_Tapped"/> 
       <Image x:Name="coinsBG" HorizontalAlignment="Left" Height="19" Margin="282,0,0,0" VerticalAlignment="Top" Width="56" Source="Assets/comp bar-01.png" Stretch="Fill"/> 
       <Image x:Name="coinsIC" HorizontalAlignment="Left" Height="19" VerticalAlignment="Top" Width="14" Source="Assets/coins-01.png" Margin="316,1,0,0"/> 
       <TextBlock x:Name="coinsOwnedTB" HorizontalAlignment="Left" Height="14" Margin="290,2,0,0" TextWrapping="Wrap" Text="120" VerticalAlignment="Top" Width="21" FontSize="10" FontFamily="Lucida Sans Unicode" Foreground="#FF535257"/> 
       <Image x:Name="scoreBG" HorizontalAlignment="Left" Height="23" VerticalAlignment="Top" Width="136" Source="Assets/comp bar-01.png" Stretch="Fill"/> 
       <TextBlock x:Name="scoreNameTB" HorizontalAlignment="Left" Height="21" Margin="1,2,0,0" TextWrapping="Wrap" Text="Score: " VerticalAlignment="Top" Width="48" FontSize="14" FontFamily="Lucida Sans Unicode" Foreground="#FF535257"/> 
       <TextBlock x:Name="scoreTB" HorizontalAlignment="Left" Height="21" Margin="49,2,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="87" FontSize="14" FontFamily="Lucida Sans Unicode" Foreground="#FF535257"/> 
       <Image x:Name="feedbackBT" HorizontalAlignment="Left" Height="36" Margin="70,469,0,0" VerticalAlignment="Top" Width="194" Source="Assets/start bottuns-01.png" Stretch="Fill" Tapped="feedback_Tapped"/> 
       <TextBlock x:Name="feedbackTB" Height="36" Margin="83,463,244,0" TextWrapping="Wrap" Text="SUPPORT" FontSize="30" VerticalAlignment="Top" Tapped="feedback_Tapped" FontFamily="Lucida Sans Unicode" TextAlignment="Center" CharacterSpacing="200"/> 
    </Canvas> 
    </Viewbox> 

所有元素消失了,在電話模擬器中運行時,應用程序崩潰 任何人有什麼想法?

注意:使用Grid而不是Canvas解決了這個問題,但是在我的應用程序中有一些地方應該使用canvas,並且導致ViewBox出現同樣的問題,這就是爲什麼我發佈這個問題的原因,我知道這個頁面並不真的需要一個Canvas。 謝謝

回答

0

事實證明,畫布應該有高度和寬度在視圖框中正確查看,而網格並不需要,它實際上是邏輯,因爲網格取得其中的元素的大小,而畫布doesn 「T。

什麼仍然是一個謎是爲什麼在添加ViewBox時沒有設置畫布的高度和寬度時,應用程序會在手機模擬器上崩潰,但是如果已設置,則正常工作。