Laden...

WPF - TabIndex für Elemente, die Ihre Visiblity ändern?

Erstellt von _Cashisclay vor 5 Jahren Letzter Beitrag vor 5 Jahren 1.795 Views
_
_Cashisclay Themenstarter:in
277 Beiträge seit 2014
vor 5 Jahren
WPF - TabIndex für Elemente, die Ihre Visiblity ändern?

Hallo zusammen,

ich hab aktuell das Problem, das ich einige Elemente ein und ausblende für diese aber gerne einen TabIndex hätte wenn diese Visible sind. Bisher hat noch nichts funktioniert und eben bin ich auch darauf gestoßen.

Controls that cannot get the focus, as well as disabled and invisible controls, do not have a TabIndex property and are not included in the tab order. As a user presses the TAB key, these controls are skipped.

Hat jemand damit schon Erfahrung gesammelt? Kann mir irgendwie nicht vorstellen das es gar nicht funktioniert.

                            <ressourcen:Grid_Visibility
                                Style="{StaticResource Visibility_Effect_Grid}"
                                Visibility_Effect="{Binding Visibility}">

                                <Grid>

                                    <Grid.ColumnDefinitions>

                                        <ColumnDefinition Width="25" />
                                        <ColumnDefinition Width="*" />
                                        <ColumnDefinition Width="15" />
                                        <ColumnDefinition Width="*" />
                                        <ColumnDefinition Width="25" />

                                    </Grid.ColumnDefinitions>

                                    <telerik:RadMaskedTextInput Grid.Column="1"
                                                                Margin="3"
                                                                VerticalContentAlignment="Center"
                                                                HorizontalContentAlignment="Center"
                                                                VerticalAlignment="Center"
                                                                Mask="dd.dd.dd.dd.d"
                                                                FontSize="12"
                                                                Width="Auto"
                                                                Value="{Binding Von, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" 
                                                                KeyboardNavigation.TabIndex="1" />

                                    <telerik:RadMaskedTextInput Grid.Column="3"
                                                                Margin="3"
                                                                VerticalContentAlignment="Center"
                                                                HorizontalContentAlignment="Center"
                                                                VerticalAlignment="Center"
                                                                Mask="dd.dd.dd.dd.d"
                                                                FontSize="12"
                                                                Width="Auto"
                                                                Value="{Binding Bis, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
                                                                KeyboardNavigation.TabIndex="2" />

                                </Grid>

                            </ressourcen:Grid_Visibility>
_
_Cashisclay Themenstarter:in
277 Beiträge seit 2014
vor 5 Jahren

Brachte nicht den gewünschten Erfolg 😕.

1.040 Beiträge seit 2007
vor 5 Jahren

Wo schaltest du denn die Visibility für die beiden RadMaskedTextInput? 🤔

Ich kann dein Problem nach dem Mittag gerne mal testen.

_
_Cashisclay Themenstarter:in
277 Beiträge seit 2014
vor 5 Jahren

Seruvs p!lle,

ich setz sie oben für das Grid.

Danke dir! 😃

4.939 Beiträge seit 2008
vor 5 Jahren

Funktioniert es denn bei einer Standard-TextBox?
Da ja auch RadMaskedTextInput Eingaben zulässt, sollte es ja standardmäßig schon per Tab fokussierbar sein (oder unterdrückt dieses wegen der Maskierung die Tab-Taste?).
Oder unterbindet das Grid die Fokussierbarkeit?

_
_Cashisclay Themenstarter:in
277 Beiträge seit 2014
vor 5 Jahren

Moin zusammen,

ich hab es mit einer Standard TextBox nicht ausprobiert, weil ein RadMaskedTextInput vorgegeben ist.
Ich denke das Grid unterbindet es.

1.040 Beiträge seit 2007
vor 5 Jahren

Also ein einfacher Test mit Textboxen (kein Telerik vorhanden) hat ergeben, dass das Ganze wunderbar funktioniert.

Wenn das Grid angezeigt wird, werden die Textboxen "angetabt", wenn das Grid unsichtbar geschaltet wird eben nicht (Visibility am Grid setzen, keine Ahnung was Grid_Visibility ist).
Ebenso funktioniert es, wenn einzelne Textboxen unsichtbar geschaltet werden.

Funktioniert es mit RadMaskedTextInput denn, wenn die Controls angezeigt werden? 🤔

_
_Cashisclay Themenstarter:in
277 Beiträge seit 2014
vor 5 Jahren

Servus p!lle,

sorry für die späte Rückmeldung meinerseits.

Ich hab es gerade mal mit der MaskedTextBox versucht und dort klappt es aktuell bei mir auch nicht.
Das Grid_Visibility hab ich mal weggelassen.

                        <Grid Visibility="{Binding ElementName=ListBox, Path=SelectedIndex, Converter={StaticResource IntEqualsParameterToVisible}, ConverterParameter=1}">

                            <Grid.ColumnDefinitions>

                                <ColumnDefinition Width="25"  />
                                <ColumnDefinition Width="Auto"/>
                                <ColumnDefinition Width="Auto"/>
                                <ColumnDefinition Width="Auto"/>
                                <ColumnDefinition Width="25"  />

                            </Grid.ColumnDefinitions>

                            <Grid.RowDefinitions>

                                <RowDefinition Height="*" />
                                <RowDefinition Height="35"/>
                                <RowDefinition Height="*" />

                            </Grid.RowDefinitions>

                            <xctk:MaskedTextBox Grid.Column="1" Grid.Row="1"
                                                    Margin="3"
                                                        VerticalContentAlignment="Center" HorizontalContentAlignment="Center"
                                                            Text="{Binding RadRibbonGroupFilterTrunkIDFromText, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
                                                                Mask="00\.00\.00\.00\.\0"
                                                                    MinWidth="100"
                                                                        TabIndex="1"/>

                            <Label              Grid.Column="2" Grid.Row="1"
                                                    Content=" - "
                                                        VerticalContentAlignment="Center" HorizontalContentAlignment="Center"/>

                            <xctk:MaskedTextBox Grid.Column="3" Grid.Row="1"
                                                    Margin="3"
                                                        VerticalContentAlignment="Center" HorizontalContentAlignment="Center"
                                                            Text="{Binding RadRibbonGroupFilterTrunkIDToText, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
                                                                Mask="00\.00\.00\.00\.\0"
                                                                    MinWidth="100"
                                                                        TabIndex="2"/>

                        </Grid>

Edit Grid befindet sich in einer RadRibbonGroup. Macht das vielleicht den Unterschied? (Telerik)

1.040 Beiträge seit 2007
vor 5 Jahren

Anscheinend machen ja die Telerik-Controls die Probleme.
Entweder du testet es mal mit normalen Controls oder du schaust dir evtl. das an: [Tutorial] Vertrackte Fehler durch Vergleich von echtem Projekt mit minimalem Testprojekt finden.

Im Standard scheint ja alles korrekt zu funktionieren.