我希望以前没有问到这个问题,我无法在任何地方找到一个简单的解决方案...... 我正在开发一个简单的Windows Phone 8.1音板,但如果分辨率大于VXGA,则网格和按钮太小而且放错了。我读到了这个:Taking Advantage of Large-Screen Windows Phones 但我不太了解。
有谁知道如何帮助我?
答案 0 :(得分: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。 当然这是一个不实用的例子,你应该使用blend for visual studio,因为它甚至可以为你提供简单实现这些视觉状态的ui。但在练习之前,你应该谷歌“visualstatemanager类”并搜索更多的例子。 修改强> 您还可以在 pageloaded 方法中检查窗口宽度和高度,然后例如更改属性,如:
double displaywidth = App.Current.Host.Content.ActualWidth;
if(displaywidth >= 300) {}//set local variable display width and than do sth