C# 使用Microsoft Kinect SDK幻灯片演示示例在网格中显示多个图像
我正在尝试使用MicrosoftKinect SDK幻灯片演示示例作为新项目的基础,在该项目中,我可以在网格中显示8幅图像,可以使用故事板设置动画。但是,当我运行应用程序时,不会显示任何图像。我意识到现在所有的图像都是相同的,因为每个图像都有绑定,但是我无法显示任何图像。我得到的只是一个显示网格线的空白屏幕(用于调试)。我可以用手势在面板上从一组8幅图像切换到另一组,但没有一幅图像显示出来 你能帮我看看我做错了什么吗C# 使用Microsoft Kinect SDK幻灯片演示示例在网格中显示多个图像,c#,image-processing,sdk,grid,C#,Image Processing,Sdk,Grid,我正在尝试使用MicrosoftKinect SDK幻灯片演示示例作为新项目的基础,在该项目中,我可以在网格中显示8幅图像,可以使用故事板设置动画。但是,当我运行应用程序时,不会显示任何图像。我意识到现在所有的图像都是相同的,因为每个图像都有绑定,但是我无法显示任何图像。我得到的只是一个显示网格线的空白屏幕(用于调试)。我可以用手势在面板上从一组8幅图像切换到另一组,但没有一幅图像显示出来 你能帮我看看我做错了什么吗 <Window x:Name="window" x:Class="Mic
<Window x:Name="window" x:Class="Microsoft.Samples.Kinect.Slideshow.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Slide Show" Height="735" Width="800" >
<Window.Resources>
<SolidColorBrush x:Key="MediumGreyBrush" Color="#ff6e6e6e"/>
<BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
<Storyboard x:Key="LeftAnimate">
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="previous">
<EasingDoubleKeyFrame KeyTime="0" Value="1"/>
<EasingDoubleKeyFrame KeyTime="0:0:0.4" Value="1"/>
<EasingDoubleKeyFrame KeyTime="0:0:0.5" Value="0"/>
</DoubleAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="next">
<EasingDoubleKeyFrame KeyTime="0" Value="0"/>
</DoubleAnimationUsingKeyFrames>
<ThicknessAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Margin)" Storyboard.TargetName="current">
<EasingThicknessKeyFrame KeyTime="0" Value="2000,0,-2000,0"/>
<EasingThicknessKeyFrame KeyTime="0:0:0.5" Value="0"/>
</ThicknessAnimationUsingKeyFrames>
</Storyboard>
<Storyboard x:Key="RightAnimate">
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="previous">
<EasingDoubleKeyFrame KeyTime="0" Value="0"/>
</DoubleAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="next">
<EasingDoubleKeyFrame KeyTime="0" Value="1"/>
<EasingDoubleKeyFrame KeyTime="0:0:0.4" Value="1"/>
<EasingDoubleKeyFrame KeyTime="0:0:0.5" Value="0"/>
</DoubleAnimationUsingKeyFrames>
<ThicknessAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Margin)" Storyboard.TargetName="current">
<EasingThicknessKeyFrame KeyTime="0" Value="-2000,0,2000,0"/>
<EasingThicknessKeyFrame KeyTime="0:0:0.5" Value="0"/>
</ThicknessAnimationUsingKeyFrames>
</Storyboard>
</Window.Resources>
<Grid DataContext="{Binding ElementName=window}" Margin="10 0 10 0">
<Grid.RowDefinitions>
<RowDefinition />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid>
<Grid x:Name="next" ShowGridLines="True">
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<!-- Change the binding to the correct picture or video -->
<Image Grid.Column="0" Grid.Row="0" Source="{Binding NextPicture}" Opacity="0"/>
<Image Grid.Column="1" Grid.Row="0" Source="{Binding NextPicture}" Opacity="0"/>
<Image Grid.Column="2" Grid.Row="0" Source="{Binding NextPicture}" Opacity="0"/>
<Image Grid.Column="3" Grid.Row="0" Source="{Binding NextPicture}" Opacity="0"/>
<Image Grid.Column="0" Grid.Row="1" Source="{Binding NextPicture}" Opacity="0"/>
<Image Grid.Column="1" Grid.Row="1" Source="{Binding NextPicture}" Opacity="0"/>
<Image Grid.Column="2" Grid.Row="1" Source="{Binding NextPicture}" Opacity="0"/>
<Image Grid.Column="3" Grid.Row="1" Source="{Binding NextPicture}" Opacity="0"/>
经过大量研究,我发现制作这组图像动画的最佳方法是使用StackPanel和常规故事板。与栅格相比,为Stackpanel的附着属性设置动画要容易得多 真的帮助我实现了我想要的。MSDN上的system.windows.uielement页面帮助我了解了可以更改哪些属性来操作Stackpanel 我的代码正在运行。我希望这有帮助 这是我的XAML:
<Window.Resources>
<Storyboard x:Key="SwipeRight">
<DoubleAnimationUsingKeyFrames
BeginTime="00:00:00"
Storyboard.TargetName="StackPanel1"
Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.X)">
<SplineDoubleKeyFrame KeyTime="00:00:02" Value="-800"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
<Storyboard x:Key="SwipeLeft">
<DoubleAnimationUsingKeyFrames
BeginTime="00:00:00"
Storyboard.TargetName="StackPanel1"
Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.X)">
<SplineDoubleKeyFrame KeyTime="00:00:02" Value="+400"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</Window.Resources>
<Grid x:Name="LayoutRoot">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1024" />
</Grid.ColumnDefinitions>
<StackPanel Name="StackPanel1" Margin="0,0,0,0" RenderTransformOrigin="0.5,0.5">
<StackPanel.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="1" ScaleY="1"/>
<SkewTransform AngleX="0" AngleY="0"/>
<RotateTransform Angle="0"/>
<TranslateTransform X="0" Y="0"/>
</TransformGroup>
</StackPanel.RenderTransform>
<Image Margin="0,50,0,0" Source="{Binding NextPicture}" x:Name="title" Height="150" VerticalAlignment="Top" Stretch="Uniform"></Image>
<Grid x:Name="current" ShowGridLines="True">
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<!-- Change the binding to the correct picture or video -->
<Image Grid.Column="0" Grid.Row="0" Source="{Binding Picture}" Opacity="0"/>
<Image Grid.Column="1" Grid.Row="0" Source="{Binding Picture}" Opacity="0"/>
<Image Grid.Column="2" Grid.Row="0" Source="{Binding Picture}" Opacity="0"/>
<Image Grid.Column="3" Grid.Row="0" Source="{Binding Picture}" Opacity="0"/>
<Image Grid.Column="0" Grid.Row="1" Source="{Binding Picture}" Opacity="0"/>
<Image Grid.Column="1" Grid.Row="1" Source="{Binding Picture}" Opacity="0"/>
<Image Grid.Column="2" Grid.Row="1" Source="{Binding Picture}" Opacity="0"/>
<Image Grid.Column="3" Grid.Row="1" Source="{Binding Picture}" Opacity="0"/>
</Grid>
</Grid>
<Window.Resources>
<Storyboard x:Key="SwipeRight">
<DoubleAnimationUsingKeyFrames
BeginTime="00:00:00"
Storyboard.TargetName="StackPanel1"
Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.X)">
<SplineDoubleKeyFrame KeyTime="00:00:02" Value="-800"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
<Storyboard x:Key="SwipeLeft">
<DoubleAnimationUsingKeyFrames
BeginTime="00:00:00"
Storyboard.TargetName="StackPanel1"
Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.X)">
<SplineDoubleKeyFrame KeyTime="00:00:02" Value="+400"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</Window.Resources>
<Grid x:Name="LayoutRoot">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1024" />
</Grid.ColumnDefinitions>
<StackPanel Name="StackPanel1" Margin="0,0,0,0" RenderTransformOrigin="0.5,0.5">
<StackPanel.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="1" ScaleY="1"/>
<SkewTransform AngleX="0" AngleY="0"/>
<RotateTransform Angle="0"/>
<TranslateTransform X="0" Y="0"/>
</TransformGroup>
</StackPanel.RenderTransform>
<Image Margin="0,50,0,0" Source="{Binding NextPicture}" x:Name="title" Height="150" VerticalAlignment="Top" Stretch="Uniform"></Image>