Я пытаюсь создать специальную кнопку, которая окрашивает изображение на основе цвета переднего плана из системы. Решение, по-видимому, заключается в использовании изображения в качестве маски непрозрачности для получения цвета, и оно работает, когда я устанавливаю изображение прямо так:
<Grid>
<Rectangle x:Name="ImageForeground" Height="48" Width="48"
Fill="{StaticResource PhoneForegroundBrush}" >
<Rectangle.OpacityMask>
<ImageBrush Stretch="Fill" ImageSource="/icons/play.png"/>
</Rectangle.OpacityMask>
</Rectangle>
</Grid>
Но как только я попробую шаблон это с DependencyProperty для изображения Lite это:
public static readonly DependencyProperty ImageProperty =
DependencyProperty.Register("Image", typeof(ImageSource),
typeof(RButton), null);
А потом в XAML вот так:
<Grid>
<Rectangle x:Name="ImageForeground" Height="48" Width="48"
Fill="{TemplateBinding Foreground}" >
<Rectangle.OpacityMask>
<ImageBrush Stretch="Fill" ImageSource="{TemplateBinding Image}"/>
</Rectangle.OpacityMask>
</Rectangle>
</Grid>
Я получаю сообщение об ошибке:
object of type 'System.Windows.CustomDependencyProperty'
cannot be converted to type 'System.Windows.DependencyProperty'
С ImageProperty все в порядке, так как я тестировал привязку его к изображению, как это
<Image Source="{TemplateBinding Image}" Width="48" Height="48" />
Есть идеи? Моя догадка говорит о том, как я определяю свой DependecyProperty, но я не знаю, как двигаться дальше.