나는 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로 직사각형의 경계를 변환하려면 어떻게해야합니까?
나는 현재 사용하여 필요한 페이지 뷰를 얻고합니다 (page
변수는 다른 곳에서 얻을 수있다)
UIElement pageView = (UIElement)this.Items.ItemContainerGenerator.ContainerFromItem(page);
하지만 반환은 페이지 뷰의 좌표를 얻을하는 방법을 모르겠어요. Canvas.GetLeft(pageView)
을 사용하면 NaN
가 반환됩니다.
어떻게하면 pageView 경계를 얻을 수 있습니까?