Ich habe einen Button-Steuerelement-Stil und ich möchte das Padding von dem ändern, was die datengebundene Version für ein Glyph, das einen 2-Pixel-Offset benötigt, anpassen. Ich werde verwenden SimpleButton- von SimpleStyles.xaml als Beispiel (... zeigt, wo der Trigger-Code wurde für Prägnanz entfernt):Können Sie "Mathe" in WPF-Formatvorlagen verwenden, die datengebunden sind
<Style x:Key="SimpleButton" TargetType="{x:Type Button}" BasedOn="{x:Null}">
<Setter Property="FocusVisualStyle" Value="{DynamicResource SimpleButtonFocusVisual}"/>
<Setter Property="Background" Value="{DynamicResource NormalBrush}"/>
<Setter Property="BorderBrush" Value="{DynamicResource NormalBorderBrush}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<!-- We use Grid as a root because it is easy to add more elements to customize the button -->
<Grid x:Name="Grid">
<Border x:Name="Border" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Padding="{TemplateBinding Padding}"/>
<!-- Content Presenter is where the text content etc is placed by the control. The bindings are useful so that the control can be parameterized without editing the template -->
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" RecognizesAccessKey="True"/>
</Grid>
...
</Setter.Value>
</Setter>
</Style>
Was ich tun möchte, ist etwas mehr Spielraum hinzuzufügen, wo Padding = "{Template Polsterung}". Etwas wie Padding = "{TemplateBinding Padding} + 2,0,0,0".
Gibt es eine XAML-Syntax dazu? Wenn nicht, gibt es einen besten Ansatz, wenn Sie dies in Code (Decorator?) Tun?
Können Sie ein Beispiel mit einem Wertkonverter, um diese Mathe zu tun - es scheint eher wie Missbrauch für mich. –