FlipPanel3d

Petit exemple d’un panneau 3d.

Servira pour la sélection de projet et p-e pour la description de géométrie(à discuter).

FlipPanel3D


namespace WpfApplication1
{
    /// 
    /// Interaction logic for Window1.xaml
    /// 
    public partial class Window1 : Window
    {

        public Window1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            // Le FlipPanel
            ContentControl3D ctrl = new ContentControl3D();

            // On y ajoute une ellipse...pourrait être n'importe quoi...
            Ellipse ell = new Ellipse();
            ell.Width = 100;
            ell.Height = 100;
            SolidColorBrush mySolidColorBrush = new SolidColorBrush();
            mySolidColorBrush.Color = System.Windows.Media.Color.FromRgb(255, 0, 0);
            ell.Fill = mySolidColorBrush;
            ell.Stroke = System.Windows.Media.Brushes.Black;
            ell.StrokeThickness = 2;

            // On ajoute l'ellipse au devant du panneau
            ctrl.Content = ell;

            // Un rectangle:
            System.Windows.Shapes.Rectangle rect = new System.Windows.Shapes.Rectangle();
            rect.Width = 100;
            rect.Height = 100;
            rect.Fill = mySolidColorBrush;
            rect.Stroke = System.Windows.Media.Brushes.Black;
            rect.StrokeThickness = 2;

            // On ajoute le rectangle à l'arrière du panneau:
            ctrl.BackContent = rect;

            // On Choisi la façon dont le panneau tournera:
            ctrl.RotationDirection = RotationDirection.TopLeftToBottomRight;
            ctrl.EasingMode = RotationEasingMode.RoundhouseKick;

            // On ajoute l'événement mousedown poru détecter un click:
            ctrl.MouseDown += new MouseButtonEventHandler(panel_MouseDown);

            // On l'ajoute à ûn élément quelconque, ici un dockpanel:
            this.dockPanel1.Children.Add(ctrl);
        }

        // L'évenement click
        private void panel_MouseDown(object sender, RoutedEventArgs e)
        {
            // Le sender est le flippanel
            ContentControl3D ctrl = ((ContentControl3D)sender);
            // SI on voit le devant
            if (ctrl.IsFrontInView)
            {
                // Tourner le paneau d'avant vers arrière
                ctrl.BringBackSideIntoView();
            }
            else // Sinon
            {
                // Tourner d'arrière vers avant:
                ctrl.BringFrontSideIntoView();
            }
        }


    }
}

Ce contenu a été publié dans Interface Personne Machine. Vous pouvez le mettre en favoris avec ce permalien.

Laisser un commentaire