Нажмите кнопку, когда куб wpf вращается - PullRequest
0 голосов
/ 29 сентября 2019

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";
        Button1.Click += Button1_Click;

        VisualBrush1.Visual = Button1;
    }


    private void Button1_Click(object sender, RoutedEventArgs 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_Click событие не работает, когда я нажимаю Button1 ?

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 29 сентября 2019

Вам необходимо прикрепить обработчик события, чтобы щелкнуть событие кнопки, например, такой:

Button1.Click += Button1_Click;

Для получения дополнительной информации вы можете проверить это: https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/events/how-to-subscribe-to-and-unsubscribe-from-events

0 голосов
/ 29 сентября 2019

Я вижу в вашем коде следующую строку:

 public partial class MainWindow : Window

Для этого я думаю, что ваш класс состоит из двух файлов кода.Я предполагаю, что вы забыли скопировать файл MainWindow. Designer .cs

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...