I've always felt that one of the coolest features of WPF and Silverlight is that the "big" controls are simply composites of smaller ones. For example, in a button, you can dig in and find borders, gradients, etc.
Another one is the scroll viewer, which has a slider, buttons, and a rectangle. But these buttons are actually RepeatButtons, a special type of button that, while the left the mouse button is held down, continues to fire the click event at a specifiable interval.
For this Silverlight control I'm working on, I needed this behavior, but with a custom layout. To do this, I overwrote the RepeatButton's template with a control template, and provided my own visuals. At the root of my control template was a grid, which laid out the rest of the constituent controls.
Although it appeared to work, I noticed that the "repeat" behavior did not. In other words, it acted like a standard button. Well, it turns out that the root element of your RepeatButton's control template has be named "Root." The following XAML demonstrates what you have to do to get a templated RepeatButton to, well, repeat:
If the Grid in Line #4 is named anything else, or not at all, the button won't repeat! I believe this is a known issue. I came across the fix here, and just wanted to pass it along. Have fun!