Laden...

DataGrid RowHeader Animation Xaml

Erstellt von MMCSharp vor einem Jahr Letzter Beitrag vor einem Jahr 606 Views
M
MMCSharp Themenstarter:in
84 Beiträge seit 2022
vor einem Jahr
DataGrid RowHeader Animation Xaml

Hallo zusammen,

Ich habe in meinem Projekt einen DataGrid. In diesem habe ich 3 Ebenen über eine ObservableCollection. In den Rowdetails zeige ich jeweils die untergeordnete DatGrid an, die Daten zum übergeordneten Datensatz zeigt. Nun hätte ich gern in den Rowheadern einen Animierten Pfeil, der sich dreht, wenn die Rowdetails aufgerufen werden. Nur ich schaffe es nicht das Storyboard richtig zu implementieren. Ich hab jetzt schon etliche Google Ergebnisse durch, aber ich finde nichts, das mich weiter bringt. Ich möchte das ohne Code behind lösen.

16.842 Beiträge seit 2008
vor einem Jahr

Und was ist Deine Frage? Was hast Du bisher versucht? Code zeigen?
Bitte nicht erwarten, dass das Forum für Dich den Quellcode generiert.
[Hinweis] Wie poste ich richtig?

M
MMCSharp Themenstarter:in
84 Beiträge seit 2022
vor einem Jahr

Entschuldigung

Ich habe bereits versucht das Storyboard über einen Datatrigger im DataGrid.RowHeaderStyle (1) aufzurufen ,über ein DataGrid.RowHeaderTemplate(2). Beides schlug fehl mit einem Vermerk, dass ein TargetName nicht erlaubt ist in einem Style.. Des weiteren habe ich versucht einen Button einzusetzen und dort über Find Ancestor den Button bei einem Rowselect zu drehen, allerdings habe ich diesen Code komplett entsorgt..

Code zu 1


 <DataGrid.RowHeaderStyle >

                                        <Style TargetType="DataGridRowHeader">
                                            <Setter Property="Background" Value="#302E2F"/>
                                            <Setter Property="BorderBrush" Value="#E04D0D"/>
                                            <Setter Property="BorderThickness" Value="1"/>
                                            <Setter Property="Visibility" Value="Visible"/>
                                            <Setter Property="Width" Value="25"/>
                                            <Style.Triggers>
                                                <Trigger Property="IsRowSelected" Value="True"  >
                                                    <Setter Property="Content">
                                                        <Setter.Value>
                                                            <DockPanel Width="20" Height="20" >

                                                                <svgc:SvgViewbox
                                                                    HorizontalAlignment="Center" VerticalAlignment="Top"
                                                                    Margin="4"  
                                                                    Source="/Assets/Icons/down-arrow.svg"
                                                                    DockPanel.Dock="Top"
                                                                    RenderTransformOrigin="0.5,0.5">
                                                                    
                                                                    <svgc:SvgViewbox.RenderTransform>
                                                                        <RotateTransform x:Name="AnimatedRotateTransform" Angle="0" />
                                                                    </svgc:SvgViewbox.RenderTransform>
                                                                
                                                                </svgc:SvgViewbox>
                                                            
                                                            </DockPanel>
                                                        </Setter.Value>
                                                    </Setter>
                                                    <Setter Property="VerticalContentAlignment" Value="Top"/>
                                                    <Setter Property="BorderThickness" Value="2"/>
                                                    
                                                </Trigger>

                                                <EventTrigger RoutedEvent="DataGridRow.Selected">
                                                    
                                                        <BeginStoryboard>
                                                            <Storyboard>
                                                                <DoubleAnimation 
                                                                    Storyboard.TargetName="AnimatedRotateTransform"
                                                                    Storyboard.TargetProperty="Angle" 
                                                                    To="360" Duration="0:0:1" FillBehavior="Stop" />
                                                            </Storyboard>
                                                        </BeginStoryboard>
                                                   
                                                </EventTrigger>
                                                
                                            </Style.Triggers>
                                        </Style>
                                    </DataGrid.RowHeaderStyle>

Code zu 2


 <DataGrid.RowHeaderTemplate>
                                        <DataTemplate>
                                            <DockPanel Width="20" Height="20" >

                                                <svgc:SvgViewbox
                                                                    HorizontalAlignment="Center" VerticalAlignment="Top"
                                                                    Margin="4"  
                                                                    Source="/Assets/Icons/down-arrow.svg"
                                                                    DockPanel.Dock="Top"
                                                                    RenderTransformOrigin="0.5,0.5"
                                                                    x:Name="ArrowView">

                                                    <svgc:SvgViewbox.RenderTransform>
                                                        <RotateTransform Angle="0" />
                                                    </svgc:SvgViewbox.RenderTransform>

                                                    <svgc:SvgViewbox.Style>
                                                        <Style>
                                                            <Style.Triggers>
                                                                <EventTrigger RoutedEvent="DataGridRow.Selected">

                                                                    <BeginStoryboard>
                                                                        <Storyboard>
                                                                            <DoubleAnimation 
                                                                                Storyboard.TargetName="AnimatedRotateTransform"
                                                                                Storyboard.TargetProperty="Angle" 
                                                                                To="360" Duration="0:0:1" FillBehavior="Stop" />
                                                                        </Storyboard>
                                                                    </BeginStoryboard>

                                                                </EventTrigger>
                                                            </Style.Triggers>
                                                        </Style>
                                                       
                                                    </svgc:SvgViewbox.Style>
                                                    
                                                </svgc:SvgViewbox>

                                               
                                            </DockPanel>
                                        </DataTemplate>
                                    </DataGrid.RowHeaderTemplate>

und dir Frage ist natürlich -> Wie muss ich`s anstellen, dass es klappt...

M
MMCSharp Themenstarter:in
84 Beiträge seit 2022
vor einem Jahr

Hier noch die Fehlermeldung:

M
MMCSharp Themenstarter:in
84 Beiträge seit 2022
vor einem Jahr

Nein, das führt leider zu keiner Lösung.