C# Xaramin.forms按钮Isenable失败
我是新来的沙拉明。我正在设计一个智力竞赛游戏。我想在用户单击按钮后将其禁用,以防止用户再次选择它。我试着使用Isenable,但它不起作用。 如果我没有写代码,请指出C# Xaramin.forms按钮Isenable失败,c#,xamarin,button,disable,C#,Xamarin,Button,Disable,我是新来的沙拉明。我正在设计一个智力竞赛游戏。我想在用户单击按钮后将其禁用,以防止用户再次选择它。我试着使用Isenable,但它不起作用。 如果我没有写代码,请指出 XAML CODE <StackLayout> <StackLayout> <Button x:Name="C11" Text="$1" WidthRequest="50" HeightRequest
XAML CODE
<StackLayout>
<StackLayout>
<Button x:Name="C11" Text="$1" WidthRequest="50" HeightRequest="100" Clicked="C11_Clicked" />
<Button x:Name="C12" Text="$1" WidthRequest="50" HeightRequest="100" Clicked="C12_Clicked"/>
</StackLayout>
</StackLayout>
更新部分
private void continue_Clicked(object sender, EventArgs e)
{
MainPage m = new MainPage();
m.C11btn.IsEnabled = false;
Preferences.Set("ButtonEnableFlag", false);
Navigation.PushModalAsync(new MainPage());
}
protected override void OnAppearing()
{
base.OnAppearing();
var enableValue = Preferences.Get("ButtonEnableFlag", true);
MainPage m = new MainPage();
m.C11btn.IsEnabled = enableValue;
}
请问如何永久禁用该按钮
如果要永久禁用按钮,需要在设备中保存一个自定义状态标志。下次进入此视图时,此自定义状态标志将以编程方式禁用按钮
例如,我们可以使用来sace自定义状态标志并覆盖出现的方法,如下所示:
public partial class PageThird : ContentPage
{
public PageThird()
{
InitializeComponent();
}
private void Button_Clicked(object sender, EventArgs e)
{
MyButton.IsEnabled = false;
Preferences.Set("ButtonEnableFlag", false);
}
protected override void OnAppearing()
{
base.OnAppearing();
var enableValue = Preferences.Get("ButtonEnableFlag", true);
MyButton.IsEnabled = enableValue;
}
}
以下是此页面的Xaml代码:
<ContentPage.Content>
<StackLayout Padding="20">
<Label Text="Welcome to PagePersonal!"
VerticalOptions="CenterAndExpand"
HorizontalOptions="CenterAndExpand" />
<Button x:Name="MyButton" Text="Disable" Clicked="Button_Clicked"/>
</StackLayout>
</ContentPage.Content>
然后它就可以工作了,不需要在需要的页面中更改代码
请问如何永久禁用该按钮
如果要永久禁用按钮,需要在设备中保存一个自定义状态标志。下次进入此视图时,此自定义状态标志将以编程方式禁用按钮
例如,我们可以使用来sace自定义状态标志并覆盖出现的方法,如下所示:
public partial class PageThird : ContentPage
{
public PageThird()
{
InitializeComponent();
}
private void Button_Clicked(object sender, EventArgs e)
{
MyButton.IsEnabled = false;
Preferences.Set("ButtonEnableFlag", false);
}
protected override void OnAppearing()
{
base.OnAppearing();
var enableValue = Preferences.Get("ButtonEnableFlag", true);
MyButton.IsEnabled = enableValue;
}
}
以下是此页面的Xaml代码:
<ContentPage.Content>
<StackLayout Padding="20">
<Label Text="Welcome to PagePersonal!"
VerticalOptions="CenterAndExpand"
HorizontalOptions="CenterAndExpand" />
<Button x:Name="MyButton" Text="Disable" Clicked="Button_Clicked"/>
</StackLayout>
</ContentPage.Content>
然后它就可以工作了,不需要在需要的页面中更改代码
您好,根据共享代码,首次禁用按钮没有问题。但是如果导航到下一页,后退时按钮将不会被禁用。@JuniorJiang MSFT我可以问一下如何永久禁用按钮吗?是的,您可以。我已经更新了答案,你有时间可以看一下。如果回复有帮助,请不要忘记接受它作为答案(单击✔ 在这个答案的左上角)并投票,它将帮助其他有类似问题的人。嗨,从共享代码来看,第一次禁用按钮没有问题。但是如果导航到下一页,后退时按钮将不会被禁用。@JuniorJiang MSFT我可以问一下如何永久禁用按钮吗?是的,您可以。我已经更新了答案,你有时间可以看一下。如果回复有帮助,请不要忘记接受它作为答案(单击✔ 在这个答案的左上角)和投票,这将有助于其他谁有类似的问题。对不起,我没有明确的问题,我想让按钮永久禁用使用另一页。cs文件,这仍然是可能的???我试着编写你提供的代码,但它不起作用。谢谢你的回答。我已经更新了我的问题above@JUSTINCHUA嗨,有可能。如果您理解我的共享代码,那是肯定的。您可以在其他页面上设置状态标志,当您返回到所需页面时,它将起作用。我会更新答案,你有时间的时候可以看一下。你好。我已经试过了你发布的第一个示例,我已经试过了。是的,这是工作。但在我的例子中,我在同一页上有几个按钮,但我不想同时禁用它。而且似乎不可能在一个页面上有多个覆盖类。@JUSTINCHUA嗨,你能解释一下你的需要吗?从这个问题上,我只知道你想禁用一个按钮,后来说需要从另一个页面禁用它。您在问题中没有解释有关场景的详细信息。有很多方法可以禁用另一个页面的按钮,我的共享答案就是其中之一。您还可以使用MVVM绑定IsEnabled
属性来实现这一点,它将用于一个页面中的多个按钮。对不起,我没有明确说明问题,我想使用另一个page.cs文件永久禁用按钮,这是否仍然可行???我试着编写你提供的代码,但它不起作用。谢谢你的回答。我已经更新了我的问题above@JUSTINCHUA嗨,有可能。如果您理解我的共享代码,那是肯定的。您可以在其他页面上设置状态标志,当您返回到所需页面时,它将起作用。我会更新答案,你有时间的时候可以看一下。你好。我已经试过了你发布的第一个示例,我已经试过了。是的,这是工作。但在我的例子中,我在同一页上有几个按钮,但我不想同时禁用它。而且似乎不可能在一个页面上有多个覆盖类。@JUSTINCHUA嗨,你能解释一下你的需要吗?从这个问题上,我只知道你想禁用一个按钮,后来说需要从另一个页面禁用它。您在问题中没有解释有关场景的详细信息。有很多方法可以禁用另一个页面的按钮,我的共享答案就是其中之一。您还可以使用MVVM绑定IsEnabled
属性来实现这一点,它将用于一个页面中的多个按钮。