Ich habe eine FlipView
in meinem MainPage
. Es ist ItemTemplate
gebunden an eine UserControl
namens landscapeControl
. Es ist ItemsSource
ist an eine Liste einer Klasse namens MyLandscape
gebunden.Zugriff auf einen Canvas in einer ItemsSource in einem UserControl, von der MainPage
landscapeControl:
<Grid>
<ScrollViewer x:Name="LScrollViewer" MaxZoomFactor="2.0" MinZoomFactor="1.0" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden" DoubleTapped="LScrollViewer_DoubleTapped" >
<Canvas x:Name="inkCanvas" Background="Transparent">
<StackPanel x:Name="LStackPanel" Orientation="Horizontal" Margin="0,0,0,0">
<Image x:Name="LImage0" HorizontalAlignment="Right" Source="{Binding firstImage}" Width="570"/>
<Image x:Name="LImage1" HorizontalAlignment="Left" Source="{Binding nextImage}" Width="570"/>
</StackPanel>
</Canvas>
</ScrollViewer>
</Grid>
MyLandscape
Klasse:
public class MyLandscape
{
public ImageSource firstImage { get; set; }
public ImageSource nextImage { get; set; }
public Canvas inkCanvas { get; set; }
}
Meine Bilder perfekt zeigen. Alles, was ich will, ist 3 Dinge:
1) Ich möchte auf meine Canvas
von meinem MainPage
zugreifen. Ich versuche, dies in flipView_SelectionChanged
Ereignis zu tun:
landscapeControl pc = flipView1.SelectedItem as landscapeControl;
if (flipView1.Items.Count > 0)
{
var myCanvas = pc.getCanvas();
m_CanvasManager = new CanvasManager(myCanvas);
}
aber der PC Variable ist immer null! Ich möchte meine Canvas
binden, also habe ich eine Canvas
für jeweils zwei Bilder? Ist das möglich?
in Ihrem flipView_SelectionChanged-Ereignis, können Sie e.AddedItems aufrufen? Wenn ja, ändern Sie den Code: if (flipView1.Items.Count> 0) { var myCanvas = pc.getCanvas(); m_CanvasManager = neuer CanvasManager (myCanvas); } bis if (e.AddedItems.Anzahl> 0) { var myCanvas = (e.AddedItems als LandscapeControl) .getCanvas(); m_CanvasManager = neuer CanvasManager (myCanvas); } –