Я пытаюсь связать присоединенные свойства 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.
{Binding}
работало, Источник должен быть свойством зависимости. - person Bek Raupov   schedule 12.07.2011Canvas.Left="100" Canvas.Top="100"
, но не повезло, эллипс все равно отображался на координатах 0,0. - person So Many Goblins   schedule 12.07.2011