wpf立方体旋转时单击按钮

问题描述 投票:0回答:2

1-创建一个wpf / c#项目,并将其命名为WpfApplication1

2-将以下代码复制并粘贴到xaml文件

<Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="400" Width="400">
<Grid Name="grid1"/>
</Window>

3-将以下代码复制并粘贴到cs文件

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Media.Media3D;
using System.Windows.Shapes;
using System.Windows.Threading;

namespace WpfApplication1
{
public partial class MainWindow : Window
{

    DispatcherTimer _timer = null;
    PerspectiveCamera _perspectiveCamera = null;
    double _angle = 0;

    public MainWindow()
    {
        this.InitializeComponent();
        this.Loaded += new RoutedEventHandler(MainWindow_Loaded);
    }

    void MainWindow_Loaded(object sender, RoutedEventArgs e)
    {
        GenerateViewPort();
    }

    private void GenerateViewPort()
    {
        MakeCamera();

        Viewport3D Viewport3D1 = new Viewport3D();
        Viewport3D1.Camera = _perspectiveCamera;
        grid1.Children.Add(Viewport3D1);
        Viewport3D1.Loaded += new RoutedEventHandler(Viewport3D1_Loaded);

        ModelVisual3D ModelVisual3D1 = new ModelVisual3D();
        Viewport3D1.Children.Add(ModelVisual3D1);


        Model3DGroup Model3DGroup1 = new Model3DGroup();
        ModelVisual3D1.Content = Model3DGroup1;

        AmbientLight AmbientLight1 = new AmbientLight();
        AmbientLight1.Color = Colors.Gray;
        Model3DGroup1.Children.Add(AmbientLight1);

        DirectionalLight DirectionalLight1 = new DirectionalLight();
        DirectionalLight1.Color = Colors.Gray;
        DirectionalLight1.Direction = ((Vector3D)new Vector3DConverter().ConvertFromString("-1,-3,-2"));
        Model3DGroup1.Children.Add(DirectionalLight1);

        DirectionalLight1 = new DirectionalLight();
        DirectionalLight1.Color = Colors.Gray;
        DirectionalLight1.Direction = ((Vector3D)new Vector3DConverter().ConvertFromString("1,-2,3"));
        Model3DGroup1.Children.Add(DirectionalLight1);

        Model3DGroup Model3DGroup2 = new Model3DGroup();
        Model3DGroup1.Children.Add(Model3DGroup2);

        GeometryModel3D GeometryModel3D1 = new GeometryModel3D();
        Model3DGroup2.Children.Add(GeometryModel3D1);


        MeshGeometry3D MeshGeometry3D1 = new MeshGeometry3D();
        MeshGeometry3D1.Positions = ((Point3DCollection)new Point3DCollectionConverter().ConvertFromString("-1,-1,-1 1,-1,-1 1,-1,1 -1,-1,1"));
        MeshGeometry3D1.TriangleIndices = ((Int32Collection)new Int32CollectionConverter().ConvertFromString("0,1,2 0,2,3"));
        MeshGeometry3D1.TextureCoordinates = ((PointCollection)new PointCollectionConverter().ConvertFromString("0,0 0,1 1,1 1,0"));
        GeometryModel3D1.Geometry = MeshGeometry3D1;


        DiffuseMaterial DiffuseMaterial1 = new DiffuseMaterial();
        GeometryModel3D1.Material = DiffuseMaterial1;


        ImageBrush ImageBrush1 = new ImageBrush();
        ImageBrush1.ImageSource = BitmapFrame.Create(new System.IO.MemoryStream(Convert.FromBase64String(@"iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfiCRQOHSnyc2vqAAAB00lEQVRIx93UvUtcURAF8FkVRRuJKQQlRlQUrCKKIIgYBEshIFiFiJ2F5Sadf8AiIthbxyqljbVgIQlYWMVqQRITP4iI+LG/NC/78dzImlTJVPeeOefMu3PvvIj/PQwa/Bt5hxs3Oh7i1D3o0B8N0RD9f25QQyQGxgw96nBDxsq3fShYvEebBJP38EUF9JWAVmfVLKobJPIzreXgqNNyCxldpq2CVdO6ZCrkp0bTnzWSWCyZseFYOo5tmLGUyEeqNWbYiVrixHBJ1VDmcB3n8SRZfYhPcRif4zAieqI3euJFvIrGiIg4j+tq9edcgCPL2qteXbtlR+DCXGWqXg7ceqvxwftvlHULcupL8Ar4ZqqmR/TSV7DyC5hSwL7uFHHMuh071iteXUR45iMKpiJCmzx+6K2g1Mm5K/b9Tk7F1HjuHHltYRPMp2pkE+m+/WSVTTFeg82Qx2Yq2e0KB8YjIow7wNW9I75HPkx4pymVmgcLxf0CeJNiNcmaqN7nNVxqKe5bXGKtGrf6D+VLRDRHaVz7ojlBazTYi4iI0nAvlqG1hHq7KNg2a9a2AnbLXl4NFgOpyTwx8Ah5RIROW0X5ls7f8TIPmjyN4YjYy3x/ZPV/K34C94HIKdJTZ0UAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTgtMDktMjBUMTQ6Mjk6NDErMDI6MDC4vqD7AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE4LTA5LTIwVDE0OjI5OjQxKzAyOjAwyeMYRwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAAASUVORK5CYII=")));

        DiffuseMaterial1.Brush = ImageBrush1;

        GeometryModel3D GeometryModel3D2 = new GeometryModel3D();
        Model3DGroup2.Children.Add(GeometryModel3D2);


        MeshGeometry3D1 = new MeshGeometry3D();
        MeshGeometry3D1.Positions = ((Point3DCollection)new Point3DCollectionConverter().ConvertFromString("1,1,1 1,1,-1 -1,1,-1 -1,1,1"));
        MeshGeometry3D1.TriangleIndices = ((Int32Collection)new Int32CollectionConverter().ConvertFromString("0,1,2 0,2,3"));
        MeshGeometry3D1.TextureCoordinates = ((PointCollection)new PointCollectionConverter().ConvertFromString("0,0 0,1 1,1 1,0"));
        GeometryModel3D2.Geometry = MeshGeometry3D1;


        DiffuseMaterial DiffuseMaterial2 = new DiffuseMaterial();
        GeometryModel3D2.Material = DiffuseMaterial2;

        ImageBrush1 = new ImageBrush();
        ImageBrush1.ImageSource = BitmapFrame.Create(new System.IO.MemoryStream(Convert.FromBase64String(@"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")));

        DiffuseMaterial2.Brush = ImageBrush1;

        GeometryModel3D GeometryModel3D3 = new GeometryModel3D();
        Model3DGroup2.Children.Add(GeometryModel3D3);


        MeshGeometry3D1 = new MeshGeometry3D();
        MeshGeometry3D1.Positions = ((Point3DCollection)new Point3DCollectionConverter().ConvertFromString("-1,1,-1 -1,-1,-1 -1,-1,1 -1,1,1"));
        MeshGeometry3D1.TriangleIndices = ((Int32Collection)new Int32CollectionConverter().ConvertFromString("0,1,2 0,2,3"));
        MeshGeometry3D1.TextureCoordinates = ((PointCollection)new PointCollectionConverter().ConvertFromString("0,0 0,1 1,1 1,0"));
        GeometryModel3D3.Geometry = MeshGeometry3D1;


        DiffuseMaterial DiffuseMaterial3 = new DiffuseMaterial();
        GeometryModel3D3.Material = DiffuseMaterial3;


        ImageBrush1 = new ImageBrush();
        ImageBrush1.ImageSource = BitmapFrame.Create(new System.IO.MemoryStream(Convert.FromBase64String(@"iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfiCRQOHSnyc2vqAAAB00lEQVRIx93UvUtcURAF8FkVRRuJKQQlRlQUrCKKIIgYBEshIFiFiJ2F5Sadf8AiIthbxyqljbVgIQlYWMVqQRITP4iI+LG/NC/78dzImlTJVPeeOefMu3PvvIj/PQwa/Bt5hxs3Oh7i1D3o0B8N0RD9f25QQyQGxgw96nBDxsq3fShYvEebBJP38EUF9JWAVmfVLKobJPIzreXgqNNyCxldpq2CVdO6ZCrkp0bTnzWSWCyZseFYOo5tmLGUyEeqNWbYiVrixHBJ1VDmcB3n8SRZfYhPcRif4zAieqI3euJFvIrGiIg4j+tq9edcgCPL2qteXbtlR+DCXGWqXg7ceqvxwftvlHULcupL8Ar4ZqqmR/TSV7DyC5hSwL7uFHHMuh071iteXUR45iMKpiJCmzx+6K2g1Mm5K/b9Tk7F1HjuHHltYRPMp2pkE+m+/WSVTTFeg82Qx2Yq2e0KB8YjIow7wNW9I75HPkx4pymVmgcLxf0CeJNiNcmaqN7nNVxqKe5bXGKtGrf6D+VLRDRHaVz7ojlBazTYi4iI0nAvlqG1hHq7KNg2a9a2AnbLXl4NFgOpyTwx8Ah5RIROW0X5ls7f8TIPmjyN4YjYy3x/ZPV/K34C94HIKdJTZ0UAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTgtMDktMjBUMTQ6Mjk6NDErMDI6MDC4vqD7AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE4LTA5LTIwVDE0OjI5OjQxKzAyOjAwyeMYRwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAAASUVORK5CYII=")));

        DiffuseMaterial3.Brush = ImageBrush1;

        GeometryModel3D GeometryModel3D4 = new GeometryModel3D();
        Model3DGroup2.Children.Add(GeometryModel3D4);


        MeshGeometry3D1 = new MeshGeometry3D();
        MeshGeometry3D1.Positions = ((Point3DCollection)new Point3DCollectionConverter().ConvertFromString("1,1,1 1,-1,1 1,-1,-1 1,1,-1"));
        MeshGeometry3D1.TriangleIndices = ((Int32Collection)new Int32CollectionConverter().ConvertFromString("0,1,2 0,2,3"));
        MeshGeometry3D1.TextureCoordinates = ((PointCollection)new PointCollectionConverter().ConvertFromString("0,0 0,1 1,1 1,0"));
        GeometryModel3D4.Geometry = MeshGeometry3D1;


        DiffuseMaterial DiffuseMaterial4 = new DiffuseMaterial();
        GeometryModel3D4.Material = DiffuseMaterial4;


        ImageBrush1 = new ImageBrush();
        ImageBrush1.ImageSource = BitmapFrame.Create(new System.IO.MemoryStream(Convert.FromBase64String(@"iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfiCRQOHSnyc2vqAAAB00lEQVRIx93UvUtcURAF8FkVRRuJKQQlRlQUrCKKIIgYBEshIFiFiJ2F5Sadf8AiIthbxyqljbVgIQlYWMVqQRITP4iI+LG/NC/78dzImlTJVPeeOefMu3PvvIj/PQwa/Bt5hxs3Oh7i1D3o0B8N0RD9f25QQyQGxgw96nBDxsq3fShYvEebBJP38EUF9JWAVmfVLKobJPIzreXgqNNyCxldpq2CVdO6ZCrkp0bTnzWSWCyZseFYOo5tmLGUyEeqNWbYiVrixHBJ1VDmcB3n8SRZfYhPcRif4zAieqI3euJFvIrGiIg4j+tq9edcgCPL2qteXbtlR+DCXGWqXg7ceqvxwftvlHULcupL8Ar4ZqqmR/TSV7DyC5hSwL7uFHHMuh071iteXUR45iMKpiJCmzx+6K2g1Mm5K/b9Tk7F1HjuHHltYRPMp2pkE+m+/WSVTTFeg82Qx2Yq2e0KB8YjIow7wNW9I75HPkx4pymVmgcLxf0CeJNiNcmaqN7nNVxqKe5bXGKtGrf6D+VLRDRHaVz7ojlBazTYi4iI0nAvlqG1hHq7KNg2a9a2AnbLXl4NFgOpyTwx8Ah5RIROW0X5ls7f8TIPmjyN4YjYy3x/ZPV/K34C94HIKdJTZ0UAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTgtMDktMjBUMTQ6Mjk6NDErMDI6MDC4vqD7AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE4LTA5LTIwVDE0OjI5OjQxKzAyOjAwyeMYRwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAAASUVORK5CYII=")));

        DiffuseMaterial4.Brush = ImageBrush1;

        GeometryModel3D GeometryModel3D5 = new GeometryModel3D();
        Model3DGroup2.Children.Add(GeometryModel3D5);


        MeshGeometry3D1 = new MeshGeometry3D();
        MeshGeometry3D1.Positions = ((Point3DCollection)new Point3DCollectionConverter().ConvertFromString("1,1,-1 1,-1,-1 -1,-1,-1 -1,1,-1"));
        MeshGeometry3D1.TriangleIndices = ((Int32Collection)new Int32CollectionConverter().ConvertFromString("0,1,2 0,2,3"));
        MeshGeometry3D1.TextureCoordinates = ((PointCollection)new PointCollectionConverter().ConvertFromString("0,0 0,1 1,1 1,0"));
        GeometryModel3D5.Geometry = MeshGeometry3D1;


        DiffuseMaterial DiffuseMaterial5 = new DiffuseMaterial();
        GeometryModel3D5.Material = DiffuseMaterial5;


        ImageBrush1 = new ImageBrush();
        ImageBrush1.ImageSource = BitmapFrame.Create(new System.IO.MemoryStream(Convert.FromBase64String(@"iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfiCRQOHSnyc2vqAAAB00lEQVRIx93UvUtcURAF8FkVRRuJKQQlRlQUrCKKIIgYBEshIFiFiJ2F5Sadf8AiIthbxyqljbVgIQlYWMVqQRITP4iI+LG/NC/78dzImlTJVPeeOefMu3PvvIj/PQwa/Bt5hxs3Oh7i1D3o0B8N0RD9f25QQyQGxgw96nBDxsq3fShYvEebBJP38EUF9JWAVmfVLKobJPIzreXgqNNyCxldpq2CVdO6ZCrkp0bTnzWSWCyZseFYOo5tmLGUyEeqNWbYiVrixHBJ1VDmcB3n8SRZfYhPcRif4zAieqI3euJFvIrGiIg4j+tq9edcgCPL2qteXbtlR+DCXGWqXg7ceqvxwftvlHULcupL8Ar4ZqqmR/TSV7DyC5hSwL7uFHHMuh071iteXUR45iMKpiJCmzx+6K2g1Mm5K/b9Tk7F1HjuHHltYRPMp2pkE+m+/WSVTTFeg82Qx2Yq2e0KB8YjIow7wNW9I75HPkx4pymVmgcLxf0CeJNiNcmaqN7nNVxqKe5bXGKtGrf6D+VLRDRHaVz7ojlBazTYi4iI0nAvlqG1hHq7KNg2a9a2AnbLXl4NFgOpyTwx8Ah5RIROW0X5ls7f8TIPmjyN4YjYy3x/ZPV/K34C94HIKdJTZ0UAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTgtMDktMjBUMTQ6Mjk6NDErMDI6MDC4vqD7AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE4LTA5LTIwVDE0OjI5OjQxKzAyOjAwyeMYRwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAAASUVORK5CYII=")));

        DiffuseMaterial5.Brush = ImageBrush1;

        GeometryModel3D GeometryModel3D6 = new GeometryModel3D();
        Model3DGroup2.Children.Add(GeometryModel3D6);


        MeshGeometry3D1 = new MeshGeometry3D();
        MeshGeometry3D1.Positions = ((Point3DCollection)new Point3DCollectionConverter().ConvertFromString("-1,1,1 -1,-1,1 1,-1,1 1,1,1"));
        MeshGeometry3D1.TriangleIndices = ((Int32Collection)new Int32CollectionConverter().ConvertFromString("0,1,2 0,2,3"));
        MeshGeometry3D1.TextureCoordinates = ((PointCollection)new PointCollectionConverter().ConvertFromString("0,0 0,1 1,1 1,0"));
        GeometryModel3D6.Geometry = MeshGeometry3D1;

        DiffuseMaterial DiffuseMaterial6 = new DiffuseMaterial();
        GeometryModel3D6.Material = DiffuseMaterial6;

        VisualBrush VisualBrush1 = new VisualBrush();
        DiffuseMaterial6.Brush = VisualBrush1;


        Button Button1 = new Button();
        Button1.Content = "Click Me";

        VisualBrush1.Visual = Button1;
    }


