Xamarin Forms Tap Gesture Click 对 Stack 布局的影响
Xamarin Forms Tap Gesture Click Effect on Stack layout
我想知道如何在stacklayout上实现点击效果。我有我的设计,我使用 stacklayout 和点击手势导航到其他页面。但是,当我点击它时感觉是静态的,我需要看到点击效果。
下面是我的设计
我希望在单击任何这些选项(故障、中断等)时显示效果,就像单击按钮控件时一样。
谢谢
有很多解决方案可以实现它。比如你可以直接在tap中设置StackLayout的BackgroundColor
。
private async void TapGestureRecognizer_Tapped(object sender, EventArgs e)
{
var stack = sender as StackLayout;
stack.BackgroundColor = Color.Black;
await Task.Delay(100); // delay 0.1s
stack.BackgroundColor = Color.LightBlue; // set it to the default color that you define in xaml
//do something you want
}
解决方案 2
您可以使用 nuget 中的插件 XamEffects。
用法
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:XamEffects.Sample"
xmlns:xe="clr-namespace:XamEffects;assembly=XamEffects"
x:Class="xxx.MainPage">
<StackLayout HorizontalOptions="Center"
VerticalOptions="Center"
HeightRequest="100"
WidthRequest="200"
xe:TouchEffect.Color="Red">
//put content of StackLayout here
</StackLayout >
</ContentPage>
我想知道如何在stacklayout上实现点击效果。我有我的设计,我使用 stacklayout 和点击手势导航到其他页面。但是,当我点击它时感觉是静态的,我需要看到点击效果。
下面是我的设计
我希望在单击任何这些选项(故障、中断等)时显示效果,就像单击按钮控件时一样。
谢谢
有很多解决方案可以实现它。比如你可以直接在tap中设置StackLayout的BackgroundColor
。
private async void TapGestureRecognizer_Tapped(object sender, EventArgs e)
{
var stack = sender as StackLayout;
stack.BackgroundColor = Color.Black;
await Task.Delay(100); // delay 0.1s
stack.BackgroundColor = Color.LightBlue; // set it to the default color that you define in xaml
//do something you want
}
解决方案 2
您可以使用 nuget 中的插件 XamEffects。
用法
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:XamEffects.Sample"
xmlns:xe="clr-namespace:XamEffects;assembly=XamEffects"
x:Class="xxx.MainPage">
<StackLayout HorizontalOptions="Center"
VerticalOptions="Center"
HeightRequest="100"
WidthRequest="200"
xe:TouchEffect.Color="Red">
//put content of StackLayout here
</StackLayout >
</ContentPage>