我正在使用通用Windows 8.1框架开发一个Windows应用商店应用。我知道它已经过时但我的项目假设使用这个框架,所以无法帮助它。
现在的问题是我已成功将其设置为桌面水平,但对于移动设备我希望它垂直,但它仍然显示水平。我使用gridview进行水平和电话列表查看,但仍然没有结果。
这是xaml代码
{{1}}
我错过了什么?
答案 0 :(得分:0)
在XAML资源中定义两个datatemplates(例如,给它们键TemplateHori和TemplateVerti)
<Page.Resources>
<DataTemplate x:Key="TemplateHori">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding}"/>
<TextBlock Text="{Binding ElementName=listView, Path=DataContext.Test}" Margin="20 0" />
</StackPanel>
</DataTemplate>
<DataTemplate x:Key="TemplateVerti">
<StackPanel Orientation="Vertical">
<TextBlock Text="{Binding}"/>
<TextBlock Text="{Binding ElementName=listView, Path=DataContext.Test}" Margin="20 0" />
</StackPanel>
</DataTemplate>
</Page.Resources>
在构造函数中添加页面大小更改事件:
public MainPage()
{
this.InitializeComponent();
Window.Current.SizeChanged += Current_SizeChanged;
}
和页面大小更改事件与和高度比较:
void Current_SizeChanged(object sender, Window.UI.Core.WindowSizeChangedEventArgs e)
{
var b=Window.Current.Bounds;
if (b.Width>b.Height)
{
FruitGridView.ItemTemplate = (DataTemplate)Resources["TemplateHori"];
}
else
{
FruitGridView.ItemTemplate = (DataTemplate)Resources["TemplateVerti"];
}
}