Witam, mam następujący problem.
Próbuję bindować w swojej własnej kontrolce w WPF kolor, którego następnie używam by uzyskać efekt Hover.
Kod C# za to odpowiedzialny wygląda tak
public static readonly DependencyProperty HoverBrushProperty = DependencyProperty.Register("HoverBrush",typeof(Color),typeof(MaterialButton), new UIPropertyMetadata(Colors.White));
public Color HoverBrush
{
get { return (Color)GetValue(HoverBrushProperty); }
set { SetValue(HoverBrushProperty, value); }
}
A binduję w sposób następujący
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="btnBorder" Property="Background">
<Setter.Value>
<SolidColorBrush Color="{Binding Path=HoverBrush, RelativeSource={RelativeSource TemplatedParent}}"/>
</Setter.Value>
</Setter>
</Trigger>
I to proszę Państwa działa. Problem jednak widzi Visual Studio, które wyrzuca następujący komunikat:
Cannot find governing FrameworkElement or FrameworkContentElement for target element. BindingExpression:Path=HoverBrush; DataItem=null; target element is 'SolidColorBrush' (HashCode=16157963); target property is 'Color' (type 'Color')
Zastanawiam się jak mógłbym pozbyć się tego komunikatu.
Próbowałem stosować się do zaleceń i zmieniać właściwość na SolidColorBrush - wtedy komunikaty znikały, ale nie działało to poprawnie.