Software & Apps

Software und Apps sind aus unserem Alltag nicht mehr wegzudenken; von Musik- und Videobearbeitung, Antiviren-Tools, VPN-Clients bis hin zu Office und gewissen Alternativen - hier dreht sich alles um Software & Apps für Deinen PC.
67.362 Beiträge

Ask Me Anything: Blickwechsel

Du stellst die Fragen, ein außergewöhnlicher Nutzer antwortet! Begegne mit Deinen Fragen anderen Menschen hautnah und persönlich.
Kann man einzelne Textabschnitte/Absätze in einem Textverarbeitungsprogramm, oder Webbrowser demarkieren?

Ich habe ein richtiges Nischenproblem und hab nach stundenlangem Googeln leider keine Lösung finden können.

Ich hoffe sehr, dass mir hier eventuell jemand weiter helfen kann.

Ich habe einen teilweise sehbehinderten Freund, der einen Screenreader verwendet.

Der Screenreader hat die Option, nur den ausgewählten Text vorzulesen, anstatt das ganze Dokument oder die ganze Webseite.

Mein Freund ist Student und nimmt an Webentwicklungskursen teil und versucht, logischerweise, den Stoff mithilfe seines Screenreaders zu erlernen.

Das Problem dabei ist folgendes: In Programmierkursen gibt es oft Codeschnipsel direkt mitten im Text, um das Arbeitsmaterial zu visualisieren.

Wie ihr euch sicherlich vorstellen könnt, ist das ein Problem, da der Screenreader solche Codeschnipsel als völliges Kauderwelsch vorliest und diese sind auch häufiger sehr lang.

Der Kumpel hat mich deshalb gefragt, ob es möglich ist den gesamten Text der Aufgabe/Vorlesung auszuwählen (zum Beispiel klassisch mit der Maus markieren oder mit dem Keyboardshortcut Strg+A/cmd+A), aber dabei einen oder mehrere einzelne Absätze/Codeschnipsel unmarkiert zu lassen, oder diese proaktiv wieder zu demarkieren.

Wie ihr euch wahrscheinlich schon denken könnt, hatte ich als ein nicht sehbehinderter Mensch nie dieses Problem.

Wenn ich beispielsweise einen Text ohne einen bestimmten Absatz oder Satz kopieren wollte, habe ich einfach den gesamten benötigten Text vor diesem Satz ausgewählt, ihn in mein Textverarbeitungsprogramm kopiert, dann den gesamten benötigten Text danach ausgewählt, diesen rüber kopiert und so weiter.

Dies ist für meinen sehbehinderten Freund keine Option, da er viele Stunden am Tag lernt und das ständige Auswählen von Textteilen fürs Vorlesen nicht nur mühsam für ihn ist, sondern ihn auch völlig aus seinem „Lernfluss“ wirft, wie er es beschreibt. Er muss deshalb sogar häufig Absätze, die er bereits gehört hat, erneut auswählen, weil er sich nicht richtig darauf konzentrieren konnte.

Um meine Frage also noch einmal besser zu veranschaulichen:

Wenn ich einen Text, oder ein Skript mit einer Überschrift und beispielsweise drei Absätzen habe – Absatz A, Absatz B und Absatz C – gibt es eine Möglichkeit oder eine Tastenkombination, um nur die Überschrift, Absatz A und Absatz C auszuwählen und Absatz B unmarkiert zu lassen?

Ask Me Anything: Themenspecials

Im gutefrage Themenspecial beantworten Verbände, Organisationen und Personen des öffentlichen Lebens Deine Fragen zu aktuellen Themen.
WPF RichTextBox: Schriftart und Schriftgröße ändern sich nicht?

Hallo zusammen,

ich habe aktuell ein Problem mit meiner WPF-Anwendung. In meiner Benutzeroberfläche möchte ich die Schriftart und die Schriftgröße des Textes in einer RichTextBox (DescriptionTextBox) ändern. Dafür habe ich zwei ComboBox-Steuerelemente erstellt: eines für die Schriftart und eines für die Schriftgröße. Obwohl die Ereignis-Handler korrekt aufgerufen werden, ändert sich die Darstellung des Textes nicht.

Hier ist der relevante Code:

XAML

<ComboBox Width="100" Margin="5" SelectionChanged="FontFamily_SelectionChanged" Style="{StaticResource RoundedComboBox}">
    <ComboBoxItem Content="Arial" IsSelected="True"/>
    <ComboBoxItem Content="Times New Roman"/>
    <ComboBoxItem Content="Verdana"/>
    <ComboBoxItem Content="Helvetica"/>
    <ComboBoxItem Content="Calibri"/>
</ComboBox>
<ComboBox Width="100" Margin="5" SelectionChanged="FontSize_SelectionChanged" Style="{StaticResource RoundedComboBox}">
    <ComboBoxItem Content="8"/>
    <ComboBoxItem Content="9"/>
    <ComboBoxItem Content="10"/>
    <ComboBoxItem Content="11"/>
    <ComboBoxItem Content="12"/>
    <ComboBoxItem Content="14"/>
    <ComboBoxItem Content="16"/>
    <ComboBoxItem Content="18"/>
    <ComboBoxItem Content="20" IsSelected="True"/>
    <ComboBoxItem Content="22"/>
    <ComboBoxItem Content="24"/>
    <ComboBoxItem Content="26"/>
    <ComboBoxItem Content="28"/>
    <ComboBoxItem Content="36"/>
    <ComboBoxItem Content="48"/>
    <ComboBoxItem Content="72"/>
</ComboBox>

C# Code

private void FontFamily_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    ComboBox comboBox = sender as ComboBox;
    if (comboBox.SelectedItem is ComboBoxItem selectedItem && DescriptionTextBox != null)
    {
        ApplyPropertyValueToSelection(TextElement.FontFamilyProperty, new FontFamily(selectedItem.Content.ToString()));
    }
}


private void FontSize_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    ComboBox comboBox = sender as ComboBox;
    if (comboBox.SelectedItem is ComboBoxItem selectedItem)
    {
        if (double.TryParse(selectedItem.Content.ToString(), out double fontSize) && DescriptionTextBox != null)
        {
            ApplyPropertyValueToSelection(TextElement.FontSizeProperty, fontSize);
        }
    }
}


private void ApplyPropertyValueToSelection(DependencyProperty property, object value)
{
    if (DescriptionTextBox != null)
    {
        TextRange selectionRange = new TextRange(DescriptionTextBox.Selection.Start, DescriptionTextBox.Selection.End);
        selectionRange.ApplyPropertyValue(property, value);
    }
}

Problem

Wenn ich die Schriftart oder die Schriftgröße in der ComboBox auswähle, wird der entsprechende Event-Handler (FontFamily_SelectionChanged oder FontSize_SelectionChanged) aufgerufen, aber die Darstellung des Textes in der RichTextBox ändert sich nicht.

Hat jemand eine Idee ?