AdornerDecorator und Registerkarte Probleme Stopp

stimmen
3

Ich verwende IDataErrorInfo zu validieren und Fehler in meinen Textfeldern anzuzeigen. Ich finde ich Tab habe einmal für das Textfeld und einmal für den AdornerDecorator.

Ich habe eine Fehlervorlage:

<ControlTemplate x:Key=ErrorTemplate>
        <StackPanel KeyboardNavigation.IsTabStop=False >
        <Border KeyboardNavigation.IsTabStop=False  BorderBrush=Red BorderThickness=1 Padding=2 CornerRadius=2>
            <AdornedElementPlaceholder KeyboardNavigation.IsTabStop=False />
        </Border>
        </StackPanel>                
    </ControlTemplate>

eine Textbox Vorlage:

<Style x:Key=TextBoxInError TargetType={x:Type TextBox}>
        <Setter Property=KeyboardNavigation.TabNavigation Value=None/>
        <Setter Property=FocusVisualStyle Value={x:Null}/>
        <Setter Property=Margin Value=0,5,0,5/>
        <Setter Property=AllowDrop Value=true/>
        <Setter Property=HorizontalContentAlignment Value=left/>
        <Setter Property=Template>
            <Setter.Value>
                <ControlTemplate TargetType={x:Type TextBox}>
                    <Grid  KeyboardNavigation.IsTabStop=False >
                        <Border  KeyboardNavigation.IsTabStop=False x:Name=Border Background={DynamicResource WindowBackgroundBrush} BorderBrush={DynamicResource SolidBorderBrush} BorderThickness=1 Padding=2 CornerRadius=2>
                            <ScrollViewer IsTabStop=False Margin=0 x:Name=PART_ContentHost Style={DynamicResource SimpleScrollViewer} Background={TemplateBinding Background}/>
                        </Border>
                    </Grid>
                    <ControlTemplate.Triggers>
                        <Trigger Property=Validation.HasError Value=true>
                            <Setter Property=ToolTip Value={Binding RelativeSource={RelativeSource Self}, Path=(Validation.Errors), Converter={StaticResource errorConverter}}/>
                        </Trigger>
                        <Trigger Property=IsEnabled Value=false>
                            <Setter Property=Foreground Value=Gray/>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

und erklären, ein Textfeld wie folgt aus:

<AdornerDecorator  KeyboardNavigation.IsTabStop=False >
<TextBox Margin=5,5,5,3 x:Name=txtName IsEnabled={Binding EditMode} Validation.ErrorTemplate={StaticResource ErrorTemplate}
 Text={Binding ApplicationName, Mode=TwoWay, ValidatesOnExceptions=True, NotifyOnValidationError=True, ValidatesOnDataErrors=True} 
 Height=25 MaxLength=50 MaxLines=1 Style={StaticResource TextBoxInError}/>
 </AdornerDecorator>

Wenn die adorner Runde ein Textfeld ist, wie oben dann, wenn ich die Registerkarte Textfeld zu verlassen und einmal die ‚Zierde‘ zu lassen (wie es scheint) Wenn ich die adorner um einen Stackpanel von Textfeldern dann ich Tab je einmal für den Text habe Boxen müssen dann durch alle ‚Schmuck‘ wiederum zurückgehen. Wenn durch die Verzierungen Tabbing geht der Fokus auf der roten in der Steuervorlage definiert Grenze ..

irgendwelche Ideen?

Vielen Dank

Veröffentlicht am 10/12/2008 um 01:20
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
6

Fügen Sie diese auf die Ressourcen Abschnitt des Fensters:

<Style TargetType="{x:Type Control}">
    <Setter Property="Focusable" Value="False"/>
</Style>

Weitere Informationen Blick auf meinem Blog: http://www.nbdtech.com/blog/archive/2008/05/25/WPF-Problems-with-Keyboard-Focus-When-Using-Validation.aspx

Beantwortet am 10/12/2008 um 09:39
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more