Это работает:
<VisualBrush x:Key="Alarm-Light">
<VisualBrush.Visual>
<Canvas>
<Path Fill="{Binding RelativeSource={RelativeSource AncestorType={x:Type Window}}, Path=AlarmFill}" Data="M12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22M12,7L7,12H10V16H14V12H17L12,7Z" />
</Canvas>
</VisualBrush.Visual>
</VisualBrush>
С этим кодом:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
AlarmFill = new SolidColorBrush(Colors.Blue);
}
/// <summary>
/// Gets or Sets AlarmFill Dependency Property
/// </summary>
public Brush AlarmFill
{
get { return (Brush)GetValue(AlarmFillProperty); }
set { SetValue(AlarmFillProperty, value); }
}
public static readonly DependencyProperty AlarmFillProperty =
DependencyProperty.Register("AlarmFill", typeof(Brush), typeof(MainWindow), new PropertyMetadata(null));
}
Или вот этим:
<VisualBrush x:Key="Alarm-Light">
<VisualBrush.Visual>
<Canvas>
<Path Fill="{Binding RelativeSource={RelativeSource AncestorType={x:Type Window}}, Path=DataContext.AlarmFill}" Data="M12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22M12,7L7,12H10V16H14V12H17L12,7Z" />
</Canvas>
</VisualBrush.Visual>
</VisualBrush>
С этим кодом:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
DataContext = this;
AlarmFill = new SolidColorBrush(Colors.Blue);
}
/// <summary>
/// Gets or Sets AlarmFill Dependency Property
/// </summary>
public Brush AlarmFill
{
get { return (Brush)GetValue(AlarmFillProperty); }
set { SetValue(AlarmFillProperty, value); }
}
public static readonly DependencyProperty AlarmFillProperty =
DependencyProperty.Register("AlarmFill", typeof(Brush), typeof(MainWindow), new PropertyMetadata(null));
}