Центральный эллипс WPF в X, Y

У меня есть 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>

Он отлично работает, за исключением нецентрированных эллипсов. . Есть идеи?

18
задан bufferz 24 March 2011 в 17:11
поделиться