嗨,我如何在查看按钮中扩展自定义解决方案?
我不会扩展这个:
....
<Button BackgroundColor="#388fee" BorderColor="#388fee" BorderRadius="25" WidthRequest="50" HeightRequest="50"
Command="{Binding CheckinShareCommand}" Margin="0,16">
<Button.Image>
<FileImageSource File="googlemap_view_share_button.png" />
</Button.Image>
</Button>
....
这是我的自定义解决方案。
当您按下图像时,它会放大
公共(public)类CustomImage:图像
{
公共(public)静态只读BindableProperty CommandProperty = BindableProperty.Create(p => p.Command,null);
公共(public)ICommand命令
{
get {return(ICommand)GetValue(CommandProperty); }
设置{SetValue(CommandProperty,value); }
}
public static readonly BindableProperty CommandParameterProperty = BindableProperty.Create<CustomImage, object>(p => p.CommandParameter, null);
public object CommandParameter
{
get { return (object)GetValue(CommandParameterProperty); }
set { SetValue(CommandParameterProperty, value); }
}
private ICommand TransitionCommand
{
get
{
return new Command(async () =>
{
this.AnchorX = 0.48;
this.AnchorY = 0.48;
await this.ScaleTo(2.8, 50, Easing.Linear);
await Task.Delay(100);
await this.ScaleTo(1, 50, Easing.Linear);
if (Command != null)
{
Command.Execute(CommandParameter);
}
});
}
}
public CustomImage()
{
Initialize();
}
public void Initialize()
{
GestureRecognizers.Add(new TapGestureRecognizer()
{
Command = TransitionCommand
});
....
最佳答案
如果您想在按下图像时放大图像,请尝试以下代码:
public class CustomButton : Button
{
public CustomButton() : base()
{
const int _animationTime = 10;
Clicked += async (sender, e) =>
{
try
{
var btn = (CustomButton)sender;
await btn.ScaleTo(1.2, _animationTime);
await btn.ScaleTo(1, _animationTime);
}
catch (Exception ex)
{
ex.Track();
}
};
}
}
Xaml
<userControls:CustomButton BackgroundColor="#388fee" BorderColor="#388fee" BorderRadius="25" WidthRequest="50" HeightRequest="50"
Command="{Binding CheckinShareCommand}" Margin="0,16">
<Button.Image>
<FileImageSource File="googlemap_view_share_button.png" />
</Button.Image>
</userControls:CustomButton>
不要忘记将这一行放在标题中
xmlns:userControls="clr-namespace:YourNameSpace.UserControls"