我在XAML中有两个listBox ItemTemplate。但我无法通过Page的orientationChanged事件更改它以更改DataTemplate。 这里是代码:基于页面方向更改DataTemplate
protected override void OnOrientationChanged(OrientationChangedEventArgs e)
{
if (e.Orientation == PageOrientation.Landscape ||
e.Orientation == PageOrientation.LandscapeLeft ||
e.Orientation == PageOrientation.LandscapeRight)
{
this.HeadLineListBox.ItemTemplate = (DataTemplate)this.Resources["L_headerTemplate"];
}
else if (e.Orientation == PageOrientation.Portrait ||
e.Orientation == PageOrientation.PortraitDown ||
e.Orientation == PageOrientation.PortraitUp)
{
this.HeadLineListBox.ItemTemplate = (DataTemplate)this.Resources["P_headerTemplate"];
}
base.OnOrientationChanged(e);
}
当我第一次到如果方向是纵向的页面,它会显示人像DataTemplate中所有的时间,即使我改变了方向。所以,当我第一次进入页面时,它是Landscape.Someone可以帮助我吗?
PS:我用这个帖子的方式:http://wp7-developer.com/code-snippet/changing-the-datatemplate-based-on-page-orientation/但是它仍然不行。
我尝试这里提到遵循的方法,我没有工作过。 http://wp7-developer.com/code-snippet/changing-the-datatemplate-based-on-page-orientation/ – Joel
我已经使用上述技术根据页面的方向更改布局。 OrientationChanged事件是否未触发或数据模板是否未更新? –
我在OrientationChanged事件中做了一个断点。当方向改变时它真的被触发了,但是页面没有像预期的那样工作。 – Joel