The problem is not that the Background Setter doesn't work, it is that the ReadOnly state for the TextBox has a gray overlay.
There are two options here:
- Edit the control template for the TextBox in Expression Blend, and get rid of the overlay.
- Set IsReadOnly to false and set IsHitTestVisible to false, this will prevent editting of the TextBox without changing its Visual State.