ich eine GeometryDrawing als Button-Symbol verwenden möchten, in einem Control, und ich will seine Brush
Eigenschaft auf die Foreground
Eigenschaft der Schaltfläche gebunden sein, aber es funktioniert nicht. Auf der anderen Seite, wenn ich den Pinsel explizit setze, funktioniert es.Template arbeiten nicht in einem DrawingImage in einem Button Style
Hier ist meine (ohne Funktion) Code:
<Style x:Key="SimpleButtonStyle" TargetType="{x:Type Button}">
<Setter Property="Background" Value="LightGray"/>
<Setter Property="Foreground" Value="Black"/>
<Setter Property="BorderThickness" Value="2"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border x:Name="border"
BorderBrush="{TemplateBinding Foreground}"
BorderThickness="{TemplateBinding BorderThickness}"
Background="{TemplateBinding Background}"
SnapsToDevicePixels="true">
<StackPanel Orientation="Vertical">
<Image x:Name="buttonImage" Height="20" Width="20">
<Image.Source>
<DrawingImage>
<DrawingImage.Drawing>
<!-- line below does not work -->
<GeometryDrawing Brush="{TemplateBinding Foreground}">
<GeometryDrawing.Geometry>
<EllipseGeometry RadiusX="15" RadiusY="15"/>
</GeometryDrawing.Geometry>
</GeometryDrawing>
</DrawingImage.Drawing>
</DrawingImage>
</Image.Source>
</Image>
<ContentPresenter x:Name="contentPresenter"/>
</StackPanel>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Nun, aus irgendeinem seltsamen Grund, 'Pinsel = "{Binding Foreground, RelativeSource = {RelativeSource TemplatedParent}}" funktioniert. Dies ist in anderen Antworten relativ gut dokumentiert. Könnte das zumindest jemand näher ausführen? Ich würde gerne eine Antwort mit ein paar nützlichen Informationen akzeptieren ... – heltonbiker