Попробуйте изменить свой стиль следующим образом
<UserControl.Resources>
<Style
TargetType="Button"
x:Key="AddStyle">
<Setter
Property="Template">
<Setter.Value>
<ControlTemplate>
<StackPanel
Orientation="Horizontal">
<Image
Height="26"
HorizontalAlignment="Left">
<Image.Source>
<BitmapImage
UriSource="images/add.png" />
</Image.Source>
</Image>
<TextBlock
Text=" "
Height="20"
VerticalAlignment="Center" />
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
[Редактировать вдохновленный комментарием]
Вы можете создать новый UserControl, назовем его AddButtonContent, содержащим вашу Stackpanel и т. Д., А затем включить его в вашу кнопку, например:
<Button>
<local:AddButtonContent
ButtonText="Testing, one, two, three" />
</Button>
Вам нужно добавить ссылку на xmlns, называемую local (или как вы хотите ее называть), в UserControl со всеми кнопками.
Часть кода вашего AddButtonContent UserControl будет нуждаться в следующем коде, и вам нужно будет назвать ваш TextBlock (в этом примере я использовал testText).
публичная статическая DependencyProperty ButtonTextProperty =
DependencyProperty.Register ( "ButtonText",
TypeOf (строка),
TypeOf (AddButtonContent),
новые PropertyMetadata ("", onTextChangedCallback));
public string ButtonText
{
get { return (string)GetValue(ButtonTextProperty); }
set
{
SetValue(ButtonTextProperty, value);
}
}
static void onTextChangedCallback(
DependencyObject dobj,
DependencyPropertyChangedEventArgs args)
{
AddButtonContent abc = dobj as AddButtonContent;
abc.testText.Text = args.NewValue.ToString();
}