    private void Button1_Click(object sender, EventArgs e)
    {
        MessageBox.Show("Hi everyone");
    }


    private void MakeCamera()
    {
        Transform3DGroup transform3DGroup = new Transform3DGroup();
        RotateTransform3D rotateTransform3D_1 = new RotateTransform3D();
        AxisAngleRotation3D axisAngleRotation3D_1 = new AxisAngleRotation3D(new Vector3D(0, 1, 0), 0);


        transform3DGroup.Children.Add(rotateTransform3D_1);


        _perspectiveCamera = new PerspectiveCamera();
        _perspectiveCamera.Position = new Point3D(0, 0, 5);
        _perspectiveCamera.LookDirection = new Vector3D(0, 0, -5);
        _perspectiveCamera.UpDirection = new Vector3D(0, 1, 0);
        _perspectiveCamera.FieldOfView = 45;
        _perspectiveCamera.Transform = transform3DGroup;
    }


    private DrawingBrush GetRectangleDrawingBrush()
    {

        DrawingBrush DrawingBrush1 = new DrawingBrush();
        DrawingBrush1.Viewport = ((Rect)new RectConverter().ConvertFromString("0,0,0.25,0.25"));
        DrawingBrush1.TileMode = TileMode.Tile;


        DrawingGroup DrawingGroup1 = new DrawingGroup();
        DrawingBrush1.Drawing = DrawingGroup1;

        GeometryDrawing GeometryDrawing1 = new GeometryDrawing();
        GeometryDrawing1.Brush = ((Brush)new BrushConverter().ConvertFromString("White"));
        DrawingGroup1.Children.Add(GeometryDrawing1);


        RectangleGeometry RectangleGeometry1 = new RectangleGeometry();
        RectangleGeometry1.Rect = ((Rect)new RectConverter().ConvertFromString("0,0,100,100"));
        GeometryDrawing1.Geometry = RectangleGeometry1;

        GeometryDrawing GeometryDrawing2 = new GeometryDrawing();
        DrawingGroup1.Children.Add(GeometryDrawing2);


        GeometryGroup GeometryGroup1 = new GeometryGroup();
        GeometryDrawing2.Geometry = GeometryGroup1;

        RectangleGeometry1 = new RectangleGeometry();
        RectangleGeometry1.Rect = ((Rect)new RectConverter().ConvertFromString("0,0,50,50"));
        GeometryGroup1.Children.Add(RectangleGeometry1);

        RectangleGeometry1 = new RectangleGeometry();
        RectangleGeometry1.Rect = ((Rect)new RectConverter().ConvertFromString("50,50,50,50"));
        GeometryGroup1.Children.Add(RectangleGeometry1);


        LinearGradientBrush LinearGradientBrush1 = new LinearGradientBrush();
        GeometryDrawing2.Brush = LinearGradientBrush1;

        GradientStop GradientStop1 = new GradientStop();
        GradientStop1.Offset = 0.0;
        GradientStop1.Color = Colors.Black;
        LinearGradientBrush1.GradientStops.Add(GradientStop1);

        GradientStop1 = new GradientStop();
        GradientStop1.Offset = 1.0;
        GradientStop1.Color = Colors.Gray;
        LinearGradientBrush1.GradientStops.Add(GradientStop1);

        return DrawingBrush1;

    }


