【发布时间】:2021-09-28 08:30:09
【问题描述】:
我使用了 Rg.Plugins.Popup。 我已经对齐关闭按钮,该按钮从右侧和顶部对齐在窗口外 50% 的右上角,如下图所示。
现在它按照预期的设计显示,但问题是当我点击它时,只有关闭按钮的内部部分被点击,而外部部分不可点击。所以直到我们点击关闭按钮的内部部分时才能关闭弹出窗口。
我正在分享我的代码以获得更多想法。
<ScrollView Orientation="Horizontal">
<AbsoluteLayout HorizontalOptions="Center"
VerticalOptions="Center"
Padding="0,0,0,0"
Margin="0,0,0,0"
Opacity="1">
<Frame AbsoluteLayout.LayoutBounds="0,0,1,1"
IsClippedToBounds="True"
AbsoluteLayout.LayoutFlags="All"
HasShadow="False"
x:Name="outframe"
Margin="0"
CornerRadius="15"
Padding="0"
OutlineColor="#ffffff"
HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand">
<StackLayout Orientation="Horizontal"
x:Name="stkVideo"
Padding="0">
<Image x:Name="ximage"
Aspect="AspectFill"
HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand"
BackgroundColor="#4A4541" />
<video:VideoPlayer x:Name="trainingPlayer"
DisplayControls="True"
FillMode="ResizeAspectFill"
FlowDirection="LeftToRight"
Volume="100"
Grid.Row="0"
IsVisible="false">
</video:VideoPlayer>
</StackLayout>
</Frame>
<ContentView AbsoluteLayout.LayoutBounds="0.50, 0.50, -1, -1"
AbsoluteLayout.LayoutFlags="PositionProportional">
<Image Source="Play.png"
HeightRequest="{OnIdiom Phone=70,Tablet=85}"
WidthRequest="{OnIdiom Phone=70,Tablet=85}"
Aspect="AspectFit"
VerticalOptions="Center"
HorizontalOptions="Center"
x:Name="icnplay" />
<ContentView.GestureRecognizers>
<TapGestureRecognizer Tapped="TapGestureRecognizer_Tapped_1" />
</ContentView.GestureRecognizers>
</ContentView>
<ContentView AbsoluteLayout.LayoutBounds="1.04, -0.09, -1, -1"
AbsoluteLayout.LayoutFlags="PositionProportional" >
<Image Source="close.png"
HeightRequest="{OnIdiom Phone=35,Tablet=45}"
WidthRequest="{OnIdiom Phone=35,Tablet=45}"
Aspect="AspectFit">
<Image.GestureRecognizers>
<TapGestureRecognizer Tapped="TapGestureRecognizer_Tapped"/>
</Image.GestureRecognizers>
</Image>
<ContentView.GestureRecognizers>
<TapGestureRecognizer Tapped="TapGestureRecognizer_Tapped" />
</ContentView.GestureRecognizers>
</ContentView>
</AbsoluteLayout>
</ScrollView>
当用户点击窗口外的关闭按钮部分时,我需要做哪些代码更改才能关闭弹出窗口?
【问题讨论】:
-
您一定需要
<ContentView>包装<Image>标签吗?如果 TapGestureRecognizer 填充相同的空间并调用相同的方法/命令,通常只在一个视图上添加就足够了。 -
是的。我也只能添加图像标签,但我面临的问题仍然存在。
-
可能是按钮的外部部分在 AbsoluteLayout 之外,但很难从您的 XAML sn-p 中分辨出来。
-
好的。谢谢@AndrewH
-
不是一个干净的解决方案,但您可以使 AbsoluteLayout 更大以适合 AbsoluteLayout 内按钮的外部部分,然后为您的视频播放器框添加边距以保持其相对于之前的大小。
标签: xaml xamarin xamarin.forms popup