Я знаю, что множественное наследование отсутствует, но есть ли способ создать оболочку для System.Windows.Point, которая может наследовать от нее, но при этом реализовывать связываемые свойства зависимостей?
I ' m пытаюсь написать код так, чтобы для моего XAML я мог без проблем создавать элементы, подобные следующему:
Это значительно упростило бы кодирование таких вещей, как полигоны, контуры, линейные сегменты и другие элементы управления.
Следующий код предоставлен как желаемое за действительное, и я понимаю, что он никоим образом не сработает, но я хочу иметь возможность делать это именно так:
public class BindablePoint: DependencyObject, Point
{
public static readonly DependencyProperty XProperty =
DependencyProperty.Register("X", typeof(double), typeof(BindablePoint),
new FrameworkPropertyMetadata(default(double), (sender, e) =>
{
BindablePoint point = sender as BindablePoint;
point.X = (double) e.NewValue;
}));
public static readonly DependencyProperty YProperty =
DependencyProperty.Register("Y", typeof(double), typeof(BindablePoint),
new FrameworkPropertyMetadata(default(double), (sender, e) =>
{
BindablePoint point = sender as BindablePoint;
point.Y = (double)e.NewValue;
}));
public new double X
{
get { return (double)GetValue(XProperty); }
set
{
SetValue(XProperty, value);
base.X = value;
}
}
public new double Y
{
get { return (double)GetValue(YProperty); }
set
{
SetValue(YProperty, value);
base.Y = value;
}
}
}