Ну, это работает, хотя это не самое гибкое решение:
<Button>
<Button.OpacityMask>
<VisualBrush>
<VisualBrush.Visual>
<Grid Width="{Binding Path=ActualWidth, RelativeSource={RelativeSource FindAncestor, AncestorType=Button, AncestorLevel=1}}" Height="{Binding Path=ActualHeight, RelativeSource={RelativeSource FindAncestor, AncestorType=Button, AncestorLevel=1}}">
<Ellipse Fill="White" />
</Grid>
</VisualBrush.Visual>
</VisualBrush>
</Button.OpacityMask>
</Button>
По сути, вы просто указываете элементу управления кнопки, чтобы отображались только те части, которые перекрываются с эллипсом в OpacityMask, который является визуальнымкисть в этом случае.Для быстрого и грязного решения это будет работать, хотя я думаю, что лучшим вариантом будет просто скопировать шаблон элемента управления по умолчанию из здесь (msdn) и слегка адаптировать его к вашему использованию.Поместите его в файл ресурсов и держите его так хорошо отделенным.