Hi,
erstmal Danke für deine schnelle Antwort. Habe es auch schon mit einem TemplateBinding versucht, aber dann bekomme ich folgende Fehlermeldung, mit der ich leider nicht viel anfangen kann...
XML-Daten
1:
| <GradientStop Offset="1" Color="{TemplateBinding BorderBrush}"/> |
Zitat: |
Cannot convert the value in attribute 'Color' to object of type ''. Error at object 'System.Windows.Media.GradientStop' in markup file 'WpfApplication1;component/Skin.xaml' Line 18 Position 58. |
Zitat: |
Dein Binding sucht in allen Parent-Elementen bis hinauf zum Window nach einem Button und nicht in dem Element selbst. Das würde jedenfalls passieren, wenn das Binding im Control selbst steckt, bin mir gerade nicht ganz sicher, ob das wirklich auch in einem Template passieren würde |
Soweit ich weiß, passiert das in einem Template nicht, denn an anderen Stellen im Code funktioniert es einwandfrei. Zum Beispiel hier:
XML-Daten
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| <ControlTemplate x:Key="horizontalSliderTemplate" TargetType="Slider"> <Grid>
[ ... ]
</Grid> <ControlTemplate.Triggers> <Trigger Property="IsMouseOver" Value="True"> <Setter TargetName="Border" Property="Background" Value="{Binding Path=BorderBrush, RelativeSource={RelativeSource AncestorType={x:Type Slider}}}"/> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> |
Nur innerhalb eines RadialGradientBrushes funktioniert das mit dem Binding aus irgendeinem Grund nicht. Benutze die Express Edition 2008 Beta, vielleicht handelt es sich ja noch um einen Bug. Kannst es ja mal bei dir ausprobieren.
Mfg Exploiter