In System.Windows.Forms.Button gibt es eine Eigenschaft DialogResult, wo ist diese Eigenschaft in der System.Windows.Controls.Button (WPF)?Wo ist Button.DialogResult in WPF?
Antwort
Es gibt keine integrierte in Button.DialogResult, aber Sie können Ihre eigenen erstellen (wenn Sie mögen) eine einfache angebracht Eigenschaft mit:
public class ButtonHelper
{
// Boilerplate code to register attached property "bool? DialogResult"
public static bool? GetDialogResult(DependencyObject obj) { return (bool?)obj.GetValue(DialogResultProperty); }
public static void SetDialogResult(DependencyObject obj, bool? value) { obj.SetValue(DialogResultProperty, value); }
public static readonly DependencyProperty DialogResultProperty = DependencyProperty.RegisterAttached("DialogResult", typeof(bool?), typeof(ButtonHelper), new UIPropertyMetadata
{
PropertyChangedCallback = (obj, e) =>
{
// Implementation of DialogResult functionality
Button button = obj as Button;
if(button==null)
throw new InvalidOperationException(
"Can only use ButtonHelper.DialogResult on a Button control");
button.Click += (sender, e2) =>
{
Window.GetWindow(button).DialogResult = GetDialogResult(button);
};
}
});
}
Dies ermöglicht es Ihnen zu schreiben:
<Button Content="Click Me" my:ButtonHelper.DialogResult="True" />
und bekommen Verhalten entspricht WinForms (Klick auf die Schaltfläche bewirkt, um den Dialog zu schließen und das angegebene Ergebnis)
In WPF gibt es keine Button.DialogResult
. Sie müssen nur die DialogResult
der Window
zu wahr oder falsch gesetzt:
private void buttonOK_Click(object sender, RoutedEventArgs e)
{
this.DialogResult = true;
}
@Shimmy: Dies sollte akzeptiert werden Antwort eigentlich .. – Mangesh
einfach sicher, dass Sie das Formular ShowDialog
mit gezeigt haben, anstatt Show
. Wenn Sie das letztere tun, erhalten Sie die folgende Ausnahme ausgelöst:
InvalidOperationException wurde nicht behandelt
Dialogresult nur dann gesetzt werden kann, nachdem Fenster erstellt wird und als Dialog angezeigt.
MessageBoxResult result = MessageBox.Show("","");
if (result == MessageBoxResult.Yes)
{
// CODE IN HERE
}
else
{
// CODE IN HERE
}
- 1. WPF Standardbefehle - Wo ist Exit?
- 2. WPF-Strukturansicht: Wo ist die ExpandAll() -Methode
- 3. Wo ist Microsoft's WPF/Silverlight Charting in .NET 4.0 verschwunden?
- 4. Wo ist untyped_to_typed Methode?
- 5. WPF, wo NLog-Protokolle gespeichert werden
- 6. WPF MahApps.Metro - Wo legen Sie ResourceDictionaries ab?
- 7. Wo Code in (in erster Linie) fensterlose WPF app?
- 8. WPF/C#: Wo sollte ich Benutzereinstellungen speichern?
- 9. Wo finde ich den ersten WPF-Tabstopp?
- 10. Wo finde ich kostenlose WPF Datagrid Styles?
- 11. Wo ist Polygon.Double in Java?
- 12. Wo ist "Sequenz" in Scalaz7
- 13. Wo ist Math.round() in Dart?
- 14. Wo ist JConsole in Leopard
- 15. Wo ist FrameworkPropertyMetadata in UWP?
- 16. Wo ist getProtectionDomain() in jruby?
- 17. Wo ist wpath in VS2015
- 18. Ist CollectionViewSource in WPF optimal?
- 19. Linq - Wo(). Wo() ist UND oder ODER?
- 20. Wo kann ich eine kostenlose maskierte TextBox in WPF finden?
- 21. Wo ist das Auswahlwerkzeug für den WPF-Designer in Visual Studio 2010?
- 22. Guava: Wo ist CharEscaper?
- 23. Wo ist org.apache.batik.dom.svg.SVGDOMImplementation weg?
- 24. Wo ist Float # to_d?
- 25. Wo ist Time.advance dokumentiert?
- 26. Wo ist OutputStream Implementation
- 27. Wo ist Illuminate?
- 28. Wo ist erase_if?
- 29. .net: Wo ist System.Design.NativeMethods?
- 30. Wo ist dieses Juwel?
Ich lernte neue Sachen in Herer, diese Attachging, Eventho im nicht zu verwenden es in diesem Fall wird sicher nützlich sein! Vielen Dank – Shimmy
Ich wusste nie über die GetWindow-Funktion, das ist einfach unglaublich! – Shimmy
Eine großartige Lösung, die in ihrer Einfachheit verbessert wurde. –