У меня есть следующая структура в XAML:
<Grid>
<ItemsControl x:Name="Items" ItemsSource="{Binding Path=Pages}" Grid.Row="0" Grid.Column="0">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Vertical" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<!-- Display a white page for each page item -->
<local:PageView Margin="0, 25, 0, 0" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<!-- Layer used for displaying preview of drawn shape -->
<local:PreviewLayer x:Name="PreviewLayer" Grid.Row="0" Grid.Column="0"/>
</Grid>
Клиент будет рисовать на слое предварительного просмотра форму, пусть будет прямоугольник.После завершения рисования фигура будет добавлена на страницу ниже фигуры.
Моя проблема в том, что X, Y полученного прямоугольника находится в системе координат PreviewLayer.Как я могу преобразовать границы прямоугольника из PreviewLayer в PageView?
В настоящее время я получаю необходимый pageView с помощью (переменная page
получена в другом месте)
UIElement pageView = (UIElement)this.Items.ItemContainerGenerator.ContainerFromItem(page);
Но я не знаю, как вернуть координаты pageView.Использование Canvas.GetLeft(pageView)
возвращает NaN
.
Как получить границы pageView?