WPF 關鍵字高亮 Label自定義控制項

2022-01-16 12:37:38 字數 1714 閱讀 8748

工作中要開發乙個英語詞典小工具,通過單詞查詢出的例句中相應的單詞要進行高亮顯示,於是就做了乙個label自定義控制項。

**如下:

highlightlabel.cs

public class highlightlabel : label

set}

/// /// highlightforegroundproperty 屬性改變時,執行的方法

///

///

///

private static void onhighlightforegroundchanged(dependencyobject sender, dependencypropertychangedeventargs e)

/// /// 要高亮的單詞

///

public static dependencyproperty highlightwordproperty =

dependencyproperty.register("highlightword", typeof(string), typeof(highlightlabel), new propertymetadata(string.empty, new propertychangedcallback(onhighlightwordchanged)));

/// /// 要高亮的單詞

///

public string highlightword

set}

/// /// highlightwordproperty 屬性改變時,執行的方法

///

///

///

private static void onhighlightwordchanged(dependencyobject sender, dependencypropertychangedeventargs e)

static highlightlabel()

protected override void oncontentchanged(object oldcontent, object newcontent)

/// /// 設定高亮

///

private void sethighlight()

var regex = new regex(@"\b" + highlightword + @"\b", regexoptions.ignorecase);

var text = content.tostring();

var matches = regex.matches(text);

var index = 0;

var runs = new list();

for (var i = 0; i < matches.count; i++)

);index += matches[i].index - index;

runs.add(new run

);index += matches[i].length;

}if (index != text.length));}

textblock.inlines.clear();

textblock.inlines.addrange(runs);

}}

generic.xaml

方法主要是,textblock可以通過多個 run元素組合而成,通過正規表示式匹配到關鍵字,然後設定關鍵字的前景顏色,實現高亮的效果。

WPF搜尋關鍵字高亮顯示

目標 在wpf中,對lucene.net進行全文檢索後的結果中包含的關鍵字進行高亮顯示。檢索結果中的關鍵字高亮顯示,在網頁中顯示是很簡單的,lucene中加標籤樣式就可以了,可是在wpf中就不行了。我在wpf中用gridcontrol顯示搜尋結果列表,gridcontrol的模板裡用textbloc...

lucene 關鍵字高亮

indexwriter writer new indexwriter indexpath,analyzer,true document doca new document string filetexta 因為火燒雲總是燃燒著消失在太陽衝下地平線的時刻,然後便是寧靜的自然的天籟,沒有誰會在這樣的時光...

關鍵字高亮變色

在搜尋介面需要關鍵字與搜尋出來的文字高亮顯示並且不區分字母大小寫 關鍵字高亮變色 param color 變化的色值 param text 文字 param keyword 文字中的關鍵字 return 結果spannablestring public static spannablestring ...