Have a look at this very simple example WPF program:
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<GroupBox>
<GroupBox.Header>
<CheckBox Content="Click Here"/>
</GroupBox.Header>
</GroupBox>
</Window>
So I have a GroupBox whose header is a CheckBox. We've all done something like this – typically you bind the content of the GroupBox in such a way that it's disabled when the CheckBox is unchecked.
However, when I run this application and click on the CheckBox, I've found that sometimes my mouse clicks are swallowed and the CheckBox's status doesn't change. If I'm right, it's when I click on the exact row of pixels that the GroupBox's top border sits on.
Can someone duplicate this? Why would this occur, and is there a way around it?
Edit: Setting the GroupBox's BorderThickness to 0 solves the problem, but obviously it removes the border, so it doesn't look like a GroupBox anymore.
Best Answer
Ian Oakes answer stuffs up the tab order such that the header comes after the content. It's possible to modify the control template such that the border can't receive focus.
To do this, modify the template so that the 2nd and 3rd borders (both in Grid Row 1) have
IsHitTestVisible=false
Complete template below