【发布时间】:2015-07-20 03:22:06
【问题描述】:
我的MainPage 中有一个FlipView。它是ItemTemplate 绑定到一个名为landscapeControl 的UserControl。它的ItemsSource 绑定到一个名为MyLandscape 的类的列表。
景观控制:
<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类:
public class MyLandscape
{
public ImageSource firstImage { get; set; }
public ImageSource nextImage { get; set; }
public Canvas inkCanvas { get; set; }
}
我的图像显示完美。我想要的只是三件事:
1) 我想从我的MainPage 访问我的Canvas。我试图在flipView_SelectionChanged 事件中做到这一点:
landscapeControl pc = flipView1.SelectedItem as landscapeControl;
if (flipView1.Items.Count > 0)
{
var myCanvas = pc.getCanvas();
m_CanvasManager = new CanvasManager(myCanvas);
}
但是 pc 变量始终为空!我想绑定我的Canvas,所以我每两张图片都有一个Canvas?
那可能吗?
【问题讨论】:
-
在您的 flipView_SelectionChanged 事件中,您可以调用 e.AddedItems 吗?如果是这样,请更改您的代码: if (flipView1.Items.Count > 0) { var myCanvas = pc.getCanvas(); m_CanvasManager = 新 CanvasManager(myCanvas); } to if (e.AddedItems.Count > 0) { var myCanvas = (e.AddedItems as LandscapeControl).getCanvas(); m_CanvasManager = 新 CanvasManager(myCanvas); }
标签: c# canvas windows-store-apps windows-8.1