У меня самое простое приложение: одно окно с одной кнопкой-переключателем:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<ToggleButton Content="This is my ToggleButton" />
</Grid>
</Window>
Когда я теперь нажимаю на кнопку переключения, на самом деле ничего не происходит. Когда я настраиваю обработчик событий для событий Checked
и Unchecked
, а затем нажимаю кнопку, сначала срабатывает Checked
, а затем Unchecked
. Так что кнопка вроде работает правильно...
Я компилирую в .NET 4.5 и использую Windows 8 RTM.
Связано ли это поведение со стилем отображения кнопок в Windows 8 (без "трехмерной" границы)? Кто-нибудь может подтвердить?
ОБНОВЛЕНИЕ 1 Я сделал изображение, чтобы показать, что я имел в виду:
Как видите, в Windows 8 "ничего не происходит" при нажатии на кнопку переключения, она просто не "переключается". Похоже, это ошибка, связанная со стилем отображения кнопок Windows 8...
ОБНОВЛЕНИЕ: 30 мая 2013 г. Доступно исправление: http://support.microsoft.com/kb/2805222
См. проблему № 5 в WPF
К сожалению, это не решает проблему для меня :(