Изменить размер изображения на кнопку - PullRequest
0 голосов
/ 27 февраля 2020

Я создаю приложение в формах Xamarin и пытаюсь имитировать FloatingActionButton, поэтому я создал круглый Button, который будет иметь значок в центре. К сожалению, моя иконка перекрывает Button, и я не нашел способа правильно ее изменить. Я попытался обойтись, сделав Button таким большим, чтобы он подходил к иконке и уменьшал масштаб, но при этом терял качество. Есть ли способ только изменить размер изображения?

Button может выглядеть просто так, проблема, кажется, что-то общее:

<Button x:Name="button" ImageSource="image.png" />

1 Ответ

3 голосов
/ 27 февраля 2020

Есть 2 сценария ios.

Если ваше изображение не округлено и не прозрачно

Вы можете принудительно сделать это, используя Frame:

<Frame CornerRadius="50" 
       HeightRequest="100"
       WidthRequest="100"
       Padding="0"
       IsClippedToBounds="True">
    <Image Source="image.png" 
           HorizontalOptions="Center"
           VerticalOptions="Center">
            <Image.GestureRecognizers>
                <TapGestureRecognizer Tapped="MyTappedEvent" />
                <!-- or <TapGestureRecognizer Command="{Binding MyCommand}" /> -->
            </Image.GestureRecognizers>
    </Image>
</Frame>

Просто замените HeightRequest, WidthRequest и CornerRadius вашими значениями. Вы должны убедиться, что CornerRadius составляет половину размера или WirthRequest / HeightRequest, чтобы он выглядел как круг.

Затем просто используйте событие Tapped для базового использования c или Command TapGestureRecognizer, если вы используете шаблон MVVM.


Если ваш png изображение уже округлено и прозрачно

Тогда вы можете просто использовать TapGestureRecognizer прямо на вашем изображении, чтобы оно работало как кнопка:

<Image Source="image.png" HeightRequest="100" WidthRequest="100">
    <Image.GestureRecognizers>
        <TapGestureRecognizer Command="{Binding AddCommand}" />
    </Image.GestureRecognizers>
</Image>

Надеюсь, это поможет,

Happy кодирования!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...