Первоначально я реализовал эту функцию, но просто добавил изображение к кнопке. Тогда я понял, что могу просто добавить жест нажатия к изображению (без использования кнопки). Любые рекомендации, которые лучше всего подходят и почему? Благодарю.Xamarin Forms Clickable Images
3
A
ответ
2
Это зависит от визуального эффекта, которого вы хотите достичь.
- Если вы используете Button, у вас будет задействованная анимация (зависит от платформы) и конкретная граница приклада. У вас гораздо меньше контроля, как будет выглядеть изображение (оно находится в левой части текста кнопки).
- Если вы используете равнину TapGestureRecognizer вы будете иметь нормальное изображение с полным контролем соотношения сторон/размера и т.д.
6
Я использую свое собственное «OnClick» событие для изображения :) с помощью пользовательского контроля:
public class MyImage : Xamarin.Forms.Image
{
public static BindableProperty OnClickProperty =
BindableProperty.Create("OnClick", typeof(Command), typeof(MyImage));
public Command OnClick
{
get { return (Command)GetValue(OnClickProperty); }
set { SetValue(OnClickProperty, value); }
}
public MyImage()
{
GestureRecognizers.Add(new TapGestureRecognizer() {Command = new Command(DisTap)});
}
private void DisTap(object sender)
{
if (OnClick != null)
{
OnClick.Execute(sender);
}
}
}
Затем используйте его с MVVM, как:
<local:MyImage Source="{Binding Img}" OnClick="{Binding ImgTapCommand}" />
+0
этот код не смог избежать более одного крана и выполнить выполнение для всех кранов. –
1
Вы можете использовать абсолютное расположение, которое может быть использовано для размещения двух элементов друг над другими, не забудьте сделать переключат n - второй элемент.
<AbsoluteLayout>
<Image Source="clock.png" AbsoluteLayout.LayoutBounds="0.2,0.2,35,35" AbsoluteLayout.LayoutFlags="PositionProportional"/>
<Button AbsoluteLayout.LayoutBounds="0.2,0.2,35,35" AbsoluteLayout.LayoutFlags="PositionProportional" BorderColor="Transparent" BackgroundColor="Transparent" Command="{Binding AlertMeCommand}"/>
</AbsoluteLayout>
Смежные вопросы
- 1. Radio Boxes Clickable Images
- 2. Clickable Images for Python
- 3. Android Clickable Images внутри TextView
- 4. django images upload forms
- 5. Xamarin: TextView Clickable
- 6. Xamarin Local Images from Resources
- 7. Xamarin forms log in
- 8. Xamarin Forms Realm
- 9. Xamarin Forms GetAddressesForPositionAsync
- 10. MVVM Xamarin Forms Design
- 11. Xamarin Forms Обратный PushModalAsync
- 12. Xamarin Forms Ошибка WebView
- 13. Xamarin Forms Action Bar
- 14. Xamarin Forms SQLite
- 15. Xamarin Forms ZXing error
- 16. Навигационная накладка Xamarin Forms
- 17. Кнопка Xamarin Forms OnClick
- 18. Xamarin forms Maps
- 19. Xamarin forms binding Label
- 20. Xamarin Forms Layout
- 21. Xamarin Forms Designer
- 22. Xamarin Forms Pill Button
- 23. Xamarin forms list view
- 24. Два ящика Xamarin Forms
- 25. Xamarin Forms Stacklayout StackOrientation.Horizontal
- 26. Xamarin Forms HttpClient GetAsync
- 27. Подзаголовок приложения xamarin forms
- 28. Xamarin Forms RelativeLayout Использование
- 29. Xamarin forms MasterDetailPage navigation
- 30. Xamarin Forms SQLite Update
TapGestureRecognizer, вероятно, самый простой, поскольку это полное изображение, которое можно сбрасывать, и кнопка может быть немного странной. Я делаю это здесь: https://github.com/jamesmontemagno/Hanselman.Forms/blob/master/Hanselman.Portable/Views/AboutPage.xaml.cs#L17-L23 – JamesMontemagno
@JamesMontemagno Я не согласен с вами. кнопка имеет событие «Click», но TapGestureRecognizer ... Как вы обрабатываете один кран, прежде чем пользователь набирает секунды и больше. Все образцы кода и Hanselman дают образец, но они не пытаются в реальной жизни. –