Laden...

CheckBox hat seltsames Verhalten [gelöst]

Letzter Beitrag vor 13 Jahren 5 Posts 1.280 Views
CheckBox hat seltsames Verhalten [gelöst]

Hallo zusammen,

ich bin hier gerade auf ein komisches Problem gestoßen: Die WPF CheckBox zeigt ein sehr seltsames Verhalten in folgendem Markup:


<CheckBox Name="cbxReplace" >
    <StackPanel Orientation="Horizontal">
        <TextBlock Text="Replace:" Width="70" />
        <TextBox Name="txtReplcement" Width="30" VerticalAlignment="Center" IsEnabled="{Binding IsChecked, ElementName=cbxReplace}" />
        <TextBlock Text="by" Margin="6,0" />
        <TextBox Name="txtReplaceBy"  Width="30" VerticalAlignment="Center" IsEnabled="{Binding IsChecked, ElementName=cbxReplace}" />
    </StackPanel>
</CheckBox>

Im Falle von cbxReplace.IsChecked sind die beiden Textboxen enabled. Und jetzt das Problem: Wenn ich in eine Checkbox was schreiben will, dann geht das problemlos solange ich nicht die '-' bzw. '_' Taste benutze, also die links neben RShift. Gleiches gilt für die Minus-Taste vom Nummernblock. Wenn ich also eine dieser Tasten benutze, wird cbxReplace.IsChecked auf false gesetzt... es gibt kein code-behind zu diesem Stück Markup, genausowenig habe ich Keybindings eingesetzt...

EDIT: Ich habe gerade zum Testen dieses Stück Markup noch in ein neues WPF-Projekt /-Fenster eingesetzt ohne weiteren Content und code-behind. Das Verhalten blieb gleich.

Kann mir dazu jemand weiterhelfen?

Dankeschön, DiscMaster

"Flache Hierarchien schaffen! Das muss konkret nicht unbedingt etwas bedeuten, kommt aber immer sehr gut an."
Bernd Stromberg

Hallo,

das ist kein seltsames Verhalten, sondern das ist normal. CheckBoxen in Windows ließen sich schon immer mit - abwählen und mit + anwählen.

Die WPF CheckBox überschreibt dafür OnKeyDown in der das Checked Property entsprechend gesetzt wird.

Baka wa shinanakya naoranai.

Mein XING Profil.

Hm...das mit dem +/- stimmt... Ist mir nie aufgefallen.

Ich hab das jetz so gelöst, das ich die CheckBox in das StackPanel gepackt habe und damit liegen die Textboxen nicht mehr in der CheckBox sondern auf gleicher ebene im StackPanel.

Danke für den Hinweis mit dem +/-

"Flache Hierarchien schaffen! Das muss konkret nicht unbedingt etwas bedeuten, kommt aber immer sehr gut an."
Bernd Stromberg

So gehts natürlich auch 😃 Ansonsten hätt die Möglichkeit bestanden einfach das entsprechende PreviewKeyDown Ereigniss zu behandeln und damit der CheckBox entsprechend zuvorzukommen.

Baka wa shinanakya naoranai.

Mein XING Profil.

Mensch natürlich! Ich hatte mich schon gewundert, weil ich das KeyDown behandelt hatte aber da ist die CheckBox ja vor der TextBox dran...

Danke für den leichten Stoß auf den Hinterkopf!

"Flache Hierarchien schaffen! Das muss konkret nicht unbedingt etwas bedeuten, kommt aber immer sehr gut an."
Bernd Stromberg