У меня есть ItemsControl, который рисует тысячи эллипсов на диаграмме рассеяния на холсте. Моя проблема в том, что если я помещаю эллипс в координаты (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>
Он отлично работает, за исключением нецентрированных эллипсов. . Есть идеи?