水平视图正在显示,但我希望它是垂直视图

时间:2016-06-10 11:03:36

标签: c# xaml windows-store-apps windows-store

我正在使用通用Windows 8.1框架开发一个Windows应用商店应用。我知道它已经过时但我的项目假设使用这个框架,所以无法帮助它。

现在的问题是我已成功将其设置为桌面水平,但对于移动设备我希望它垂直,但它仍然显示水平。我使用gridview进行水平和电话列表查看,但仍然没有结果。

这是xaml代码

{{1}}

我错过了什么?

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"];     
        }
}