Állítsa font tulajdonságok RichTextBox

szavazat
0

Hi, I am fejlődő szerkesztő használatával RichTextBoxa WPF, azt kell végrehajtani, hogy a szolgáltatás a felhasználó beállíthatja font kiválasztott Text, ha néhány szöveg kiválasztva, ha semmi van kiválasztva, akkor betűtípussal kell határozni az új szöveget. Ha én meg a font tulajdonságok (például FontStyle, FontSize) RTB az utóbbi esetben akkor állítsd be a tulajdonságait az egész szöveget, Hogyan lehet beállítani font tulajdonságok az új szöveg (azaz, ha a felhasználó írja be a képen akkor jön az új betűtípus beállítás).

A kérdést 27/08/2009 06:58
a forrás felhasználó
Más nyelveken...                            


1 válasz

szavazat
5

Már végre egy eszköztár, amely megváltoztathatja a betűméretet, a család, szín, stb, amit találtam a részleteket is trükkös a WPF richtextbox. Beállítása a kiválasztási font van értelme, de ott is az alapértelmezett betűtípus tulajdonságai a szövegmezőbe, és a jelenlegi kalap tulajdonságai megküzdenie. Itt van, amit írtam, hogy ez a munka a legtöbb esetben a betűméretet. A folyamat meg kell egyeznie az fontfamily és fontcolor. Remélem ez segít.

    public static void SetFontSize(RichTextBox target, double value)
    {
        // Make sure we have a richtextbox.
        if (target == null)
            return;

        // Make sure we have a selection. Should have one even if there is no text selected.
        if (target.Selection != null)
        {
            // Check whether there is text selected or just sitting at cursor
            if (target.Selection.IsEmpty)
            {
                // Check to see if we are at the start of the textbox and nothing has been added yet
                if (target.Selection.Start.Paragraph == null)
                {
                    // Add a new paragraph object to the richtextbox with the fontsize
                    Paragraph p = new Paragraph();
                    p.FontSize = value;
                    target.Document.Blocks.Add(p);
                }
                else
                {
                    // Get current position of cursor
                    TextPointer curCaret = target.CaretPosition;
                    // Get the current block object that the cursor is in
                    Block curBlock = target.Document.Blocks.Where
                        (x => x.ContentStart.CompareTo(curCaret) == -1 && x.ContentEnd.CompareTo(curCaret) == 1).FirstOrDefault();
                    if (curBlock != null)
                    {
                        Paragraph curParagraph = curBlock as Paragraph;
                        // Create a new run object with the fontsize, and add it to the current block
                        Run newRun = new Run();
                        newRun.FontSize = value;
                        curParagraph.Inlines.Add(newRun);
                        // Reset the cursor into the new block. 
                        // If we don't do this, the font size will default again when you start typing.
                        target.CaretPosition = newRun.ElementStart;
                    }
                }
            }
            else // There is selected text, so change the fontsize of the selection
            {
                TextRange selectionTextRange = new TextRange(target.Selection.Start, target.Selection.End);
                selectionTextRange.ApplyPropertyValue(TextElement.FontSizeProperty, value);
            }
        }
        // Reset the focus onto the richtextbox after selecting the font in a toolbar etc
        target.Focus();
    }
Válaszolt 16/11/2010 22:33
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more