Как изменить цвет фона кнопки в приложении UWP xbox при выборе (фокусировке) - PullRequest
0 голосов
/ 10 сентября 2018

Я хочу, чтобы цвет моей кнопки менялся, когда на кнопке есть поле выбора xbox.Как я могу этого достичь?У меня нет события в фокусе в приложении Xbox UWP.

1 Ответ

0 голосов
/ 10 сентября 2018

вам нужны события GotFocus и LostFocus для той кнопки, которую вы пытаетесь сделать.

<Button x:Name="MyButton" GotFocus="ButtonGotFocus" LostFocus="ButtonLostFocus"/>

и в коде позади вы можете изменить цвет фона соответственно. вы также можете при желании сначала проверить DeviceFamily , если хотите, чтобы поведение было только на xbox.

private void GotFocus(object sender, object args)
{
    if(AnalyticsVersionInfo.DeviceFamily == "Windows.Xbox")
    {
        //change the color when the button gets focus
        MyButton.BackgroundColor = new SolidColorBrush(Colors.Blue);
    }
}

private void LostFocus(object sender, object args)
{
    if(AnalyticsVersionInfo.DeviceFamily == "Windows.Xbox")
    {
        //change the color when the button looses focus
        MyButton.BackgroundColor = new SolidColorBrush(Colors.Green);
    }
}

подробнее о DeviceFamily свойство: https://docs.microsoft.com/en-us/uwp/api/windows.system.profile.analyticsversioninfo.devicefamily#Windows_System_Profile_AnalyticsVersionInfo_DeviceFamily

Обновление

Если вы хотите, чтобы один и тот же эффект был на всех или нескольких кнопках, просто назначьте события для каждой кнопки, на которую вы хотите воздействовать, следующим образом:

<Button x:Name="MyButton" GotFocus="ButtonGotFocus" LostFocus="ButtonLostFocus"/>
<Button x:Name="MyButton2" GotFocus="ButtonGotFocus" LostFocus="ButtonLostFocus"/>

и в бэкэнде просто введите MyButton с (отправитель как кнопка)

(sender as Button).BackgroundColor = new SolidColorBrush(Colors.Green);
...