У меня есть ItemControl, который рисует тысячи эллипсов в графе рассеяния на холсте. Моя проблема заключается в том, что если я положу эллипс в координатах (4, 6) с высотой и шириной 10. Верхний левый угол эллипса находится в точке (4, 6), а форма простирается вниз и вправо.
То, что я хотел бы сделать, - это центрирование эллипсов по определенным координатам в XAML без необходимости использования настроек в моем уровне ViewModel.
Здесь работает UserControl с моим графиком:
<Grid>
<ItemsControl ItemsSource="{Binding State.Data}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas ClipToBounds="False"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemContainerStyle>
<Style TargetType="ContentPresenter">
<Setter Property="Canvas.Left" Value="{Binding Path=X}" />
<Setter Property="Canvas.Top" Value="{Binding Path=Y}" />
</Style>
</ItemsControl.ItemContainerStyle>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Ellipse Fill="Red" VerticalAlignment="Center" HorizontalAlignment="Center" Width="10" Height="20"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
Это отлично работает, за исключением нецентральных эллипсов. Любые идеи?