Xamarin.forms 位置相同时,AbsoluteLayout未按预期对齐控件
我正在尝试在Androd上获得如下类似的弹出窗口,看到X close按钮很好地位于框架顶部。我从测试中复制了代码,但实际代码也不起作用。按钮的一半总是在框架后面。我认为第一个添加的控件位于下方,第二个控件位于上方,如果它们的位置相互重叠。这里有例外吗?无论我怎么试,我都无法将按钮设置到框架上。有人能解释一下absolutelayout的用法吗Xamarin.forms 位置相同时,AbsoluteLayout未按预期对齐控件,xamarin.forms,Xamarin.forms,我正在尝试在Androd上获得如下类似的弹出窗口,看到X close按钮很好地位于框架顶部。我从测试中复制了代码,但实际代码也不起作用。按钮的一半总是在框架后面。我认为第一个添加的控件位于下方,第二个控件位于上方,如果它们的位置相互重叠。这里有例外吗?无论我怎么试,我都无法将按钮设置到框架上。有人能解释一下absolutelayout的用法吗 <ScrollView HorizontalOptions="Center" VerticalOptions="Center"&g
<ScrollView
HorizontalOptions="Center"
VerticalOptions="Center">
<AbsoluteLayout>
<Frame
x:Name="FrameContainer"
Margin="15"
HorizontalOptions="Center"
BackgroundColor="White">
<StackLayout
IsClippedToBounds="True"
Padding="10, 5"
Spacing="3">
<Image
HorizontalOptions="Center"
x:Name="OctocatImage"
Margin="10"
HeightRequest="150"
WidthRequest="150">
<Image.Source>
<OnPlatform
x:TypeArguments="ImageSource"
Android="github_octocat.png"
iOS="github_octocat.png"
WinPhone="Assets/github_octocat.png"/>
</Image.Source>
</Image>
<Entry
HorizontalOptions="Center"
x:Name="UsernameEntry"
Style="{StaticResource EntryStyle}"
Placeholder="Username" />
<Entry
HorizontalOptions="Center"
x:Name="PasswordEntry"
Style="{StaticResource EntryStyle}"
Placeholder="Password"
IsPassword="True"/>
<Button
Margin="10, 5"
BackgroundColor="#7dbbe6"
HorizontalOptions="Fill"
Clicked="OnLogin"
x:Name="LoginButton"
Text="Login">
<Button.HeightRequest>
<OnPlatform x:TypeArguments="x:Double" Android="50" iOS="30" WinPhone="30"/>
</Button.HeightRequest>
</Button>
</StackLayout>
</Frame>
<ContentView
AbsoluteLayout.LayoutFlags="PositionProportional"
AbsoluteLayout.LayoutBounds="1, 0, -1, -1">
<ContentView.GestureRecognizers>
<TapGestureRecognizer Tapped="OnCloseButtonTapped"/>
</ContentView.GestureRecognizers>
<Image
x:Name="CloseImage"
HeightRequest="30"
WidthRequest="30">
<Image.Source>
<OnPlatform
x:TypeArguments="ImageSource"
Android="close_circle_button.png"
iOS="close_circle_button.png"
WinPhone="Assets/close_circle_button.png"/>
</Image.Source>
</Image>
</ContentView>
</AbsoluteLayout>
</ScrollView>
我刚刚尝试了一个新的项目,下面是它对我来说的样子。关闭按钮始终位于框架后面。在这里你可以找到repo
删除了框架并将一些属性移动到StackLayout上。相关错误
删除了框架并将一些属性移动到StackLayout上。相关错误
这是一个bug,在你的相框上设置hashadow=“False”,它应该可以工作。这是一个bug,在你的相框上设置hashadow=“False”,它应该可以工作。我已经尝试过了,但没有问题,你能分享你的想法吗project@ColeXia奇怪。我一对一地复制代码,没有任何更改。我将尝试一个空的项目,并张贴链接here@ColeXia请看我更新的问题。我添加了截图和小项目链接。无法构建它。您使用的是什么VS?@YuriS VS 2017 premium。当你尝试建造时,你得到了什么?我已经尝试过了,但没有问题,你能分享你的想法吗project@ColeXia奇怪。我一对一地复制代码,没有任何更改。我将尝试一个空的项目,并张贴链接here@ColeXia请看我更新的问题。我添加了截图和小项目链接。无法构建它。您使用的是什么VS?@YuriS VS 2017 premium。当你们尝试构建的时候,你们得到了什么?我认为那个框架只是用来给弹出窗口提供漂亮的带阴影的边框。你是说框架总是在上面?这就是解决办法。非常感谢。谢谢你找到bugzilla条目,我刚刚订阅了更新。我认为框架只是用来给弹出窗口添加阴影的漂亮边框。你是说框架总是在上面?这就是解决办法。非常感谢。感谢您找到bugzilla条目,我刚刚订阅了更新
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:test"
x:Class="test.MainPage">
<ContentPage.Resources>
<ResourceDictionary>
<Style x:Key="EntryStyle" TargetType="Entry">
<Setter Property="PlaceholderColor" Value="#9cdaf1"/>
<Setter Property="TextColor" Value="#7dbbe6"/>
</Style>
</ResourceDictionary>
</ContentPage.Resources>
<ContentPage.Content>
<ScrollView
HorizontalOptions="Center"
VerticalOptions="Center">
<AbsoluteLayout>
<StackLayout Margin="15" BackgroundColor="White"
IsClippedToBounds="True"
Padding="10, 5"
Spacing="3">
<Image
HorizontalOptions="Center"
x:Name="OctocatImage"
Margin="10"
HeightRequest="150"
WidthRequest="150">
<Image.Source>
<OnPlatform
x:TypeArguments="ImageSource"
Android="icon.png"
/>
</Image.Source>
</Image>
<Entry
HorizontalOptions="Center"
x:Name="UsernameEntry"
Style="{StaticResource EntryStyle}"
Placeholder="Username" />
<Entry
HorizontalOptions="Center"
x:Name="PasswordEntry"
Style="{StaticResource EntryStyle}"
Placeholder="Password"
IsPassword="True"/>
<Button
Margin="10, 5"
BackgroundColor="#7dbbe6"
HorizontalOptions="Fill"
x:Name="LoginButton"
Text="Login">
<Button.HeightRequest>
<OnPlatform x:TypeArguments="x:Double" Android="50" iOS="30" WinPhone="30"/>
</Button.HeightRequest>
</Button>
</StackLayout>
<ContentView
AbsoluteLayout.LayoutFlags="PositionProportional"
AbsoluteLayout.LayoutBounds="1, 0, -1, -1">
<Image
x:Name="CloseImage"
HeightRequest="30"
WidthRequest="30">
<Image.Source>
<OnPlatform
x:TypeArguments="ImageSource"
Android="close_circle_button.png"
/>
</Image.Source>
</Image>
</ContentView>
</AbsoluteLayout>
</ScrollView>
</ContentPage.Content>
</ContentPage>