目前,我正在试图让一个文本框为我的GUI与XNA,我想知道我怎么能找到一个字符串的标记文本。点击 对于instanceI有这样的文字:点击

Hey there, I was <r>going to</r> the <b>Mall</b> today!

所以<r>标签将是红色文字和<b>标签将代表蓝色文本。点击 我想知道确切位置的红色文本开始和蓝色文本开始的位置,所以我可以单独渲染他们。结果 你有什么建议,做些什么什么,以及用于做呢?

预先感谢。

有帮助吗?

解决方案

好了,你可以只解析线,当你达到设定的文本的颜色属性,以便它现在呈现蓝色,但它必须是一个单独的渲染调用,否则整个字符串会变成蓝色。所以,如果你犯了一个新的字符串,当你临到一个标签,然后设置,那么颜色属性渲染的字符串,它应该工作。

其他提示

我会建议用两种方法做这

首先,有一个可以把你的字符串,返回字符串的颜色对的集合的方法:

struct StringColorPair {
    public string myText;     // the text
    public Color myColor;     // the color of this text
    public int myOffset;      // characters before this part of the string 
                              // (for positioning in the Draw)
}

public List<StringColorPair> ParseColoredText(string text) {
    var list = new List<StringColorPair>();    

    // Use a regex or other string parsing method to pull out the
    // text chunks and their colors and then for each set of those do:
    list.Add(
        new StringColorPair {
            myText = yourParsedSubText,
            myColor = yourParsedColor,
            myOffset = yourParsedOffset }
    );

    return list;
}

然后,你将需要这样的拉伸方法,包括:

public void Draw(List<StringColorPair> pairs) {
    foreach(var pair in pairs) {
        // Draw the relevant string and color at its needed offset
    }
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top