как добиться хорошего вида карты, как макеты в формах xamarin - PullRequest
0 голосов
/ 03 июля 2019

Я использую кадры в XAML для просмотра карт. Но этот дизайн не близок ни к представлениям карт приложений Google, ни к представлениям карт других приложений. Кроме того, я не вижу хорошей тени со всех трех сторон, вместо этого у нее есть поддельная линия тени

Вот код:

<Frame Margin="0,20,0,0"
                       IsClippedToBounds="True"
           HasShadow="True">
                    <Frame.OutlineColor>
                        <OnPlatform x:TypeArguments="Color"
                                    Android="Gray"
                                    iOS="Gray"></OnPlatform>
                    </Frame.OutlineColor>
<StackLayout Orientation="Horizontal" Spacing="0">
                            <Image Source="mf_tickets1.png" WidthRequest="30" HeightRequest="30" Aspect="AspectFill"  VerticalOptions="Center"/>
                            <Label x:Name="showsummary" Text="Summary " TextColor="Black" FontSize="Medium" FontAttributes="Bold" VerticalOptions="Start" >
                            </Label>
                            <Image  x:Name="SummageHideShowImage1" Source="{Binding SummageHideShowImage}" WidthRequest="30" HeightRequest="30"
                               Aspect="AspectFill" HorizontalOptions="EndAndExpand" VerticalOptions="Center" ></Image>
                        </StackLayout>
</Frame>

Есть ли другой способ добиться хорошего макета просмотра карты, чтобы сделать мое приложение премиальным?

1 Ответ

0 голосов
/ 06 июля 2019

Я не решаюсь использовать сторонние пакеты NuGet. Я написал собственный рендерер фреймов и назначил файл ресурсов для рисования с подходящими высотой, цветом и тенью.

Пользовательская рамка:

protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.Frame> e)
    {
        base.OnElementChanged(e);
        if (e.NewElement != null && e.OldElement == null)
            ViewGroup.SetBackgroundResource(Resource.Drawable.FrameRenderValue);
        ViewGroup.Elevation = 6;
    }

FrameRenderValue.xml:

<item>
<shape android:shape="rectangle">
  <solid android:color="#CABBBBBB" />
  <corners android:radius="2dp" />
</shape>
</item>
<item
  android:left="0.5dp"
  android:right="0.5dp"
  android:top="0dp"
  android:bottom="0dp">
<shape android:shape="rectangle">
  <solid android:color="@android:color/white" />
  <corners android:radius="2dp" />
</shape>
</item>

Спасибо

...