    void Viewport3D1_Loaded(object sender, RoutedEventArgs e)
    {
        _timer = new DispatcherTimer();
        _timer.Interval = TimeSpan.FromSeconds(0.20);
        _timer.Tick += new EventHandler(_timer_Tick);
        _timer.IsEnabled = true;
    }


    void _timer_Tick(object sender, EventArgs e)
    {
        Transform3DGroup transform3DGroup = new Transform3DGroup();
        RotateTransform3D rotateTransform3D_1 = new RotateTransform3D();
        AxisAngleRotation3D axisAngleRotation3D_1 = new AxisAngleRotation3D(new Vector3D(0, 1, 0), _angle);
        rotateTransform3D_1.Rotation = axisAngleRotation3D_1;
        transform3DGroup.Children.Add(rotateTransform3D_1);
        _perspectiveCamera.Transform = transform3DGroup;
        _angle = _angle + 2;
    }



}
}

4-运行此项目,然后查看wpf立方体是否正确旋转。

但是Button1_Click事件不起作用!

所以,为什么当我单击Button1时为什么认为Button1_Click事件不起作用?

提前感谢。

c# wpf
2个回答
1
投票

您需要附加事件处理程序来单击按钮的事件,如下所示:

Button1.Click += Button1_Click;

有关详细信息,请参阅:https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/events/how-to-subscribe-to-and-unsubscribe-from-events


0
投票

我在您的代码中看到以下行:

 public partial class MainWindow : Window

为此,我认为您的课程由two个代码文件组成。我假设您忘记了复制文件MainWindow。Designer。cs

© www.soinside.com 2019 - 2024. All rights reserved.