CheckBox наследуется от ButtonBase, который добавляет обработчик класса для события левой кнопки вниз (OnMouseLeftButtonDown). В документации по событию UIElement.MouseLeftButtonDown (выделено мной):
Некоторые контрольные классы могут иметь
встроенная обработка классов для мыши
события кнопки. Левая кнопка мыши
Событие вниз является наиболее вероятным событием
иметь обработку класса в элементе управления.
обработка классов часто отмечает
Основное событие класса Mouse как
обрабатываются. После того, как событие отмечено
обработаны, другие обработчики экземпляров, которые
прикреплены к этому элементу не
обычно поднимается . Любой другой класс или
обработчики экземпляров, которые прикреплены к
элементы в направлении барботирования
к корню в дереве пользовательского интерфейса
также обычно не поднимается.
Вы можете поиграть с ClickMode и установить для него ClickMode.Hover, что, по-видимому, предотвращает поведение, которое вы видите. Однако, возможно, вам придется сохранить собственную логику в вашем обработчике событий для этого конкретного экземпляра, чтобы установить правильное состояние переключения вашего флажка.
Вы также можете попробовать событие PreviewMouseLeftButtonDown. Однако пометка этого события как обработанного в вашем обработчике может иметь побочные эффекты для остальных событий MouseDown - они будут содержать обработанную информацию, что предотвратит другие обработчики экземпляров, если они не будут добавлены с AddHandler с флагом для обработки уже обработанных событий.