Я пытаюсь привязать прикрепленные свойства Canvas.Left
и Canvas.Top
к своим пользовательским свойствам X и Y, но безуспешно, я использую следующий XAML.
<Style TargetType="{x:Type layout:BankBaseControl}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type layout:BankBaseControl}">
<ContentPresenter Content="{TemplateBinding Marker}" >
<ContentPresenter.ContentTemplate>
<DataTemplate>
<Ellipse Fill="Red" Width="{Binding Width}"
Height="{Binding Height}"
Canvas.Left="{Binding X, Mode=TwoWay}"
Canvas.Top="{Binding Y, Mode=TwoWay}"/>
</DataTemplate>
</ContentPresenter.ContentTemplate>
</ContentPresenter>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Стильприменяется правильно (привязка к ширине и высоте работает правильно), но прикрепленные свойства, похоже, не учитывают значения X и Y.Я попытался сделать эту привязку из кода с:
SetBinding(Canvas.LeftProperty, new Binding("X")
{ Source = Marker, Mode = BindingMode.TwoWay });
И это сработало, но я бы очень хотел сделать это из XAML.
РЕДАКТИРОВАТЬ: Я также попытался изменить привязки в XAMLдо Canvas.Left="100" Canvas.Top="100"
, но не повезло, эллипс все равно будет отображаться в координатах 0,0.