Gå til innhold

C#: WPF base element som støtter overlapping


Anbefalte innlegg

Skrevet

Tenkte å ha en slags "tab" feature i programmet mitt, bare uten tabs. Jeg skal kunne velge sida "programmatically" ved å kjøre focus() eller z-index = 0; eller noe lignende på en haug overlappende panels. Vet noen åssen jeg kan gjøre noe slikt?

Videoannonse
Annonse
Skrevet

Det har jeg allerede prøvd, men når jeg har ~20 sider blir det en god del kode å måtte sette hver og en av sidene til visible = false. Planen var å animere switch mellom tabs med opacity property. Dermed hadde jeg tenkt til å sette selected tab øverst med 0% opacity og animere til 100. Dermed passet det utrolig bra med en slags stack, slik at jeg i tillegg ikke trenger å bekymre meg om tab'en som skal fade ut.

 

Hvis det ikke finnes noen stack kontroller i wpf skal jeg selvfølgelig lage mitt eget system, men jeg vil gjerne slippe det

Skrevet

Du setter jo ikke visible manuelt.

Iterer gjennom alle objektene og sett visible = false, og deretter setter du ditt eget objekt.visible = true.

 

Du trenger ikke

 

if(tabindex == 0) 
{
 panel1.Visible = true
 panel2.Visible = false;
 panel3.Visible = false;
}

 

Istedet

 

 

for(int i = 0; i < VisualTreeHelper.GetChildCount(parentpanel); i++)
{
 UIElement elem = VisualTreeHelper.GetChild(parentpanel,i);
 elem.Visible = false;
}

 

Har ikke testet dette...

Skrevet

Fant en metode som funka. Jeg fjerner sida jeg skal bytte til fra root elementet og legger det til igjen. På denne måten legger det seg øverst :thumbs:

Skrevet

bare en talemåte ;-)

Du gjør ting på en måte som egentlig ikke er tilltenkt som metode.

I dette tilfellet går dette veldig greit, men i noen tilfeller kan det hende at en slik "workaround" slutter å virke når det legges til funksjonalitet i kontrollene, men slapp av. I ditt tilfelle tror jeg ikek det blir tilfelle

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...