Xaml 使用具有绝对布局的OnIdiom
我有圆形按钮,正在尝试使用Xaml 使用具有绝对布局的OnIdiom,xaml,xamarin,xamarin.forms,absolutelayout,Xaml,Xamarin,Xamarin.forms,Absolutelayout,我有圆形按钮,正在尝试使用AbsolutLayout根据它们是在手机还是平板电脑上更改它们的大小 这是我的xaml: <Frame BackgroundColor="{StaticResource ThemeColor}" Padding="0" CornerRadius="40" AbsoluteLayout.LayoutBounds="{StaticResource HomeCircle}" Absolut
AbsolutLayout
根据它们是在手机还是平板电脑上更改它们的大小
这是我的xaml:
<Frame BackgroundColor="{StaticResource ThemeColor}" Padding="0" CornerRadius="40" AbsoluteLayout.LayoutBounds="{StaticResource HomeCircle}" AbsoluteLayout.LayoutFlags="PositionProportional">
<Label Text="" HorizontalOptions="Center" VerticalOptions="Center" Style="{StaticResource Icon}" TextColor="{StaticResource LabelColor}"/>
<Frame.GestureRecognizers>
<TapGestureRecognizer Tapped="Directions"/>
</Frame.GestureRecognizers>
</Frame>
<AbsoluteLayout.Resources>
<ResourceDictionary>
<OnIdiom x:Key="HomeCircle" x:TypeArguments="Frame" Phone=".85,.375, 80, 80"
Tablet=".85,.375, 120, 120"/>
</ResourceDictionary>
</AbsoluteLayout.Resources>
编辑:尝试了矩形、绝对布局和框架的类型参数,它们都给出了以下错误:
错误XFC0009未找到“Phone”的属性、BindableProperty或事件,或者值和属性之间的类型不匹配
编辑:我们也查看了这个线程,它提供了相同的错误:
我过去也遇到过同样的问题。我的解决方案是通过绑定代替StaticResource来设置AbsoluteLayout边界
在ViewModel中:
public Xamarin.Forms.Rectangle HomeCircle => Xamarin.Forms.Device.Idiom == TargetIdiom.Phone ? new Xamarin.Forms.Rectangle(0.5f, 0.5f, 80, 80) : new Xamarin.Forms.Rectangle(0.5f, 0.5f, 120, 120);
在yaml中:
<AbsoluteLayout>
<Frame BackgroundColor="Gray"
Padding="0"
CornerRadius="40"
AbsoluteLayout.LayoutBounds="{Binding HomeCircle}"
AbsoluteLayout.LayoutFlags="PositionProportional">
<Label Text="TEST"
HorizontalOptions="Center"
VerticalOptions="Center"
TextColor="Black"/>
<Frame.GestureRecognizers>
<TapGestureRecognizer Command="{Binding DoSomething}"/>
</Frame.GestureRecognizers>
</Frame>
</AbsoluteLayout>
无论如何,AbsoluteLayout.LayoutBounds需要矩形,而标记并不总是允许所有内容:)为什么您的TypeArgument是“Frame”?@Jason,因为这些框架是实际的圆,具有作为按钮的点击手势识别器。我的TypeArgument应该是AbsoluteLayout吗?因为我试过了,它给了我同样的错误。您正在将此应用于框架的LayoutBounds属性,即类型Rectangle@Jason只是尝试更改它,给了我相同的错误:错误XFC0009未找到“Phone”的属性、BindableProperty或事件,或者值和属性之间的类型不匹配。在这一点上,我们尝试了矩形、框架和绝对布局的TypeArguments,它们都给出了这个错误。@Jason如果您参考了代码,就是这样。谢谢Andrea!当我尝试实现此功能时,帧的位置与我在“代码隐藏”中创建的矩形不匹配,当完成任何操作时,它会抛出一个错误:找不到键HomeCircle的StaticResource。知道为什么吗?没关系!只需输入我的ViewModel,而不是代码隐藏,谢谢您的帮助!是的,我也把它放在ViewModel中。答案不清楚,我会解决的