1
我已经简化了的情况下以下几点:应用资源SemanticZoom ZoomedInView抛出异常
<Page>
<Page.Resources>
<GridView x:Key="TestGrid"/>
<ListView x:Key="TestList"/>
</Page.Resources>
</Page>
<Grid >...
<VisualStateManager.VisualStateGroups >
<VisualStateGroup x:Name="VisualStateGroup" CurrentStateChanged="VisualStateGroup_CurrentStateChanged">
<VisualState x:Name="WideView">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="720" />
</VisualState.StateTriggers>
<VisualState.Setters>
</VisualState.Setters>
</VisualState>
<VisualState x:Name="NarrowView">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="0" />
</VisualState.StateTriggers>
<VisualState.Setters>
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<SemanticZoom...>
<SemanticZoom.ZoomedInView>
<GridView/>
</SemanticZoom.ZoomedInView>
<SemanticZoom.ZoomedOutView>
<GridView/>
</SemanticZoom.ZoomedOutView>
且事件跟踪的过程:
private void VisualStateGroup_CurrentStateChanged(object sender, VisualStateChangedEventArgs e)
{
if (e.NewState.Name == "NarrowView")
{
ZoomView.ZoomedInView = (ListView)this.Resources["TestList"]; //new ListView();
}
else
{
ZoomView.ZoomedInView = (GridView)this.Resources["TestGrid"]; //new GridView();
}
}
抛出异常信息:System.ArgumentException价值不在预期范围内。
但是,如果我删除了评论,我设置了一个新的实例,那是有效的。那么区别是什么呢?为什么我无法将资源应用于语义缩放zoomedinview?
你是对资源,有时一个认为是快,我所做的是让他们的资源,例如另外两个,并通过代码和 –
我具有样式的资源,他们的结合同样的问题,我不明白这是如何与新的数据源。目标应该是根据屏幕大小在“ListView”和“GridView”之间切换,而不是更改数据源, – StepTNT