2014-10-20 75 views
0

我想旋转具有代码后面的绑定的多维数据集。在后面的代码中设置绑定

我尝试了一些东西,但在这个时刻,没有工作...

我连接的源代码,XAML和C#

代码XAML:

<Grid KeyDown="Grid_KeyDown_1" > 
    <Viewport3D Name="viewport3D1"> 
     <Viewport3D.Camera> 
      <PerspectiveCamera x:Name="camMain" Position="6 5 4" LookDirection="-6 -5 -4"> 
      </PerspectiveCamera> 
     </Viewport3D.Camera> 
     <ModelVisual3D> 
      <ModelVisual3D.Content> 
       <DirectionalLight x:Name="dirLightMain" Direction="-1,-1,-1"> 
       </DirectionalLight> 
      </ModelVisual3D.Content> 
     </ModelVisual3D> 
     <ModelVisual3D> 
      <ModelVisual3D.Content> 
       <GeometryModel3D> 
        <GeometryModel3D.Geometry> 
         <MeshGeometry3D x:Name="meshMain" 
          Positions="0 0 0 1 0 0 0 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 1 1" 
          TriangleIndices="2 3 1 2 1 0 7 1 3 7 5 1 6 5 7 6 4 5 6 2 0 2 0 4 2 7 3 2 6 7 0 1 5 0 5 4"> 
         </MeshGeometry3D> 
        </GeometryModel3D.Geometry> 
        <GeometryModel3D.Material> 
         <DiffuseMaterial x:Name="matDiffuseMain"> 
          <DiffuseMaterial.Brush> 
           <SolidColorBrush Color="Red"/> 
          </DiffuseMaterial.Brush> 
         </DiffuseMaterial> 
        </GeometryModel3D.Material> 
       </GeometryModel3D> 
      </ModelVisual3D.Content> 
      <ModelVisual3D.Transform> 
       <RotateTransform3D> 
        <RotateTransform3D.Rotation> 
         <AxisAngleRotation3D x:Name="rotate" Axis="0 1 0"/> 
        </RotateTransform3D.Rotation> 
       </RotateTransform3D> 
      </ModelVisual3D.Transform> 
     </ModelVisual3D> 
     </Viewport3D> 

     <Slider Grid.Row="1" Minimum="0" Maximum="360" Orientation="Horizontal" 
Value="{Binding ElementName=rotate, Path=Angle}" ></Slider> 

    </Grid> 

代码C#:

private void Grid_KeyDown_1(object sender, KeyEventArgs e) 
    { 
     if(Keyboard.IsKeyDown(Key.S)) 
     { 
      Binding binding = new Binding { 
      Source=rotate, 
      Path=new PropertyPath("Angle") 
      }; 


     } 

    } 

滑块工作corect的绑定,我想按“S”旋转立方体

+0

我不认为你明白的联结概念。你的虚拟机应该包含一个proerpty Rotation,你的关键事件应该修改它。当你有绑定时,你没有代码隐藏。 – 2014-10-20 13:12:18

+0

我认为你是对的 – user3094445 2014-10-20 13:18:52

回答

0

在代码中使用依赖属性的背后是这样

public double Angle 
{ 
    get { return (double)GetValue(AngleProperty); } 
    set { SetValue(AngleProperty, value); } 
} 
public static readonly DependencyProperty AngleProperty = 
    DependencyProperty.Register("Angle", typeof(double), typeof(MyClass), new PropertyMetadata(0.0)); 

,然后绑定旋转,与其。

然后在你的键盘处理,你可以增加角度,这样的事情:

Angle = (Angle + 1.0) % 360.0 
相关问题