我尝试在Xamarin
中使用OrientationStateTrigger
,这样我就可以根据设备的方向设置元素的样式。
我从这个question复制了一个例子
这是我的Xaml:
<ContentView.Content>
<Grid x:Name="grid_master">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup>
<VisualState
x:Name="Landscape">
<VisualState.StateTriggers>
<OrientationStateTrigger Orientation="Landscape" />
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Property="BackgroundColor" Value="Blue" />
</VisualState.Setters>
</VisualState>
<VisualState
x:Name="Portrait">
<VisualState.StateTriggers>
<OrientationStateTrigger Orientation="Portrait" />
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Property="BackgroundColor" Value="Red" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
只有编译器不能识别VisualState.StateTriggers行,当鼠标悬停在该行上时,工具提示显示
'在类型' VisualState '中找不到可附加属性'StateTriggers'。'
我正在使用XamarinForms版本3.1.0.697729
,所以它应该在这个版本中可用,对吗?
有谁能告诉我哪里出错了吗?谢谢
1条答案
按热度按时间pdkcd3nj1#
Xamarin.Forms.3.1.0.697729
的版本有点过时,最新的是Xamarin.Forms.5.0.0.2578
。下面的示例代码我已经在
Xamarin.Forms.5.0.0.2578
上测试过了,当从Landscape
切换到Portrait
时,背景可以按照预期变化。您可以升级它来看看它是否有效。