Вы можете использовать пользовательский шаблон данных:
<Button>
<Button.ContentTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="1" />
<TextBlock Text="2" />
<TextBlock Text="3" />
</StackPanel>
</DataTemplate>
</Button.ContentTemplate>
</Button>
Вы можете поменять или изменить макет, изменив StackPanel.
Если это должен быть стиль, вы можете использовать:
<Style TargetType="Button">
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding One}" />
<TextBlock Text="{Binding Two}" />
<TextBlock Text="{Binding Three}" />
</StackPanel>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
А затем вам нужно определить собственный класс для передачи трех значений следующим образом:
public class MyClass {
public string One { get; set; }
public string Two { get; set; }
public string Three { get; set; }
}
А затем используйте его так:
<Button>
<local:MyClass One="1" Two="2" Three="3" />
</Button>
Где local относится к пространству имен MyClass.