Anonymní profil Tomas – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Tomas – Programujte.comAnonymní profil Tomas – Programujte.com

 

Příspěvky odeslané z IP adresy 2a00:12a8:8007:1000:2d86:...–

Tomas
.NET › WPF ZIndex nefunguje spravne
17. 4. 2014   #189350

Teraz som zistil, ze ked kod:
 

Canvas.SetZIndex(sender as UIElement, 105);


umiestnim nad unSelectAllShapes(); tak to ide. Zaujimave je, ze v tejto funkcii v podstate nic nerobim. Ako keby mu vadilo, ze sa zmeni nejaky atribut objektu.
 


Tomas
.NET › WPF ZIndex nefunguje spravne
17. 4. 2014   #189348

Ja mam tiez obdobne definovany vlastny Shape. Tiez si cez tlacitko v hlavnom okne pridam tento moj Shape do canvas.children. Na moj vlastny Shape nabindujem udalost MouseDown.

void myShape_MouseDown(object sender, MouseButtonEventArgs e)
        {
            if (e.ChangedButton == MouseButton.Left)
            {
                if (_mode == Mode.PaintMode)
                    return;

                unSelectAllShapes();

                if (!(sender as ImyShape).isSelected())
                    (sender as ImyShape).Select();
                else
                    (sender as ImyShape).UnSelect();

                _selectedShapeForMoving = (sender as ImyShape);
                _selectedShapes.Add(sender as ImyShape);
                Canvas.SetZIndex(sender as UIElement, 105);
            }
        }

Tento sposob nefunguje. Obcas sa vsak stane ze zareaguje spravne. Pokial by som mal tuto udalost vytvorenu priamo v konstruktore mojho Shapu tak to ide. Ale ak tuto udalost vytvorim po vytvoreni objektu tak to blbne.

Teraz som zistil, ze ked robim Hit testovanie v udalosti Canvasu MouseDown tak to ide.

HitTestResult result = VisualTreeHelper.HitTest(canvas1, position);

                    if (result.VisualHit is myRectangleAndEllipse)
                        Canvas.SetZIndex(result.VisualHit as UIElement, 105);
Tomas
.NET › WPF ZIndex nefunguje spravne
17. 4. 2014   #189340

#15 Zed_1
Mne to tiez bezi ked pouzivam rectangle! Ja ale mam vlastne triedy, ktore dedia od Shape a definujem si pozadovanu geometriu. Potom to proste nefunguje. ZIndex sa nastavi, aj ked ho vycitam je nastaveny spravne ale dany Shape sa neprekresli.

Tomas
.NET › WPF ZIndex nefunguje spravne
17. 4. 2014   #189337

#12 Zed_1
Nie, tie male biele stvorce su komponenty na resizovanie tvarov a oni maju pevne nastaveny ZIndex , ktory je najvacsi. Ziadny objekt, ktory sa kresli (stvorec, elipsa, polygon, obrazok atd.) nemoze mat nikdy vacsi ZIndex ako tie male stvorceky.

Tomas
.NET › WPF ZIndex nefunguje spravne
17. 4. 2014   #189333

#10 p3can
Mne tiez ide, ale ak pouzijem moje vlastne tvary tak to nejde, respektivne niekedy sa stane ze to prekresli. Staci, ze implementujem tvoj kod s tym, ze zmenim Rectangle za moje objekty a uz to nejde.

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý