Я пытаюсь выполнить следующее.
1) На моей странице есть элемент управления холстом с масштабируемым и панорамируемым фоновым изображением. Это работает нормально с тем, что у меня есть. 2) Отобразите набор элементов управления на холсте. Предполагается, что это будет похоже на то, как главная страница Bing отображает горячие точки на показанном там изображении. Элементы управления должны перемещаться по холсту при панорамировании/масштабировании изображения.
Я пробовал следующее
<Canvas Name="PanoCanvas" >
<Canvas.Background>
<ImageBrush x:Name="PanoImage" ImageSource="/Images/OtherImages/PanoBackound.jpg" Stretch="None" />
</Canvas.Background>
<ItemsControl Name="POIPresenter">
<ItemsControl.ItemTemplate>
<DataTemplate>
<uc:PointOfInterest />
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemContainerStyle>
<Style TargetType="ContentPresenter">
<Setter Property="Canvas.Top" Value="{Binding TopPosition}" />
<Setter Property="Canvas.Left" Value="{Binding LeftPosition}" />
</Style>
</ItemsControl.ItemContainerStyle>
</ItemsControl>
</Canvas>
и установите ItemsSource POIPresenter в коде позади, но пользовательские элементы управления отображаются друг над другом слева (в 0,0).
Я попытался переместить объявления холста внутри ItemsPanelTemplate, но тогда мои объявления для установки масштаба/центра изображения не работают - они не могут найти элемент управления PanoCanvas.
Может ли кто-нибудь указать на до боли очевидную вещь, которую я здесь делаю, пожалуйста?
Заранее спасибо.