我在网格中有一个画布,我想将画布保留在该网格上,因为它是第一个在我的程序中打开的窗口。
在我的MainWindow.xaml中,我有ContentPage
,它总是更改其内容,启动内容是authenticationPage。在这个页面中,我有Canvas
显示我的骨骼跟踪,并用于制作手势。这个gestureCanvas
位于authenticationPage
。这个gestureCanvas
背后的代码在我的MainWindow.xaml.cs上。
我需要将gestureCanvas
与我的MainWindow.xaml.cs相关联,因为代码位于MainWindow
后面,并且会在那里使用,因为它会在那里使用一个Kinect应用程序。
如何链接这些?
partial class MainWindow
{
void LoadCircleGestureDetector()
{
using (Stream recordStream = File.Open(circleKBPath, FileMode.OpenOrCreate))
{
circleGestureRecognizer.TraceTo(gesturesCanvas, Colors.Red);
}
}
}
这是我的authenticationPage
<UserControl
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:smartHome2011"
xmlns:MyUserControl="clr-namespace:MyUserControl;assembly=MyUserControl"
mc:Ignorable="d"
x:Class="smartHome2011.AuthenticationPage"
x:Name="UserControl"
d:DesignWidth="640" d:DesignHeight="480">
<Grid x:Name="LayoutRoot">
<Grid x:Name="kinectGrid" HorizontalAlignment="Left">
<Viewbox Margin="204,220,430,220">
<Grid ClipToBounds="True" Margin="204,220,430,220">
**<Canvas x:Name="gesturesCanvas" />**
<Canvas x:Name="kinectCanvas"></Canvas>
</Grid>
</Viewbox>
</Grid>
</Grid>
答案 0 :(得分:1)
在MainWindow后面的代码中,您可以尝试以下
var gesturesCanvas = YourContentPage.FindName("gesturesCanvas") as Canvas;
if (gesturesCanvas != null) {
// do something
}
希望这会有所帮助