Ich habe eine Methode mit einer switch
Aussage wie diese, die jedes Mal, wenn die Größe des Fensters wird geändert aufgerufen werden:Methode Schriftgröße mit switch-Anweisung ändern
int fontSup = someBoolean ? 18 : 12;
int fontSmall = someBoolean ? 22 : 15;
int fontNormal = someBoolean ? 26 : 20;
int fontTitle = someBoolean ? 28 : 22;
switch (Window.DeviceFamily)
{
case DeviceFamily.Phone:
fontSup = someBoolean ? 18 : 6;
fontSmall = someBoolean ? 22 : 8;
fontNormal = someBoolean ? 26 : 12;
fontTitle = someBoolean ? 28 : 14;
break;
case DeviceFamily.Tablet:
fontSup = someBoolean ? 18 : 8;
fontSmall = someBoolean ? 22 : 12;
fontNormal = someBoolean ? 26 : 15;
fontTitle = someBoolean ? 28 : 17;
break;
case DeviceFamily.Desktop:
fontSup = someBoolean ? 18 : 12;
fontSmall = someBoolean ? 22 : 15;
fontNormal = someBoolean ? 26 : 20;
fontTitle = someBoolean ? 28 : 22;
break;
}
jetzt dachte ich, dass es eine mehr sein schöne und kürzere Lösung hierfür mit einer privaten Methode. Aber hier kämpfe ich. Ich könnte so etwas tun:
Ich müsste diese Methode nur für jede Schriftart aufrufen, die ich ändern möchte. Aber ich denke nicht, dass dies der schönste und einfachste Weg ist, um das zu tun, was ich will. Vielleicht ist es einfach zu früh am Morgen logisch zu denken.
Ich habe auch versucht dies:
private int SetFontSize (bool someBoolean, int firstValue, int secondValue)
{
return (someBoolean ? firstValue : secondValue);
}
Aber meiner Meinung nach ist dies eine Verbesserung nicht wirklich, weil ich gerade fontSup = someBoolean ? 18 : 6;
-fontSup = SetFontSize(someBoolean, 18, 6);
sich ändern müssten.
Könnten Sie mir bitte helfen, eine angemessene Lösung zu bekommen?
Ich denke, Microsoft bietet einige allgemeine Auflösungen Einstellungen, die Sie verwenden können oder programmgesteuert tun es selbst. –
Falls Sie xlab verwenden oder es bereits tun möchten, steht ein [FontManager] (http://xlabs.github.io/html/class_x_labs_1_1_forms_1_1_services_1_1_font_manager.html) zur Verfügung. –
Switch-Methode ist sauber genug imho. Für hartcodierte Parameter. Wenn Sie diese Einstellungen in einer externen Datei (z. B. xml) speichern, ist 'Dictionary' eine bessere Option. Wenn Sie eine Methode aufrufen wollen, übergeben Sie einfach alle Schriften (als 'ref' Parameter) und' someBoolean'. Sie können erwägen, alle Zeichensätze innerhalb eines Typs zu speichern, dann müssen Sie nur eine Instanz davon (ohne 'ref') anstelle von 4 Zeichensätzen übergeben. – Sinatr