Eingestellten Skalierungsfaktor (in dpi) ermitteln
- VB.NET
Sie verwenden einen veralteten Browser (%browser%) mit Sicherheitsschwachstellen und können nicht alle Funktionen dieser Webseite nutzen.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Es gibt 20 Antworten in diesem Thema. Der letzte Beitrag () ist von MAXIMizor.
-
-
-
Danke für die schnelle Antwort
Aber: diese Klasse kann nicht vererbt werden. Die Deklaration müsste also so aussehen:
Jedoch gibt es bei der Ausführung folgenden Fehler: "Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt." Ich muss dem Verweis also eine Instanz zuweisen, aber wie geht das, wenn ich keine Instanz erstellen kann?
Danke für die MüheDieser Beitrag wurde bereits 1 mal editiert, zuletzt von „MAXIMizor“ () aus folgendem Grund: Problem bei der Verwendung
-
MAXIMizor schrieb:
ich suche eine Möglichkeit, wie man den eingestellten Skalierungsfaktor (in dpi) ermitteln kann.
"den eingestellten Skalierungsfaktor" gibt es nicht.
Skalierungsfaktor von was? -
-
Willst Du ein Bild beim Druck vergrößern oder verkleinern?Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch
Ein guter .NET-Snippetkonverter (der ist verfügbar).
Programmierfragen über PN / Konversation werden ignoriert! -
Sorry, ein paar kleine Ungenauigkeiten: Ich arbeite nicht an etwas für den Print, sondern für Screenanzeige.
Mit eingestelltem Skalierungsfaktor meine ich das, was der User einstellen kann, unter "Eigenschaften von Anzeige" in der Registerkarte "Einstellungen" mit einem Klick auf den Button "Erweitert", in dem Fenster, das sich dann öffnet unter der Registerkarte "Allgemein". (XP) Da kann man dann in einem Drop-Down-Menü einstellen, welchen Skalierungsfaktor man haben will. Standard ist dabei i.d.R. 96 dpi.
Nur, wenn ein User diesen Wert abgeändert haben sollte, z.B. auf 120 dpi, ist es wahrscheinlich, dass es zu Darstellungsfehlern meiner Anwendung kommen könnte. Darum muss ich beim Start der Anwendung auslesen lassen, welchen eingestellten Skalierungsfaktor der User verwendet, um ggf. eine Warnmeldung anzeigen zu lassen, wenn der Skalierungsfaktor über oder unter 96 dpi liegt.
Danke für Eure Geduld, ich bin auf diesem Gebiet ein absoluter Neuling...
MAXIMizor -
Vergebliche Lebensmüh.
DPIx/y ist ReadOnly.Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch
Ein guter .NET-Snippetkonverter (der ist verfügbar).
Programmierfragen über PN / Konversation werden ignoriert! -
auffm Screen gibts nur pixel. Oder arbeitest du an einer Screen-Darstellung, wo man die Maße mittm Lineal vom Bildschirm abnehmen soll?
-
Ja, das ist ReadOnly. Aber ich möchte den Wert ja auch nur auslesen, um dann eine Warnmeldung auszugeben; etwa so:
VB.NET-Quellcode
- Dim dpiErmitteln As System.Drawing.Graphics 'wie man einer nicht vererbbaren Klasse einen Wert zuweist, weiß ich nicht. Das ist ja das Problem.
- Dim dpiWert As Single
- dpiWert = dpiErmitteln.DpiX
- If Not dpiWert = 96 Then
- MessageBox.Show("Für optimale Darstellung werden 96 dpi empfohlen. Sie haben jedoch "& dpiWert & " eingestellt.", "Falsche Anzeigeeinstellung")
- End If
-
-
MAXIMizor schrieb:
Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch
Ein guter .NET-Snippetkonverter (der ist verfügbar).
Programmierfragen über PN / Konversation werden ignoriert! -
-
Ich hatte hauptsächlich das Return / Return False gemeint.
Was nützt es, wenn Du einen Fehler ausgibst und nicht reagierst.
Wenn es eine Warnung ist, solltest Du den Text entsprechend umformulieren:
"Es wird mit der Einstellung XXX weitergearbeitet" oder so.Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch
Ein guter .NET-Snippetkonverter (der ist verfügbar).
Programmierfragen über PN / Konversation werden ignoriert! -
Ja, stimmt. Hab den Code nicht aufmerksam gelesen. Ich meinte natürlich:
Aber das Problem bleibt immer noch folgendes: Wie setze ich die nicht vererbbare Klasse ein? Ich weiß nicht welches Object ich ihr zuweisen muss, damit es funktioniert. -
Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch
Ein guter .NET-Snippetkonverter (der ist verfügbar).
Programmierfragen über PN / Konversation werden ignoriert! -
-
geht in einer Zeile. Wenn du das im Form-Code machst.
CreateGraphics: msdn.microsoft.com/de-de/libra…ntrol.creategraphics.aspx
Graphics: msdn.microsoft.com/de-de/libra…tem.drawing.graphics.aspx -
ich sags nochmal: in .Net ist die dpi - Angabe für bildschirm-ausgaben i.a. irrelevant.
alle Berechnungen erfolgen in Pixel, und pixel sind so hoch wie breit.
eine Anzeige kann man so berechnen, dass sie auf die verfügbare Fläche passt, und wenn die verfügbare Fläche zu klein ist, dann hat man pech und muß scrollen. -
ErfinderDesRades schrieb:
und wenn die verfügbare Fläche zu klein ist, dann hat man pech und muß scrollen.
oder Papier nachfüllen, wenn es auf den Drucker geht.
Dort ist DPI sinnvoll und ein Maß für die Breite des Bildes auf dem Papier.Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch
Ein guter .NET-Snippetkonverter (der ist verfügbar).
Programmierfragen über PN / Konversation werden ignoriert!
-
Tags
-
Ähnliche Themen
-
3 Benutzer haben hier geschrieben
- Gast (11)
- RodFromGermany (6)
- ErfinderDesRades (4)