У меня очень быстрый вопрос. Я использую кнопку toggle для переключения между двумя параметрами (это может быть больше, но для простоты, давайте просто скажем две кнопки), и как только кнопка будет отмечена, я не хочу, чтобы она была снята, если только она не выбрала другую опцию (т.е. один параметр должен быть выбран все время).UWP: как предотвратить ToggleButton непроверено после его проверки
В WPF я использовал для обработки PreviewMouseLeftButtonDown, чтобы предотвратить включение кнопки переключения. Но, похоже, он не доступен в UWP.
Вот мой код до сих пор:
//in XAML
<ToggleButton x:Name="tbtnCash" Grid.Column="0" Content="CASH" IsChecked="True" IsDoubleTapEnabled="False" IsHoldingEnabled="False" IsRightTapEnabled="False" Padding="20" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Tapped="tbtnCash_Tapped"></ToggleButton>
<ToggleButton x:Name="tbtnCard" Grid.Column="1" Content="CARD" IsDoubleTapEnabled="False" IsHoldingEnabled="False" IsRightTapEnabled="False" Padding="20" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Tapped="tbtnCard_Tapped"></ToggleButton>
//In code
private void tbtnCash_Tapped(object sender, TappedRoutedEventArgs e)
{
e.Handled = true;
tbtnCash.IsChecked = true;
tbtnCard.IsChecked = false;
}
private void tbtnCard_Tapped(object sender, TappedRoutedEventArgs e)
{
e.Handled = true;
tbtnCash.IsChecked = false;
tbtnCard.IsChecked = true;
}
Теперь, если я нажал на кнопку Cash два или три раза (быстро), кнопка Cash будет безнаказанной. Кажется, что e.Handled = true;
не имеет никакого эффекта. Вы можете мне помочь?
Спасибо!
Я хотел бы попробовать что-то с установкой * IsHitTestVisible * в зависимости от ваших потребностей (например, привязка к собственности, которая проверяет все кнопки и объединить с проверенным состоянием текущей своим). – Romasz
Почему вы не используете переключатели вместо кнопок переключения? – Blackstar
Как насчет IsEnabled? Я думаю, он должен все решить. –