I would like to change the shape of a WPF button from the default round rectangle to another shape (say, an arrow), but I want to keep the rest of the styling -- fill color,
Make a copy of the default Button Template, and simply change the default panel to your own custom shape.
In the case of the button, it looks like you need to replace the Border with something like a Path defining an Arrow.
Since a Path doesn't have content, you'll probably have to put both the shape and the content in another panel which allows objects to overlap, such as a Grid.
So your end result will look something like this
instead of the default