Der Mausklick-Ereignishandler deaktiviert die ToggleButton-UmschaltungC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Der Mausklick-Ereignishandler deaktiviert die ToggleButton-Umschaltung

Post by Anonymous »

Ich habe einen ToggleButton mit einem PreviewMouseDown-Ereignishandler. Alles funktioniert gut. Wenn ich jedoch MessageBox.Show("Message") zu diesem Handler hinzufüge, wechselt der ToggleButton nicht mehr in den gedrückten Zustand, was bedeutet, dass die Eigenschaft IsChecked immer falsch ist. Warum?

Code: Select all

private void ToggleButton_OnPreviewMouseDown(object sender, MouseButtonEventArgs e)
{
MessageBox.Show("Message");
}

Ein minimal reproduzierbares Beispiel kann wie folgt erstellt werden. Erstellen Sie zunächst ein WPF-Projekt über die Befehlszeile wie folgt:

Code: Select all

dotnet new wpf --name "PreviewMouseDown" -lang "C#"
cd PreviewMouseDown
Bearbeiten Sie dann MainWindow.xaml.cs wie folgt:

Code: Select all

using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Input;

namespace PreviewMouseDown;

public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}

private void ToggleButton_OnPreviewMouseDown(object sender, MouseButtonEventArgs e)
{
MessageBox.Show("Message");
}
}
Und MainWindow.xaml wie folgt:

Code: Select all









Dann kompilieren und wie folgt ausführen:

Code: Select all

dotnet build
dotnet run
Und Sie werden sehen, dass „No PreviewMouseDown“ ein- und ausgeschaltet werden kann, aber „With PreviewMouseDown“ immer ausgeschaltet bleibt:
Image

Hinweis – reproduziert mit net10.0-windows

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post