Hallo,
folgender Code:
private void ChkBarrierefrei_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Tab)
{
if (ChkBarrierefrei.IsChecked.Value == true)
{
TBXEditor.Background = AKTIVES_ELEMENT_CONTRAST;
TBXEditor.BorderBrush = Brushes.Blue;
TBXEditor.BorderThickness = new Thickness(5);
TBXEditor.Focus();
}
}
}
Wenn der User Umschalt+Tab gedrückt habe, soll alles was mit TBXEditor zu tun hat, NICHT ausgeführt werden.
Wie geht das?
barrierefreies Webdesign, barrierefreie Softwareentwicklung mit C#, barrierefreie Softwareentwicklung mit Java
Schau dir mal die Eigenschaften und Methoden von der Klasse Keyboard
an, z.B. Modifiers:
bool shift = Keyboard.Modifiers.HasFlag(ModifierKeys.Shift);
if (e.Key == Key.Tab && !shift)
Ansonsten s.a. How to detect modifier key states in WPF?
Vielen Dank Th69!
Leider klappt meine Idee nicht:
private void ChkBarrierefrei_KeyDown(object sender, KeyEventArgs e)
{
bool shift = Keyboard.Modifiers.HasFlag(ModifierKeys.Shift);
if (e.Key == Key.Tab)
{
if (ChkBarrierefrei.IsChecked.Value == true)
{
TBXEditor.Background = AKTIVES_ELEMENT_CONTRAST;
TBXEditor.BorderBrush = Brushes.Blue;
TBXEditor.BorderThickness = new Thickness(5);
TBXEditor.Focus();
}
} else
if (e.Key == Key.Tab && !shift)
{
if (ChkBarrierefrei.IsChecked.Value == true)
{
edtErsetzen.Background = AKTIVES_ELEMENT_CONTRAST;
TBXEditor.Background = NICHTAKTIVES_ELEMENT_CONTRAST;
TBXEditor.BorderThickness = new Thickness(0);
}
}
}
Wenn die Checkbox ChkBarrierefrei aktiv ist und der Anwender drückt die Tabtaste dann bekommt die Textbox TBXEditor die Hintergrundfarbe Gelb und einen dicken Rand:
TBXEditor.Background = AKTIVES_ELEMENT_CONTRAST;
TBXEditor.BorderBrush = Brushes.Blue;
TBXEditor.BorderThickness = new Thickness(5);
TBXEditor.Focus();
Wenn die Checkbox ChkBarrierefrei aktiv ist und der Anwender drückt die Tabtaste und Umschalt-Taste dann darf die Textbox TBXEditor keinen dicken Rand und keine Hintergrundfarbe Gelb haben.
Der Grund warum diese Problematik auftritt ist wahrscheinlich, weil ich diese Ereignisse allgemein geschrieben habe:
private void TextBox_GotFocus(Object sender, EventArgs e)
{
if (ChkBarrierefrei.IsChecked.Value == true)
(sender as TextBox).Background = AKTIVES_ELEMENT_CONTRAST;
}
private void TextBox_LostFocus(Object sender, RoutedEventArgs e)
{ if (ChkBarrierefrei.IsChecked.Value == true)
(sender as TextBox).Background = NICHTAKTIVES_ELEMENT_CONTRAST;
}
<TextBox Name="edtErsetzen" BorderThickness="1" BorderBrush="Black" Width="150" ToolTip="Bitte Begriff eingeben, durch den der Suchbegriff ersetzt werden soll. Ersetzen Starten mit der Enter-Taste" KeyDown="edtErsetzen_KeyPress" GotFocus="TextBox_GotFocus" LostFocus="TextBox_LostFocus" TabIndex="4"/>
<Grid>
<CheckBox Name="ChkBarrierefrei" BorderThickness="1" Content="Editor ba_rrierefrei" Margin="8" Click="ChkBarrierefrei_CheckedChanged" TabIndex="5" KeyDown="ChkBarrierefrei_KeyDown"/>
</Grid>
</ToolBar>
Hat jemand eine Idee was ich tun muss, damit wenn die Checkbox aktiv ist und der Anwender drückt Umschalt-Tab nur die Hintergrundfarbe der Textbox edtErsetzen gelb wird?
barrierefreies Webdesign, barrierefreie Softwareentwicklung mit C#, barrierefreie Softwareentwicklung mit Java
das Thema ist beendet. Ich habe ein anderes Problem.
Habe gerade gedebuggt. ich eröffne einen neuen Thread!
barrierefreies Webdesign, barrierefreie Softwareentwicklung mit C#, barrierefreie Softwareentwicklung mit Java