Laden...

DoubleAnimation eines Labels im Grid, Label bewegt sich im Hintergrund

Erstellt von sevenofnine vor 8 Jahren Letzter Beitrag vor 8 Jahren 1.588 Views
S
sevenofnine Themenstarter:in
45 Beiträge seit 2008
vor 8 Jahren
DoubleAnimation eines Labels im Grid, Label bewegt sich im Hintergrund

Hallo Zusammen

ich habe ein Grid, mit Labels und Textboxen, sowie ein DataGrid.
Nun möchte ich eine TextBox, das sich in einer GridZelle in einem Canvas befindet,
bei einem Event mit einer DoubleAnimation so animieren, dass sich die Textbox über dem DataGrid auf die relevante Gridzelle bewegt. Alles geht gut, nur die TextBox bewegt sich unter dem DataGrid.

Kann ich hier eine ZOrder einstellen und wie?


    <Grid Margin="5">
        <Grid.RowDefinitions>
            <RowDefinition Height="35"/>
            <RowDefinition Height="*"/>
            <RowDefinition Height="35"/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition/>
            <ColumnDefinition/>
            <ColumnDefinition Width="40"/>
        </Grid.ColumnDefinitions>
        <Label Grid.Row="0" Grid.Column="0" >xxxx</Label>
        <Canvas Grid.Row="0" Grid.Column="1" Grid.ColumnSpan="2" >
            <TextBox Canvas.Left="0" Canvas.Top="0" Canvas.Right="0" Width="200" Text="xxxx" />
            <TextBox Canvas.Left="0" Canvas.Top="0" Canvas.Right="0" Width="200" Text="xxxx" />

        </Canvas>
        <DataGrid Name="datagrid"  Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="3" />
</Grid >



Danke und schönes WE

Gerhard

16.835 Beiträge seit 2008
vor 8 Jahren

Canvas.ZIndex

S
sevenofnine Themenstarter:in
45 Beiträge seit 2008
vor 8 Jahren

Hallo Abt,

sorry aber so einfach ist es nicht. Die Textbox verschwindet immer ungeachtet des
Canvas.ZIndex hinter dem Datagrid

5.658 Beiträge seit 2006
vor 8 Jahren

Hi sevenofnine,

Canvas.ZIndex hat natürlich nur Auswirkungen auf Elemente innerhalb der Canvas. Du müßtest also das DataGrid auch in die Canvas einfügen.

bei einem Event mit einer DoubleAnimation so animieren

Besser wäre hier die Verwendung von Triggern in Verbindung mit einem Storyboard, siehe dazu How to: Trigger an Animation When a Property Value Changes.

Insgesamt erscheint mir deine Herangehensweise aber nicht besonders vielversprechend. Deine Anforderung, eine Textbox über einer bestimmte Spalte anzeigen zulassen, klingt mir sehr danach, als ist dein Ziel, eine Art Popup-Editor zu erstellen. Dafür gibt es sicherlich bessere Ansätze, am Besten erklärst du mal ein bißchen ausführlicher, was genau du vor hast.

Christian

Weeks of programming can save you hours of planning

S
sevenofnine Themenstarter:in
45 Beiträge seit 2008
vor 8 Jahren

Hi MrSparkle

Zu meinem Vorhaben, ich habe ein MVVM Pattern. Das Datagrid zeigt dem User Datensätze an. Beim Ändern der Textbox suche ich die ID eines Datensatzes und ändere bestimmte Eigenschaften dieses Datensatzes, dadurch ändert sich auch der Status des Datensatzes im DataGrid. Nun möchte ich dem User mit einer Animation zeigen welche Zeile gefunden/betroffen war. Dazu habe ich im Canvas 2 Textboxen übereinander angeordnet, beide binden an die selbe Eigenschaft im Viewmodel, und eine von beiden Textbox möchte ich nun auf die Position des Items im Datagrid fliegen lassen. 2 Textboxen, damit die Eingabe unabhängig von der Animation an derselben Position bleibt.
Ich möchte das ganze nicht mit einem Canvas abbilden, denn die Oberfläche zeigt noch mehr Elemente, die im Grid besser angeordnet sind.
Jetzt ist diese Funktionalität nicht lebensnotwendig, falls es nicht klappt lasse ich es einfach weg, aber ich will mich weiterbilden und geht nicht gibts nicht.

Gruß Gerhard

M
64 Beiträge seit 2015
vor 8 Jahren

Was genau meinst du mit

dadurch ändert sich auch der Status des Datensatzes im DataGrid ?

S
sevenofnine Themenstarter:in
45 Beiträge seit 2008
vor 8 Jahren

Was genau meinst du mit

z.b ändert sich die Eigenschaft Inhouse, durch wird der Datensatz grün statt rot, da aber einige Datensätze bereits schon grün und oder rot sind, möchte ich durch die Animation dies hervorheben.

Doch nun zurück zu meiner eigentlichen Frage, wie bekomme ich die Textbox trotz Canvas und Grid in den Vordergrund?

5.658 Beiträge seit 2006
vor 8 Jahren

Hi sevenofnine,

generell würde ich empfehlen, die Benutzeroberfläche noch einmal zu überarbeiten, und zu überlegen, welche Informationen man wie darstellen will. So wie es klingt, klingt es erstmal nicht besonders benutzerfreundlich.

Wenn die Anforderung besteht (die genauen Anforderungen sind immer noch sehr unklar), die von einer Aktion betroffenen Datensätze zu markieren, dann gibt es sicherlich bessere Möglichkeiten als fliegende Textboxen.

Doch nun zurück zu meiner eigentlichen Frage, wie bekomme ich die Textbox trotz Canvas und Grid in den Vordergrund?

Eine Möglichkeit hab ich ja schon genannt. Warum das für dich nicht in Frage kommt, habe ich nicht verstanden.

Eine andere Möglichkeit wären Adorner.

Christian

Weeks of programming can save you hours of planning

M
64 Beiträge seit 2015
vor 8 Jahren

Um dir eventuell ein anderen vorschlag zu machen könntest du doch eine weitere Farbe einführen z.b. Hellgrün oder Hellrot und die kürzlich geänderten Staten/Einträge in der Farbe anzeigen.

Insofern ich nicht genau weis, woher und wie die Daten kommen kann ich dir leider kein anderen Vorschlag machen. Aber wenn du es mit den Textbox machen willst hat dir MrSparkle Ja zwei Lösungen genannt.
Mfg Mert.

S
sevenofnine Themenstarter:in
45 Beiträge seit 2008
vor 8 Jahren

danke, für Eure Vorschläge.
Ich werde diese testen.

Gruß Gerhard