Xamarin.Forms的手机和平板电脑视图

时间:2020-01-27 14:53:57

标签: xaml xamarin.forms

我正在尝试制作一个在手机和平​​板电脑上可能不同的xaml。我有这样的东西:

<OnIdiom x:TypeArguments="View">
    <OnIdiom.Phone>
        <ContentView VerticalOptions="CenterAndExpand">
            ...
            <LineEntry x:Name="User" Style="{StaticResource Style1}"/>
            ...
        </ContentView>
    </OnIdiom.Phone>
    <OnIdiom.Tablet>
        <ContentView VerticalOptions="End">
            ...
            <LineEntry x:Name="User" Style="{StaticResource Style2}"/>
            ...
        </ContentView>
    </OnIdiom.Tablet>
</OnIdiom>

但是不能在后面的代码中使用相同的ID名称。我能怎么做?我不想为每个平台使用2个变量(例如userPhone和userTablet)。是实现这一目标的另一种方法吗?谢谢!

1 个答案:

答案 0 :(得分:0)

可以使用OnIdiom或OnPlatform更改对象的大多数属性。

<Image Aspect="AspectFit" x:Name="logoImg">
     <Image.HeightRequest>
          <OnPlatform Default="400" Android="350" />
     </Image.HeightRequest>
     <Image.IsVisible>
          <OnIdiom Default="True" Phone="False" />
     </Image.IsVisible>
</Image>

所以在您的示例中(未测试)

<ContentView>
   <ContentView.VerticalOptions>
      <OnIdiom Default="End" Phone="CenterAndExpand" />
   <ContentView.VerticalOptions>
</ContentView>