Ich muss eine Ansicht auf einen Klick auf eine Schaltfläche zeigen. Dies ist der Code für das Ereignis Click
Wie Popup-Steuerelement verwenden, um eine Ansicht anzuzeigen?
private void Button_Click(object sender, RoutedEventArgs e)
{
Button s = sender as Button;
//some stuff needed to recognise which button was pressed
myPopup.PlacementTarget = s;
myPopup.Placement = System.Windows.Controls.Primitives.PlacementMode.Top;
myPopup.IsOpen = true;
}
dies ist das Element in XAML definiert
<Popup IsOpen="False" StaysOpen="True" Name="myPopup">
<view:myCustomView />
</Popup>
Ich habe 2 Problem mit diesem.
1- Der Hintergrund meiner Ansicht ist schwarz, auch wenn ich es nicht gesetzt (ich glaube, es transparent sein sollte?)
2- Wenn ich in der Popup auf eine beliebige Stelle, diese verschwinden einfach
Was ist der richtige Weg, um meine Sichtweise zu zeigen? Ich will nichts von den ViewModel
binden, den Knopf zu dieser neuen Sicht besitzen, die sein eigenes Viewmodel hat
Beachten Sie, dass auf der Veranstaltung Button_Click
i zum ViewModel
von myCustomView
einige Parameter senden, dass einige ändern seine Funktionalität (deshalb muss ich jedes Mal, wenn das Button_Click
Ereignis ausgelöst wird, eine neue Instanz der Ansicht erstellen)
EDIT 1: Dank der Antwort von EdPlunkett konnte ich das Problem mit dem Hintergrund lösen. Ich brauche nur AllowsTransparency = "True" gesetzt
EDIT2:
ich meine Popup
über Kodex Hinter wie vorgeschlagen, so jetzt ist mein Code:
private void Button_Click(object sender, RoutedEventArgs e)
{
Button s = sender as Button;
System.Windows.Controls.Primitives.Popup popup = new System.Windows.Controls.Primitives.Popup();
popup.AllowsTransparency = true;
popup.Child = new myCustomView();
popup.PlacementTarget = s;
popup.Placement = System.Windows.Controls.Primitives.PlacementMode.Top;
popup.IsOpen = true;
popup.StaysOpen = true;
}
Das Problem ist, dass, wenn ich Klicken Sie in eines der in myCustomView definierten Steuerelemente, das Popup verliert den Fokus und wird geschlossen.
'myPopup' ist nirgendwo definiert ... meinst du' pippup'? – Fruchtzwerg
@ Fruchtzwerg Ja, tut mir leid, ich habe den Namen geändert und diesen vergessen. –
Fügen Sie 'AllowsTransparency =" True "' zu dem 'Popup' Element hinzu. –