myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » GUI: WPF und XAML » Beim Öffnen eines WPF-Fensters aus einer Forms-Applikation erscheint Exception
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

Beim Öffnen eines WPF-Fensters aus einer Forms-Applikation erscheint Exception

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
thorran
myCSharp.de-Mitglied

Dabei seit: 17.10.2011
Beiträge: 31


thorran ist offline

Beim Öffnen eines WPF-Fensters aus einer Forms-Applikation erscheint Exception

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo,

ich habe eine Dll, die WPF-Dialoge enthält (gekapselt):

Beispiel:

C#-Code:
public void ShowError(Exception exception)
{
   new WpfWindow(exception.Message).ShowDialog();
}

In meine Forms-Applikation binde ich die Dll ein und kann über ShowError(exc) auch das Fenster öffnen.

Aber:
Wen z.B. beim Start der Forms-Applikation die Methode aufgerufen wird bekomme ich manchmal folgende Exception:

Fehlermeldung:
Zeilennummer "12" und Zeilenposition "6" von "Beim Festlegen der Eigenschaft "System.Windows.FrameworkElement.Width" wurde eine Ausnahme ausgelöst.".

XML-Code:
<Window x:Class="Tools.ErrorWindow"
             x:ClassModifier="internal"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             xmlns:p="clr-namespace:Tools"
             mc:Ignorable="d"
             Title="" SizeToContent="WidthAndHeight" WindowStyle="SingleBorderWindow"
             ResizeMode="NoResize" ShowInTaskbar="False" Icon="Resources/BlancIcon.ico" Loaded="Window_Loaded"
>
    <StackPanel Width="550">

Wenn die Applikation läuft, lässt sich das WPF-Fenster problemlos öffnen.

Kann mir jemand sagen, was ich falsch mache?

viele Grüße
Thorran
21.01.2020 14:43 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 13.966
Herkunft: Stuttgart/Stockholm


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Was sagt Dir die InnerException Deiner Exception? Da wird ne Info drin stehen.
21.01.2020 15:16 Beiträge des Benutzers | zu Buddylist hinzufügen
thorran
myCSharp.de-Mitglied

Dabei seit: 17.10.2011
Beiträge: 31

Themenstarter Thema begonnen von thorran

thorran ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

InnerException:

Fehlermeldung:
In der Arithmetischen Operation ist ein Über- oder Unterlauf aufgetreten.
21.01.2020 15:19 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 13.966
Herkunft: Stuttgart/Stockholm


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Ich möchte Dir eigentlich nicht alles aus der Nase ziehen; daher ein weiterer Tipp zur Selbsthilfe:

Was sagt Dir diese Exception? Hast Du danach gegoogelt, wann diese Exception auftreten kann?
Tipp: die englische Fehlermeldung lautet

Fehlermeldung:
Overflow or underflow in the arithmetic operation.

Deine Google Recherchen sollten Dir eigentlich ein Hinweis geben, dass dies an einer Grid-/Layout-Auflösung liegen könnte; weil die Werte sehr klein oder sehr groß sind.
Mehr sieht man hier als Helfer auch nicht.
21.01.2020 15:26 Beiträge des Benutzers | zu Buddylist hinzufügen
thorran
myCSharp.de-Mitglied

Dabei seit: 17.10.2011
Beiträge: 31

Themenstarter Thema begonnen von thorran

thorran ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Ok, Danke!

...ich verstehe, dass der Wert 500 zu klein oder (sehr wahrscheinlich zu groß) ist.

Aber warum?
Wenn ich das Fenster im laufenden Betrieb öffne, wird alles Prima dargestellt.
Wenn ich das Fenster beim Start der Applikation anzeigen will bekomme ich teilweise diese Fehlermeldung.


Folgende Lösung habe ich gefunden:

C#-Code:
[DllImport( "msvcr70.dll", CallingConvention = CallingConvention.Cdecl )]
public static extern int _fpreset();

// Konstruktor
public SomeView()
{
  // Reset the Floating Point (When called from External Application there was an Overflow exception)
  _fpreset();

  // Initialize the Component
  InitializeComponent();
}

Link:
 https://social.msdn.microsoft.com/Forums...ation?forum=wpf

Mal ganz ehrlich, das sieht schon sehr Abenteuerlich aus!

Gibt es da keine schöne Lösung für das Problem?
22.01.2020 07:16 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 13.966
Herkunft: Stuttgart/Stockholm


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat von thorran:
Mal ganz ehrlich, das sieht schon sehr Abenteuerlich aus!

Genauso wie etwas durchaus auch als "Abenteuerlich" bezeichnet werden kann, was Du da insgesamt machst - daher passt das doch fröhlich Augenzwinkern

Zitat von thorran:
...ich verstehe, dass der Wert 500 zu klein oder (sehr wahrscheinlich zu groß) ist.

Aber warum?

Als ich damals über das Problem gestoßen bin, bin ich der Meinung, dass die entsprechenden Treffer in Google gesagt haben, dass das daran liegt, dass der Wert zu dem Zeitpunkt eben NICHT der gewünschte Wert von (in Deinem Fall) 500 ist; sondern zu diesem Zeitpunkt noch ein ungültiger Wert (zB -1?) ist.
Aber bin mir sicher, dass das in einen der ersten Treffer steht. Kannst es hier ja quoten, wenn Du es findest Daumen hoch
22.01.2020 14:39 Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 5 Monate.
Der letzte Beitrag ist älter als 5 Monate.
Antwort erstellen


© Copyright 2003-2020 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 14.07.2020 22:10