Xaml 根据Xamarin窗体中的屏幕方向设置样式
我在手机和平板电脑上设计样式,但如何添加方向选项?这是所有的肖像,但我如何才能添加水平方向的选项Xaml 根据Xamarin窗体中的屏幕方向设置样式,xaml,xamarin.forms,styling,adaptive-design,Xaml,Xamarin.forms,Styling,Adaptive Design,我在手机和平板电脑上设计样式,但如何添加方向选项?这是所有的肖像,但我如何才能添加水平方向的选项 <Style TargetType="Grid" x:Key="DocType"> <Setter Property="HeightRequest"> <Setter.Value>
<Style TargetType="Grid" x:Key="DocType">
<Setter Property="HeightRequest">
<Setter.Value>
<OnIdiom Phone="50" Tablet="80" />
</Setter.Value>
</Setter>
<Setter Property="BackgroundColor" Value="#F4F5F7"/>
</Style>
您可以使用以下示例:
<Grid>
<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>
</Grid>
在本例中:
模式
药片
电话
景观
绿色
蓝色
肖像画
紫色
黄色的
检查此项:。Microsoft建议您覆盖页面中的
OnSizeAllocated
方法,并相应地设置StackLayout
的方向。遗憾的是,没有办法像使用OnIdiom
或OnPlatform
那样为方向设置样式。至少我不知道。如果它回答了你的问题,请让我知道,否则你可能会给我留下反馈/评论。
<Style TargetType="Grid" x:Key="DocType">
<Setter Property="HeightRequest">
<Setter.Value>
<OnIdiom Phone="50" Tablet="80" />
</Setter.Value>
</Setter>
<Setter Property="VisualStateManager.VisualStateGroups">
<VisualStateGroupList>
<VisualStateGroup>
<VisualState x:Name="Landscape">
<VisualState.StateTriggers>
<OrientationStateTrigger Orientation="Landscape" />
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Property="BackgroundColor">
<Setter.Value>
<OnIdiom Phone="Blue" Tablet="Green" />
</Setter.Value>
</Setter>
</VisualState.Setters>
</VisualState>
<VisualState x:Name="Portrait">
<VisualState.StateTriggers>
<OrientationStateTrigger Orientation="Portrait" />
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Property="BackgroundColor">
<Setter.Value>
<OnIdiom Phone="Yellow" Tablet="Purple" />
</Setter.Value>
</Setter>
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateGroupList>
</Setter>
</Style>