我使用Grid
在ListView中加载了多个标签。我想在旋转屏幕时更改标签的位置。
所以我做了类似的事。
protected override void OrientationChanged(OrientationValu newOrientation)
{
RdMyListView.ItemTemplate = null;
if (newOrientation == OrientationValu.Landscape)
{
Debug.WriteLine("LAndscape");
viewModel.IsLandscape = true;
RdMyListView.ItemTemplate = new OrientationDataTemplateSelector
{
LandscapeTemplate = landscapeTemplate,
PortraitTemplate = portraitTemplate,
IsLandscape = true
};
}
else
{
Debug.WriteLine("Portrait");
viewModel.IsLandscape = false;
RdMyListView.ItemTemplate = new OrientationDataTemplateSelector
{
LandscapeTemplate = landscapeTemplate,
PortraitTemplate = portraitTemplate,
IsLandscape = false
};
}
}
这是我调用datatemplator类并获取DataTmplate
的方法。当我的Page
加载时,我分配了我的私有2个数据模板。
landscapeTemplate = GetDataTemplate(true);
portraitTemplate = GetDataTemplate(false);
基于此true或false,我的GetDataTemplate(bool isLandscape)
将返回不同的数据模板。
private DataTemplate GetDataTemplate (bool isLandscape)
{
var dataTemplate = new DataTemplate(() =>
{
// Implementation
});
return dataTemplate;
}
但是当最大化模拟器窗口时,UWP应用程序崩溃了。 Android运行正常。请帮我。 感谢