公告栏
  存平等心,行方便事,则天下无事。怀慈悲心,做慈悲事,则心中太平。
  转载文章请注明出处。谢谢您的尊重! 
  前两天博客被注入了,已修复,谴责无聊之人。
相 册
搜 索
WPF 3D 翻盘抽奖程序
由于需要做几个抽奖程序,是抽奖程序,做的酷炫华丽必不可少。不太熟悉flash,因此放弃;如果用silverlight做,需要在网页中呈现,不方便,放弃;自己熟悉的技术只有Winform和WPF了。做了一番之后,发现要想用Winform实现比较酷炫华丽的效果真的很困难,而WPF相对简单多了。既然做就做成最酷的,用立方体呈现翻盘,表面布上卡通画的纹理,鼠标移动到立方体上,立方体旋转,触发声音,用徐徐展开的画卷并伴随着音乐呈现结果是个不错的创意。
最终结果如图:


展开后如图:


XAML定义按钮模板实现立方体按钮。
按钮触发后改变按钮样式并禁用按钮。
核心代码:
<Viewport3D>
    
<Viewport3D.Camera>
        
<PerspectiveCamera Position="2.9,2.9,2.9" LookDirection="-1,-1,-1" />
    
</Viewport3D.Camera>
    
<Viewport3D.Children>
        
<ModelVisual3D>
            
<ModelVisual3D.Content>
                
<DirectionalLight Direction="-0.3,-0.4,-0.5" />
            
</ModelVisual3D.Content>
        
</ModelVisual3D>
        
<ModelVisual3D>
            
<ModelVisual3D.Transform>
                
<RotateTransform3D>
                    
<RotateTransform3D.Rotation>
                        
<AxisAngleRotation3D Axis="0,1,0" Angle="0" />
                    
</RotateTransform3D.Rotation>
                
</RotateTransform3D>
            
</ModelVisual3D.Transform>
            
<ModelVisual3D.Content>
                
<GeometryModel3D>
                    
<GeometryModel3D.Material>
                        
<DiffuseMaterial>
                            
<DiffuseMaterial.Brush>
                                
<VisualBrush ViewportUnits="Absolute" Transform="1,0,0,-1,0,1">
                                    
<VisualBrush.Visual>
                                        
<Border Background="{Binding Path=Background, RelativeSource='{RelativeSource TemplatedParent}'}">
                                            
<Label Content="{Binding Path=Content, RelativeSource='{RelativeSource TemplatedParent}'}" />
                                        
</Border>
                                    
</VisualBrush.Visual>
                                
</VisualBrush>
                            
</DiffuseMaterial.Brush>
                        
</DiffuseMaterial>
                    
</GeometryModel3D.Material>
                    
<GeometryModel3D.Geometry>
                        
<MeshGeometry3D
                
Positions="1,1,-1 1,-1,-1 -1,-1,-1 -1,1,-1 1,1,1 -1,1,1 -1,-1,1 1,-1,1 1,1,-1 1,1,1 1,-1,1 1,-1,-1 1,-1,-1 1,-1,1 -1,-1,1 -1,-1,-1 -1,-1,-1 -1,-1,1 -1,1,1 -1,1,-1 1,1,1 1,1,-1 -1,1,-1 -1,1,1"
                TriangleIndices
="0 1 2 0 2 3 4 5 6 4 6 7 8 9 10 8 10 11 12 13 14 12 14 15 16 17 18 16 18 19 20 21 22 20 22 23"
                TextureCoordinates
="0,1 0,0 1,0 1,1 1,1 -0,1 0,-0 1,0 1,1 -0,1 0,-0 1,0 1,0 1,1 -0,1 0,-0 -0,0 1,-0 1,1 0,1 1,-0 1,1 0,1 -0,0"/>
                    
</GeometryModel3D.Geometry>
                
</GeometryModel3D>
            
</ModelVisual3D.Content>
        
</ModelVisual3D>
    
</Viewport3D.Children>
</Viewport3D>
王小云 @ 2009-3-8 10:57:28
真好看,很牛。
崇拜你很久了。
shixiongyan @ 2009-4-14 14:59:46
很漂亮,最近开始研究WPF,还请不吝赐教,谢谢了,要有源码研究一番就好了
dawn @ 2009-4-27 10:13:28
楼主真的太牛啦,怎么练成的啊,指点指点像我这样的小菜吧……
Jack @ 2009-12-4 15:34:13
向LX学习。给点思路
发表评论请勿发表与政治有关的信息!评论须知
昵称:
网址:
验证码:
内容: