我有一个移动应用程序,一旦我按下一个按钮,我想更改按钮的边框。我设法做到了,但是只有当我两次单击第一个按钮,然后其余的都工作良好时,它才起作用。所有按钮都相同,只是名称不同
这是按钮的代码
protected void EnglishToCzech_Clicked(object sender, EventArgs e)
{
Button englishToCzech = (Button)sender;
if (englishToCzech.BorderColor.Equals(Color.Default))
{
englishToCzech.BorderColor = Color.FromHex("#da2c43");
czechToEnglish.BorderColor = Color.Default;
english.BorderColor = Color.Default;
}
else
englishToCzech.BorderColor = Color.Default;
}
这是xaml
<Button x:Name="englishToCzech" Grid.Column="2" Text="{ grial:Translate A_ButtonEnglishToCzech}" Style="{ StaticResource CircleActionButtonFlatStyle }" FontSize="14" WidthRequest="50" HeightRequest="50" CornerRadius="30" BorderWidth="2" Clicked="EnglishToCzech_Clicked"/>
有没有一种方法可以在代码中将其设置为用户必须多次按下按钮才能使其在第一次单击时起作用?
答案 0 :(得分:0)
调试代码。在EnglishToCzech_Clicked
中放置一个断点,并确保每次单击都使用此方法。在第一次执行期间,将鼠标悬停在englishToCzech.BorderColor
上,然后看一下值是什么。 BorderColor可能不是Color.Default,因此将其设置为Color.Default。这就是为什么它第二次起作用的原因。