2015-08-26 11 views
0

Надеюсь, что этого не задавали раньше, я не мог найти легкое решение во всем мире ... Я разрабатываю простую панель для Windows 8,1, но если разрешение больше, чем VXGA сетка и кнопки слишком малы и неправильно установлены. Я читал это: Taking Advantage of Large-Screen Windows Phones , но я не очень хорошо понял.Windows Phone 8.1 Адаптивное приложение для всех разрешений

Кто-нибудь знает, как мне помочь?

ответ

0

Вам необходимо реализовать свои визуальные состояния xaml. Эти визуальные состояния имеют адаптивные триггеры (например, разрешение экрана) и сеттеры (например, установка высоты вашей кнопки до 50, если срабатывает адаптивный триггер). Так же, как это:

<Page 
x:Class="VisualStates.MainPage" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
xmlns:local="using:VisualStates" 
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
mc:Ignorable="d"> 

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> 
    <VisualStateManager.VisualStateGroups> 
     <VisualStateGroup> 
      <VisualState> 
       <VisualState.StateTriggers> 
        <AdaptiveTrigger MinWindowWidth="0"></AdaptiveTrigger> 
       </VisualState.StateTriggers> 
       <VisualState.Setters> 
        <Setter Target="AdaptiveButton.Width" Value="80"></Setter> 
       </VisualState.Setters> 
      </VisualState> 
     </VisualStateGroup> 
    </VisualStateManager.VisualStateGroups> 
    <Button x:Name="AdaptiveButton" VerticalAlignment="Center" HorizontalAlignment="Center" Width="0">Test</Button> 
</Grid> 

Без визуального состояния Адаптивная кнопка будет иметь ширину 0, но из-за визуального государства его получения установлен до 80. Конечно, это не практично пример, и вы должны использовать смесь для визуальной студии, потому что она даже дает вам ui для простого осуществления этих визуальных состояний. Но прежде чем вы тренируетесь, вы должны google "visualstatemanager class" и искать больше примеров. EDIT: Вы можете также, например, проверить ширину окна и высоту в pageloaded метода, а затем, например, изменить свойство, как:

double displaywidth = App.Current.Host.Content.ActualWidth; 
if(displaywidth >= 300) {}//set local variable display width and than do sth 
+0

Спасибо вам так много :) –

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