2
我想完成以下內容。ItemsControl現有的畫布內
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>
並設置POIPresenter的的ItemsSource在後面的代碼,但用戶控件上左側彼此的頂部上顯示(在0,0)。
我試着移動ItemsPanelTemplate內的畫布聲明,但然後我的聲明設置圖像的比例/中心不起作用 - 他們無法找到PanoCanvas控件。
任何人都可以指出我在這裏擰的痛苦明顯的事情嗎?
在此先感謝。
這就是我所嘗試的(簡化了ItemsPanelTemplate中的畫布),但後來我無法從後面的代碼中引用它。我會再給它一次 - 也許我做錯了...... – ZombieSheep
好吧,忘了 - 你不能輕易地引用它,因爲它是由'ItemsPanelTemplate'生成的。你必須使用像VisualTreeHelper這樣的東西來獲取它。你的主要問題呢?這是一個有約束力的問題? –
我在輸出窗口中看不到任何內容,其他屬性在控件本身中按預期進行綁定。 – ZombieSheep