Как установить идеальный угловой радиус для изображения внутри XfxCardView в форме xamarin?

У меня есть вид карты, и у меня есть изображение. Я должен установить радиус угла для этого изображения, поэтому я использую фреймы для этого.

Это пользовательский интерфейс, который мне нужен, и я отметил изображение

Это результат, который я получаю ,

Это мой код

 <xfx:XfxCardView 
                        BackgroundColor="White"
                        CornerRadius="30" 
                    Elevation="30"
                 HeightRequest="100" >
                    <Grid RowSpacing="0">
                        <Grid ColumnSpacing="0">
                            <Grid.RowDefinitions >
                                <RowDefinition Height="*"></RowDefinition>

                                <RowDefinition Height="Auto"></RowDefinition>
                            </Grid.RowDefinitions>
                            <Grid.ColumnDefinitions >
                                <ColumnDefinition Width="*"></ColumnDefinition>
                                <ColumnDefinition Width="Auto"></ColumnDefinition>
                            </Grid.ColumnDefinitions>
                            <Frame CornerRadius="10" Margin="0"  Padding="0" IsClippedToBounds="True">
                                <Image Margin="-70,0,0,0"   Source="restaurantimage1.jpg"  Grid.Row="0" Grid.Column="0" Grid.RowSpan="3"/>
                            </Frame>
                            <Label Grid.Row="0" Grid.Column="1" Margin="0,0,100,0" BackgroundColor="Aqua" HorizontalOptions="Start" Text="Premera restaurant" TextColor="Black" FontFamily="Bold,20"/>
                            <Label Grid.Row="1" Grid.Column="1" Margin="0,0,100,0" BackgroundColor="Green" HorizontalTextAlignment="Start" Text="Avenue Road,256" TextColor="Blue"/>
                            <Label Grid.Row="2" Grid.Column="1" Margin="0,0,100,0" BackgroundColor="LightBlue" VerticalTextAlignment="Start" Text="Indian,Italy,Chinese" TextColor="LightGray"/>
                        </Grid>
                    </Grid>
                </xfx:XfxCardView>

Я внес изменения в угловой радиус и поля, но я не получаю желаемого результата. Должен ли я использовать что-то еще для этого или я должен внести какие-либо изменения в фрейм. Я сделал некоторые изменения в коде, так что я немного близок к желаемому результату. Это текущий выход

По-прежнему есть пробел в кадре, поскольку вы можете видеть, что я внесли изменения в код, но все же он не исправляется. Это мой код

 <xfx:XfxCardView 
                        BackgroundColor="White"
                        CornerRadius="30" 
                    Elevation="30"
                 HeightRequest="100" >
                    <Grid RowSpacing="0">
                        <Grid ColumnSpacing="0">
                            <Grid.RowDefinitions >
                                <RowDefinition Height="*"></RowDefinition>

                                <RowDefinition Height="Auto"></RowDefinition>
                            </Grid.RowDefinitions>
                            <Grid.ColumnDefinitions >
                                <ColumnDefinition Width="*"></ColumnDefinition>
                                <ColumnDefinition Width="Auto"></ColumnDefinition>
                            </Grid.ColumnDefinitions>
                            <Frame Margin="0" Padding="-40" CornerRadius="25" Grid.RowSpan="3"  BackgroundColor="LightBlue"  IsClippedToBounds="True">
                                <Image Margin="-70,0,0,0"  Grid.Row="0" Grid.Column="0" Grid.RowSpan="3"  BackgroundColor="AliceBlue"  Source="restaurantimage1.jpg"  />
                            </Frame>
                            <Label Grid.Row="0" Grid.Column="1" Margin="0,0,100,0"  HorizontalOptions="Start" Text="Premera restaurant" TextColor="Black" FontFamily="Bold,20"/>
                            <Label Grid.Row="1" Grid.Column="1" Margin="0,0,100,0"  HorizontalTextAlignment="Start" Text="Avenue Road,256" TextColor="Blue"/>
                            <Label Grid.Row="2" Grid.Column="1" Margin="0,0,100,0"  VerticalTextAlignment="Start" Text="Indian,Italy,Chinese" TextColor="LightGray"/>
                        </Grid>
                    </Grid>
                </xfx:XfxCardView>

Всего 2 ответа


Попробуйте установить свойство bounded to bounds как true в xaml Grid's

 <Grid RowSpacing="0" IsClippedToBounds="True">

Я исправил его, изменив поле рамки. Это мой код сейчас

 <xfx:XfxCardView 
                        BackgroundColor="White"
                        CornerRadius="30" 
                    Elevation="20"
                 HeightRequest="150" IsClippedToBounds="True">
                    <Grid RowSpacing="0" >
                        <Grid ColumnSpacing="0">
                            <Grid.RowDefinitions >
                                <RowDefinition Height="*"></RowDefinition>

                                <RowDefinition Height="Auto"></RowDefinition>
                            </Grid.RowDefinitions>
                            <Grid.ColumnDefinitions >
                                <ColumnDefinition Width="*"></ColumnDefinition>
                                <ColumnDefinition Width="Auto"></ColumnDefinition>
                            </Grid.ColumnDefinitions>
                            <Frame Margin="10,10,10,20" Padding="-40" CornerRadius="10" Grid.RowSpan="3"  BackgroundColor="LightBlue"  IsClippedToBounds="True">
                                <Image Margin="-70,0,0,0"  Grid.Row="0" Grid.Column="0" Grid.RowSpan="3"  BackgroundColor="AliceBlue"  Source="restaurantimage1.jpg"  />
                            </Frame>
                            <Label Grid.Row="0" Grid.Column="1" Margin="0,30,30,0"  HorizontalOptions="Start" Text="Premera restaurant" TextColor="Black" FontFamily="Bold,20"/>
                            <Image Grid.Row="0" Grid.Column="1" Margin="0,30,10,0" HorizontalOptions="End" Source="whitehearticon3.jpg"/>
                            <Label Grid.Row="1" Grid.Column="1" Margin="0,-20,40,0"  HorizontalTextAlignment="Start" Text="Avenue Road,256" TextColor="Blue"/>
                            <Label Grid.Row="2" Grid.Column="1" Margin="0,0,40,0"  VerticalTextAlignment="Start" Text="Indian,Italy,Chinese Kitchen" TextColor="LightGray"/>


                        </Grid>
                    </Grid>
                </xfx:XfxCardView>

Есть идеи?

10000